From fd07a347e39fb17e235dd05058c4685d7716b4a0 Mon Sep 17 00:00:00 2001 From: bugrain Date: Wed, 14 Jan 2009 22:53:38 +0000 Subject: [PATCH] Added ability to sort category list page by number of requests Added ability to sort mirror sites randomly (as now) by ID or by name Fixed alignment bug in admin options page --- e107_plugins/download/download.php | 45 ++++++++++++++----- e107_plugins/download/download_admin.php | 18 ++++++-- .../languages/English/lan_download_admin.php | 9 +++- e107_plugins/download/plugin.xml | 3 +- 4 files changed, 57 insertions(+), 18 deletions(-) diff --git a/e107_plugins/download/download.php b/e107_plugins/download/download.php index 636f089fa..36be286a0 100644 --- a/e107_plugins/download/download.php +++ b/e107_plugins/download/download.php @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_plugins/download/download.php,v $ -| $Revision: 1.3 $ -| $Date: 2009-01-13 08:05:08 $ +| $Revision: 1.4 $ +| $Date: 2009-01-14 22:53:38 $ | $Author: bugrain $ | +----------------------------------------------------------------------------+ @@ -57,7 +57,7 @@ $template_load_core = ' } '; -$order_options = array('download_id','download_datestamp','download_requested','download_name','download_author'); +$order_options = array('download_id','download_datestamp','download_requested','download_name','download_author','download_requested'); $sort_options = array('ASC', 'DESC'); @@ -567,15 +567,26 @@ if($action == "mirror") extract($row); $array = explode(chr(1), $download_mirror); - - // Shuffle the mirror list into a random order - $c = count($array) -1; // Will always be an empty entry at the end - for ($i=1; $i<$c; $i++) - { - $d = mt_rand(0, $i); - $tmp = $array[$i]; - $array[$i] = $array[$d]; - $array[$d] = $tmp; + if (2 == varset($pref['mirror_order'])) + { + // Order by name, sort array manually + usort($array, "sort_download_mirror_order"); + } + //elseif (1 == varset($pref['mirror_order'])) + //{ + // // Order by ID - do nothing order is as stored in DB + //} + elseif (0 == varset($pref['mirror_order'], 0)) + { + // Shuffle the mirror list into a random order + $c = count($array); + for ($i=1; $i<$c; $i++) + { + $d = mt_rand(0, $i); + $tmp = $array[$i]; + $array[$i] = $array[$d]; + $array[$d] = $tmp; + } } $download_mirror = ""; @@ -608,6 +619,16 @@ if($action == "mirror") } } +function sort_download_mirror_order($a, $b) +{ + $a = explode(",", $a); + $b = explode(",", $b); + if ($a[1] == $b[1]) { + return 0; + } + return ($a[1] < $b[1]) ? -1 : 1; +} + function parse_download_mirror_table($row, $mirrorstring, $mirrorList) { diff --git a/e107_plugins/download/download_admin.php b/e107_plugins/download/download_admin.php index 117983521..15ad5f464 100644 --- a/e107_plugins/download/download_admin.php +++ b/e107_plugins/download/download_admin.php @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_plugins/download/download_admin.php,v $ -| $Revision: 1.2 $ -| $Date: 2009-01-13 00:43:54 $ +| $Revision: 1.3 $ +| $Date: 2009-01-14 22:53:38 $ | $Author: bugrain $ +----------------------------------------------------------------------------+ */ @@ -167,6 +167,7 @@ if (isset($_POST['updateoptions'])) $temp['download_view'] = $_POST['download_view']; $temp['download_sort'] = $_POST['download_sort']; $temp['download_order'] = $_POST['download_order']; + $temp['mirror_order'] = $_POST['mirror_order']; $temp['agree_flag'] = $_POST['agree_flag']; $temp['download_email'] = $_POST['download_email']; $temp['agree_text'] = $tp->toDB($_POST['agree_text']); @@ -389,12 +390,23 @@ if ($action == "opt") ".LAN_ORDER." - + + + ".DOWLAN_160." + + + + + ".DOWLAN_151." ". r_userclass("download_reportbroken", $pref['download_reportbroken'])." diff --git a/e107_plugins/download/languages/English/lan_download_admin.php b/e107_plugins/download/languages/English/lan_download_admin.php index 4ed38fe73..1fb0db261 100644 --- a/e107_plugins/download/languages/English/lan_download_admin.php +++ b/e107_plugins/download/languages/English/lan_download_admin.php @@ -4,8 +4,8 @@ | e107 website system - Language File. | | $Source: /cvs_backup/e107_0.8/e107_plugins/download/languages/English/lan_download_admin.php,v $ -| $Revision: 1.2 $ -| $Date: 2009-01-13 00:46:23 $ +| $Revision: 1.3 $ +| $Date: 2009-01-14 22:53:38 $ | $Author: bugrain $ +----------------------------------------------------------------------------+ */ @@ -146,4 +146,9 @@ define("DOWLAN_157", "use random mirror - no user choice"); define("DOWLAN_158", "Show sub-sub-categories on main download page"); define("DOWLAN_159", "Include sub-sub-category counts in subcategory counts"); +define("DOWLAN_160", "Mirror list order"); +define("DOWLAN_161", "Random"); +define("DOWLAN_162", "ID"); +define("DOWLAN_163", "Name"); + ?> \ No newline at end of file diff --git a/e107_plugins/download/plugin.xml b/e107_plugins/download/plugin.xml index 4cf99a10b..023821ad1 100755 --- a/e107_plugins/download/plugin.xml +++ b/e107_plugins/download/plugin.xml @@ -1,5 +1,5 @@ - + This plugin is a fully featured Download system @@ -26,6 +26,7 @@ +