From f14804699e095b50f830175f4742efdf8e5c7610 Mon Sep 17 00:00:00 2001 From: CaMer0n Date: Wed, 18 Apr 2012 21:07:20 +0000 Subject: [PATCH] Bug fixes and improvements to paging and searches in admin->news and admin->users. --- e107_admin/newspost.php | 67 ++++++++++++++++++++++++++++++----------- e107_admin/users.php | 58 ++++++++++++++++++++++------------- 2 files changed, 86 insertions(+), 39 deletions(-) diff --git a/e107_admin/newspost.php b/e107_admin/newspost.php index 6a5b38aa8..70126aad8 100644 --- a/e107_admin/newspost.php +++ b/e107_admin/newspost.php @@ -301,6 +301,13 @@ class admin_newspost $this->_sort_order = isset($tmp[2]) && !is_numeric($tmp[2]) ? $tmp[2] : 'desc'; $from = intval(varset($tmp[3],0)); unset($tmp); + + $action = vartrue($_GET['action'],'main'); + $sub_action = varset($_GET['sub'],''); + $id = isset($_GET['id']) && is_numeric($_GET['id']) ? intval($_GET['id']) : 0; + $this->_sort_order = isset($_GET['id']) && !is_numeric($_GET['id']) ? $_GET['id'] : 'desc'; + $from = intval(varset($_GET['frm'],0)); + if ($this->_sort_order != 'asc') $this->_sort_order = 'desc'; $this->_sort_link = ($this->_sort_order) == 'asc' ? 'desc' : 'asc'; @@ -972,6 +979,8 @@ class admin_newspost function show_existing_items() { $user_pref = e107::getUser()->getPref(); + $sql = e107::getDb(); + if(!getperms('H')) { return; @@ -998,9 +1007,22 @@ class admin_newspost // ------ Search Filter ------ $text .= " -
+
- "; + \n"; + + $text .= ""; $text .= $frm->admin_button('searchsubmit', NWSLAN_63, 'search'); $text .= "
@@ -1015,9 +1037,13 @@ class admin_newspost "; $check_perms = !getperms('0') ? " nc.category_manager IN (".USERCLASS_LIST.") " : ''; - if (vartrue($_POST['searchquery'])) + + // Quick qry fix. + $check_perms .= (vartrue($_GET['filter'])) ? " n.news_category = ".intval($_GET['filter'])." " : ""; + + if (vartrue($_GET['srch'])) { - $query .= "WHERE {$check_perms}n.news_title REGEXP('".$_POST['searchquery']."') OR n.news_body REGEXP('".$_POST['searchquery']."') OR n.news_extended REGEXP('".$_POST['searchquery']."') ORDER BY n.news_datestamp DESC"; + $query .= "WHERE {$check_perms}n.news_title REGEXP('".$_GET['srch']."') OR n.news_body REGEXP('".$_GET['srch']."') OR n.news_extended REGEXP('".$_GET['srch']."') ORDER BY n.news_datestamp DESC"; } else { @@ -1036,11 +1062,14 @@ class admin_newspost $ordfield = 'n.'.$this->getSubAction(); } - $query .= ($check_perms ? "WHERE {$check_perms}" : '')."ORDER BY {$ordfield} ".strtoupper($this->_sort_order)." LIMIT ".$this->getFrom().", {$amount}"; + $query .= ($check_perms ? "WHERE {$check_perms}" : '')."ORDER BY {$ordfield} ".strtoupper($this->_sort_order); } - - if ($e107->sql->db_Select_gen($query)) + $newsposts = $sql->db_Select_gen($query); + + //echo "sql=".$query; + + if ($sql->db_Select_gen($query." LIMIT ".$this->getFrom().", {$amount}")) { $newsarray = $e107->sql->db_getList(); @@ -1050,7 +1079,7 @@ class admin_newspost ".NWSLAN_4." ".$frm->colGroup($this->fields, $this->fieldpref)." - ".$frm->thead($this->fields, $this->fieldpref, 'main.[FIELD].[ASC].[FROM]')." + ".$frm->thead($this->fields, $this->fieldpref, 'action=main&sub=[FIELD]&id=[ASC]&filter='.intval($_GET['filter']).'&srch='.$_GET['srch'].'&frm=[FROM]')." "; $ren_type = array("default","title","other-news","other-news 2"); // Shortened @@ -1089,20 +1118,22 @@ class admin_newspost else { $tmp = NWSLAN_43; - if(vartrue($_POST['searchquery'])) + if(vartrue($_GET['srch'])) { - $tmp = sprintf(NWSLAN_121, '"'.$_POST['searchquery']).""« ".LAN_BACK.""; + $tmp = sprintf(NWSLAN_121, '"'.$_GET['srch']).""« ".LAN_BACK.""; } $text = "
{$tmp}
"; } - $newsposts = $e107->sql->db_Count('news'); + // $newsposts = $e107->sql->db_Count('news'); - if (!vartrue($_POST['searchquery'])) + if (!vartrue($_GET['srch'])) { - $parms = $newsposts.",".$amount.",".$this->getFrom().",".e_SELF."?".$this->getAction().'.'.($this->getSubAction() ? $this->getSubAction() : 0).'.'.$this->_sort_order.".[FROM]"; + // $parms = $newsposts.",".$amount.",".$this->getFrom().",".e_SELF."?".$this->getAction().'.'.($this->getSubAction() ? $this->getSubAction() : 0).'.'.$this->_sort_order.".[FROM]"; + $parms = $newsposts.",".$amount.",".$this->getFrom().",".e_SELF."?action=".$this->getAction().'&sub='.($this->getSubAction() ? $this->getSubAction() : 0).'&id='.$this->_sort_order.'&filter='.intval($_GET['filter']).'&srch='.$_GET['srch']."&frm=[FROM]"; + $nextprev = $e107->tp->parseTemplate("{NEXTPREV={$parms}}"); if ($nextprev) $text .= "
".$nextprev."
"; @@ -2470,29 +2501,29 @@ class admin_newspost $var['main']['perm'] = "H"; $var['create']['text'] = NWSLAN_45; - $var['create']['link'] = e_SELF."?create"; + $var['create']['link'] = e_SELF."?action=create"; $var['create']['perm'] = "H"; $var['cat']['text'] = NWSLAN_46; - $var['cat']['link'] = e_SELF."?cat"; + $var['cat']['link'] = e_SELF."?action=cat"; $var['cat']['perm'] = "7"; $var['pref']['text'] = NWSLAN_90; - $var['pref']['link'] = e_SELF."?pref"; + $var['pref']['link'] = e_SELF."?action=pref"; $var['pref']['perm'] = "0"; //TODO remove commented code before release. // $c = $e107->sql->db_Count('submitnews'); // if ($c) { $var['sn']['text'] = NWSLAN_47." ({$c})"; - $var['sn']['link'] = e_SELF."?sn"; + $var['sn']['link'] = e_SELF."?action=sn"; $var['sn']['perm'] = "N"; // } if (getperms('0')) { $var['maint']['text'] = LAN_NEWS_55; - $var['maint']['link'] = e_SELF."?maint"; + $var['maint']['link'] = e_SELF."?action=maint"; $var['maint']['perm'] = "N"; } diff --git a/e107_admin/users.php b/e107_admin/users.php index c683321d3..36d43dba5 100644 --- a/e107_admin/users.php +++ b/e107_admin/users.php @@ -97,15 +97,23 @@ $frm = new e_form; $rs = new form; if (e_QUERY) { - $tmp = explode('.',e_QUERY); - $action = $tmp[0]; - $sub_action = varset($tmp[1],''); - $id = varset($tmp[2],0); - $from = varset($tmp[3],0); +// $tmp = explode('.',e_QUERY); +// $action = $tmp[0]; +// $sub_action = varset($tmp[1],''); +// $id = varset($tmp[2],0); +// $from = varset($tmp[3],0); +// unset ($tmp); + + + $action = $_GET['action']; + $sub_action = varset($_GET['sub'],''); + $id = varset($_GET['id'],0); + $from = varset($_GET['frm'],0); unset ($tmp); + } $from = varset($from,0); -$amount = 30; +$amount = 20; // ------- Check for Bounces -------------- $bounce_act = ''; @@ -661,16 +669,16 @@ class users $var ['main']['link'] = e_ADMIN.'users.php'; $var ['main']['perm'] = '4|U0|U1'; $var ['create']['text'] = LAN_USER_QUICKADD; - $var ['create']['link'] = e_ADMIN.'users.php?create'; + $var ['create']['link'] = e_ADMIN.'users.php?action=create'; $var ['create']['perm'] = '4|U0|U1'; $var ['prune']['text'] = LAN_USER_PRUNE; - $var ['prune']['link'] = e_ADMIN.'users.php?prune';// Will be moved to "Schedule tasks" + $var ['prune']['link'] = e_ADMIN.'users.php?action=prune';// Will be moved to "Schedule tasks" $var ['prune']['perm'] = '4'; $var ['options']['text'] = LAN_OPTIONS; - $var ['options']['link'] = e_ADMIN.'users.php?options'; + $var ['options']['link'] = e_ADMIN.'users.php?action=options'; $var ['options']['perm'] = '4|U2'; $var ['ranks']['text'] = LAN_USER_RANKS; - $var ['ranks']['link'] = e_ADMIN.'users.php?ranks'; + $var ['ranks']['link'] = e_ADMIN.'users.php?action=ranks'; $var ['ranks']['perm'] = '4|U3'; // if ($unverified) // No longer needed - done with 'filter'. @@ -1164,19 +1172,21 @@ class users { $_SESSION['srch'] = $tp->toDB(trim($_SESSION['srch'])); $query .= "( "; - $query .= (strpos($_SESSION['srch'],"@") !== false) ? "user_email REGEXP('".$_SESSION['srch']."') OR " : ""; - $query .= (strpos($_SESSION['srch'],".") !== false) ? "user_ip REGEXP('".$_SESSION['srch']."') OR " : ""; + $query .= (strpos($_SESSION['srch'],"@") !== false) ? "u.user_email REGEXP('".$_SESSION['srch']."') OR " : ""; + $query .= (strpos($_SESSION['srch'],".") !== false) ? "u.user_ip REGEXP('".$_SESSION['srch']."') OR " : ""; $fquery = array(); + foreach ($this->fieldpref as $field) { + if($field == 'user_status'){ continue; } $fquery[] = $field." REGEXP('".$_SESSION['srch']."')"; } $query .= implode(" OR ",$fquery); $query .= " ) "; - $qry_order = ' ORDER BY user_id'; + $qry_order = ' ORDER BY u.user_id'; } else { @@ -1185,7 +1195,7 @@ class users { $query = 'user_ban = 2 '; }*/ - $qry_order = 'ORDER BY '.($sub_action ? $sub_action : 'user_id').' '.($id ? $id : 'DESC')." LIMIT $from, $amount"; + $qry_order = 'ORDER BY '.($sub_action ? $sub_action : 'user_id').' '.($id ? $id : 'DESC'); } if(varset($_SESSION['filter'])) @@ -1239,15 +1249,19 @@ class users $this->fieldpref = array_unique($this->fieldpref); $text = "
".$this->show_search_filter(); - - if ($user_total = $sql->db_Select_gen($qry)) + + // echo "
qry=".$qry; + + $user_total = $sql->db_Select_gen($qry); + + if ($users = $sql->db_Select_gen($qry." LIMIT ".$from.", ".$amount)) { $text .= "
". $frm->colGroup($this->fields,$this->fieldpref). - $frm->thead($this->fields,$this->fieldpref,"main.[FIELD].[ASC].[FROM]"). + $frm->thead($this->fields,$this->fieldpref,"action=main&sub=[FIELD]&id=[ASC]&filter=".intval($_GET['filter']).'&srch='.$_GET['srch']."&frm=[FROM]"). "\n"; while ($row = $sql->db_Fetch()) @@ -1273,11 +1287,13 @@ class users
".$this->show_batch_options(); - $users = (e_QUERY != "unverified") ? $sql->db_Count("user") : $unverified; + // $users = (e_QUERY != "unverified") ? $sql->db_Count("user") : $unverified; - if ($users > $amount && !$_GET['srch']) + if ($user_total > $amount ) { - $parms = "{$users},{$amount},{$from},".e_SELF."?".(e_QUERY ? "$action.$sub_action.$id." : "main.user_id.desc.")."[FROM]"; + $parms = "{$user_total},{$amount},{$from},"; + // $parms .= e_SELF."?".(e_QUERY ? "action=".$action."&sub=".$sub_action."&id=".$id : "action=main&sub=user_id&id=desc&frm=")."[FROM]"; + $parms .= e_SELF."?action=".$action."&sub=".$sub_action."&id=".$id."&filter=".$_GET['filter']."&srch=".$_GET['srch']."&frm=[FROM]"; $text .= $tp->parseTemplate("{NEXTPREV={$parms}}"); } @@ -1298,7 +1314,7 @@ class users $text .= "
"; - + // echo "
amount=".$amount; $emessage = eMessage :: getInstance(); $total_cap = (isset ($_GET['srch'])) ? $user_total : $users;