From 2e552cbcad8f4abd64041c793851b7420dd5361c Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Tue, 18 Sep 2012 13:57:09 +0200 Subject: Do not set GET parameters in the routing framework Setting GET parameters manually is bad style and causes some strange side effects when using virtual URLs and mkurl(). Signed-off-by: Lukas Fleischer --- web/html/index.php | 7 +++++-- web/html/packages.php | 25 ++++++++++++++----------- 2 files changed, 19 insertions(+), 13 deletions(-) (limited to 'web') diff --git a/web/html/index.php b/web/html/index.php index 2d80a94..5c56868 100644 --- a/web/html/index.php +++ b/web/html/index.php @@ -9,8 +9,11 @@ $tokens = explode('/', $path); if (isset($tokens[1]) && '/' . $tokens[1] == get_pkg_route()) { if (isset($tokens[2])) { - unset($_GET['ID']); - $_GET['N'] = $tokens[2]; + /* TODO: Create a proper data structure to pass variables from + * the routing framework to the individual pages instead of + * initializing arbitrary variables here. */ + $pkgname = $tokens[2]; + $pkgid = pkgid_from_name($pkgname); if (isset($tokens[3])) { if ($tokens[3] == 'voters') { diff --git a/web/html/packages.php b/web/html/packages.php index ec76e41..44f7671 100644 --- a/web/html/packages.php +++ b/web/html/packages.php @@ -7,11 +7,22 @@ set_lang(); # this sets up the visitor's language include_once('pkgfuncs.inc.php'); # package specific functions check_sid(); # see if they're still logged in +# Retrieve package ID and name, unless initialized by the routing framework +if (!isset($pkgid) || !isset($pkgname)) { + if (isset($_GET['ID'])) { + $pkgid = intval($_GET['ID']); + $pkgname = pkgname_from_id($_GET['ID']); + } else if (isset($_GET['N'])) { + $pkgid = pkgid_from_name($_GET['N']); + $pkgname = $_GET['N']; + } else { + unset($pkgid, $pkgname); + } +} + # Set the title to the current query if required -if (isset($_GET['ID']) && ($pkgname = pkgname_from_id($_GET['ID']))) { +if (isset($pkgname)) { $title = $pkgname; -} else if (isset($_GET['N'])) { - $title = $pkgname = $_GET['N']; } else if (!empty($_GET['K'])) { $title = __("Search Criteria") . ": " . $_GET['K']; } else { @@ -90,14 +101,6 @@ html_header($title);