From 4eacc8a194221484658eff4b54b86a34658dc4cc Mon Sep 17 00:00:00 2001 From: e107steved Date: Mon, 22 Dec 2008 22:53:31 +0000 Subject: [PATCH] Bugtracker #4633 - handle changes of list length in downloads better --- download.php | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/download.php b/download.php index a8d71feb8..096428596 100644 --- a/download.php +++ b/download.php @@ -11,9 +11,9 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/download.php,v $ -| $Revision: 1.24 $ -| $Date: 2008-11-16 09:11:59 $ -| $Author: e107coders $ +| $Revision: 1.25 $ +| $Date: 2008-12-22 22:53:18 $ +| $Author: e107steved $ | +----------------------------------------------------------------------------+ */ @@ -146,9 +146,9 @@ else if (isset($order) && !in_array($order,$order_options)) unset($order); if (isset($sort) && !in_array($sort,$sort_options)) unset($sort); -if (!isset($order)) $order = varset($pref['download_order'],"download_datestamp"); -if (!isset($sort)) $sort = varset($pref['download_sort'], "DESC"); -if (!isset($view)) $view = varset($pref['download_view'], "10"); +if (!isset($order)) $order = varset($pref['download_order'],'download_datestamp'); +if (!isset($sort)) $sort = varset($pref['download_sort'], 'DESC'); +if (!isset($view)) $view = varset($pref['download_view'], '10'); //-------------------------------------------------- @@ -307,15 +307,17 @@ if ($action == "list") } // End of subcategory display // Now display individual downloads - $core_total = $sql->db_Count("download WHERE download_category='{$id}' AND download_active > 0 AND download_visible IN (".USERCLASS_LIST.")"); + // Next line looks unnecessary +// $core_total = $sql->db_Count("download WHERE download_category='{$id}' AND download_active > 0 AND download_visible IN (".USERCLASS_LIST.")"); if (!check_class($download_category_class)) { - $ns->tablerender(LAN_dl_18, "
".LAN_dl_3."
"); require_once(FOOTERF); exit; } + if ($total_downloads < $view) { $dl_from = 0; } + if(strstr($download_category_icon, chr(1))) { list($download_category_icon, $download_category_icon_empty) = explode(chr(1), $download_category_icon); @@ -334,9 +336,13 @@ if ($action == "list") $rater = new rater; $tdownloads = 0; + // $dl_from - first entry to show (note - can get reset due to reuse of query, even if values overridden this time) + // $view - number of entries per page + // $total_downloads - total number of entries matching search criteria $filetotal = $sql->db_Select("download", "*", "download_category='{$id}' AND download_active > 0 AND download_visible IN (".USERCLASS_LIST.") ORDER BY {$order} {$sort} LIMIT {$dl_from}, {$view}"); $ft = ($filetotal < $view ? $filetotal : $view); - while ($row = $sql->db_Fetch()) { + while ($row = $sql->db_Fetch()) + { extract($row); $download_list_table_string .= parse_download_list_table($row); $tdownloads += $download_requested;