Knihovna pro generovani query stringu, fix blbosti s orderby
authorThomas Mudrunka <tomas@mudrunka.cz>
Mon, 22 Oct 2012 17:17:04 +0000 (19:17 +0200)
committerThomas Mudrunka <tomas@mudrunka.cz>
Mon, 22 Oct 2012 17:17:04 +0000 (19:17 +0200)
index.php
lib/Query.class.php [new file with mode: 0755]

index b9860e3d86ba03c4490376f272303a7976a1965a..ef5d5b51cbe7659ad048b41ae67cdf7c18e6e1f2 100755 (executable)
--- a/index.php
+++ b/index.php
@@ -1,7 +1,7 @@
 <?php
 /*
  * SkladovySystem - Storage management system compatible with LMS
- * Copyright (C) 2011  Tomas Mudrunka
+ * Copyright (C) 2011-2012  Tomas Mudrunka
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
@@ -22,6 +22,7 @@ set_include_path(DIR_LIB.PATH_SEPARATOR.get_include_path());
 
 require_once('Sklad_Auth.class/common.php');
 require_once('HTTP_Auth.class.php');
+require_once('Query.class.php');
 require_once('Locale.class.php');
 require_once('Barcode.class.php');
 require_once('Fortune.php');
@@ -478,7 +479,6 @@ EOF;
        }
 
        function render_item_table($table,$class=false) {
-
                $cellspan = array(
                        'break_after' => array(
                                'item' => array('category_name'),
@@ -506,12 +506,12 @@ EOF;
                if($class) $this->table_hide_columns($table,$class);
                $this->table_sort($table);
 
-               //TODO: orderbaj fixme (napsat funkci na pridavani/ubirani soucasnych URL parametru)
-               $get = $_SERVER['QUERY_STRING'] != '' ? '?'.$_SERVER['QUERY_STRING'] : '';
-               $moreget = isset($get[0]) ? '&' : '?';
-               $path=$_SERVER['PATH_INFO'].$get.$moreget;
+               //Orderby:
+               $path = $_GET;
+               unset($path['orderby']);
+               $path = '?'.Query::build($path).'orderby';
 
-               return $this->table($table,$colspan,$rowspan,$break_after,$path.'orderby');
+               return $this->table($table,$colspan,$rowspan,$break_after,$path);
        }
 
        function render_insert_inputs($class,$columns,$selectbox,$current,$hidecols,$update) {
diff --git a/lib/Query.class.php b/lib/Query.class.php
new file mode 100755 (executable)
index 0000000..48a2bb0
--- /dev/null
@@ -0,0 +1,39 @@
+<?php
+/*
+ * Query Manipulation Class
+ * Copyright (C) 2012  Thomas Mudrunka
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/**
+* Trida implementuje funkce pro manipulaci s query stringem
+*
+* @package  Query
+* @author   Tomas Mudrunka
+*/
+class Query {
+
+       static function build($query=array(),$prefix=false) {
+               $q='';
+               if(is_array($query)) foreach($query as $key => $val) {
+                       $pre = !$prefix ? $key : $prefix.'['.$key.']';
+                       $q.=Query::build($val,$pre);
+               } else {
+                       return $prefix.'='.$query.'&';
+               }
+               return $q;
+       }
+
+}
This page took 0.151608 seconds and 4 git commands to generate.