Setting GET parameters manually is bad style and causes some strange
side effects when using virtual URLs and mkurl().

Signed-off-by: Lukas Fleischer <[email protected]>
---
 web/html/index.php    |  7 +++++--
 web/html/packages.php | 25 ++++++++++++++-----------
 2 files changed, 19 insertions(+), 13 deletions(-)

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);
 <?php endif; ?>
 
 <?php
-if (isset($_GET['ID'])) {
-       $pkgid = intval($_GET['ID']);
-} else if (isset($_GET['N'])) {
-       $pkgid = pkgid_from_name($_GET['N']);
-} else {
-       unset($pkgid);
-}
-
 if (isset($pkgid)) {
        include('pkg_search_form.php');
        if ($pkgid) {
-- 
1.7.12

Reply via email to