From f4038a2160d55a7f519a3b42be1aa96e29e9a908 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Wed, 27 Feb 2013 09:01:40 -0500 Subject: [PATCH] - Fixed "FUNCTION databasename.CONCAT does not exist" error for older MySQL versions. --- interface/lib/classes/plugin_listview.inc.php | 84 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 74 insertions(+), 10 deletions(-) diff --git a/interface/lib/classes/plugin_listview.inc.php b/interface/lib/classes/plugin_listview.inc.php index 771cd5b..30932b9 100644 --- a/interface/lib/classes/plugin_listview.inc.php +++ b/interface/lib/classes/plugin_listview.inc.php @@ -1,5 +1,33 @@ <?php +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + class plugin_listview extends plugin_base { var $module; @@ -31,11 +59,10 @@ $listTpl->setVar('theme', $_SESSION['s']['theme']); // Generate the SQL for searching + $sql_where = ""; if($app->listform->listDef["auth"] != 'no') { - if($_SESSION["s"]["user"]["typ"] == "admin") { - $sql_where = ""; - } else { - $sql_where = $app->tform->getAuthSQL('r')." and"; + if($_SESSION["s"]["user"]["typ"] != "admin") { + $sql_where = $app->tform->getAuthSQL('r')." and"; } } @@ -54,6 +81,48 @@ if(isset($this->options["sql_order_by"])) { $sql_order_by = $this->options["sql_order_by"]; } + + //* Limit each page + $limits = array('5'=>'5','15'=>'15','25'=>'25','50'=>'50','100'=>'100','999999999' => 'all'); + + //* create options and set selected, if default -> 15 is selected + $options=''; + foreach($limits as $key => $val){ + $options .= '<option value="'.$key.'" '.(isset($_SESSION['search']['limit']) && $_SESSION['search']['limit'] == $key ? 'selected="selected"':'' ).(!isset($_SESSION['search']['limit']) && $key == '15' ? 'selected="selected"':'').'>'.$val.'</option>'; + } + $listTpl->setVar('search_limit','<select name="search_limit" style="width:50px">'.$options.'</select>'); + + + //Sorting + if(!isset($_SESSION['search'][$app->listform->listDef["name"]]['order'])){ + $_SESSION['search'][$app->listform->listDef["name"]]['order'] = ''; + } + + if(!empty($_GET['orderby'])){ + $order = str_replace('tbl_col_','',$_GET['orderby']); + //* Check the css class submited value + if (preg_match("/^[a-z\_]{1,}$/",$order)) { + if($_SESSION['search'][$app->listform->listDef["name"]]['order'] == $order){ + $_SESSION['search'][$app->listform->listDef["name"]]['order'] = $order.' DESC'; + } else { + $_SESSION['search'][$app->listform->listDef["name"]]['order'] = $order; + } + } + } + + // If a manuel oder by like customers isset the sorting will be infront + if(!empty($_SESSION['search'][$app->listform->listDef["name"]]['order'])){ + if(empty($sql_order_by)){ + $sql_order_by = "ORDER BY ".$_SESSION['search'][$app->listform->listDef["name"]]['order']; + } else { + $sql_order_by = str_replace("ORDER BY ","ORDER BY ".$_SESSION['search'][$app->listform->listDef["name"]]['order'].', ',$sql_order_by); + } + } + + // Loading language field + $lng_file = "lib/lang/".$_SESSION["s"]["language"]."_".$app->listform->listDef['name']."_list.lng"; + include($lng_file); + $listTpl->setVar($wb); // Get the data @@ -87,18 +156,13 @@ // The variable "id" contains always the index field $rec["id"] = $rec[$idx_key]; - $rec["delete_confirmation"] = $app->lng('delete_confirmation'); + $rec["delete_confirmation"] = $wb['delete_confirmation']; $records_new[] = $rec; } } $listTpl->setLoop('records',@$records_new); - - // Loading language field - $lng_file = "lib/lang/".$_SESSION["s"]["language"]."_".$app->listform->listDef['name']."_list.lng"; - include($lng_file); - $listTpl->setVar($wb); // Setting Returnto information in the session $list_name = $app->listform->listDef["name"]; -- Gitblit v1.9.1