aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorHenry Sudhof <kellanved@phpbb.com>2008-08-13 14:37:33 +0000
committerHenry Sudhof <kellanved@phpbb.com>2008-08-13 14:37:33 +0000
commit9ecbd0edb64368193f96111d7164bb824c8f16cd (patch)
tree61ba558241fc4da9c85d75d2234d1e675a8dda48 /phpBB
parent6926a359023e797385f71df85de9929cae7486df (diff)
downloadforums-9ecbd0edb64368193f96111d7164bb824c8f16cd.tar
forums-9ecbd0edb64368193f96111d7164bb824c8f16cd.tar.gz
forums-9ecbd0edb64368193f96111d7164bb824c8f16cd.tar.bz2
forums-9ecbd0edb64368193f96111d7164bb824c8f16cd.tar.xz
forums-9ecbd0edb64368193f96111d7164bb824c8f16cd.zip
#31185
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@8752 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/includes/functions_content.php87
1 files changed, 43 insertions, 44 deletions
diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php
index ced5106c14..33df0314a7 100644
--- a/phpBB/includes/functions_content.php
+++ b/phpBB/includes/functions_content.php
@@ -41,57 +41,56 @@ if (!defined('IN_PHPBB'))
/**
* Generate sort selection fields
*/
-function gen_sort_selects(&$limit_days, &$sort_by_text, &$sort_days, &$sort_key, &$sort_dir, &$s_limit_days, &$s_sort_key, &$s_sort_dir, &$u_sort_param)
+function gen_sort_selects(&$limit_days, &$sort_by_text, &$sort_days, &$sort_key, &$sort_dir, &$s_limit_days, &$s_sort_key, &$s_sort_dir, &$u_sort_param, $def_st = false, $def_sk = false, $def_sd = false)
{
global $user;
$sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']);
- // Check if the key is selectable. If not, we reset to the first key found.
- // This ensures the values are always valid.
- if (!isset($limit_days[$sort_days]))
- {
- @reset($limit_days);
- $sort_days = key($limit_days);
- }
-
- if (!isset($sort_by_text[$sort_key]))
- {
- @reset($sort_by_text);
- $sort_key = key($sort_by_text);
- }
-
- if (!isset($sort_dir_text[$sort_dir]))
- {
- @reset($sort_dir_text);
- $sort_dir = key($sort_dir_text);
- }
-
- $s_limit_days = '<select name="st" id="st">';
- foreach ($limit_days as $day => $text)
- {
- $selected = ($sort_days == $day) ? ' selected="selected"' : '';
- $s_limit_days .= '<option value="' . $day . '"' . $selected . '>' . $text . '</option>';
- }
- $s_limit_days .= '</select>';
-
- $s_sort_key = '<select name="sk" id="sk">';
- foreach ($sort_by_text as $key => $text)
- {
- $selected = ($sort_key == $key) ? ' selected="selected"' : '';
- $s_sort_key .= '<option value="' . $key . '"' . $selected . '>' . $text . '</option>';
- }
- $s_sort_key .= '</select>';
-
- $s_sort_dir = '<select name="sd" id="sd">';
- foreach ($sort_dir_text as $key => $value)
+ $sorts = array(
+ 'st' => array(
+ 'selected' => $sort_days,
+ 'default' => $def_st,
+ 'options' => $limit_days,
+ 'output' => &$s_limit_days,),
+ 'sk' => array(
+ 'selected' => $sort_key,
+ 'default' => $def_sk,
+ 'options' => $sort_by_text,
+ 'output' => &$s_sort_key,),
+ 'sd' => array(
+ 'selected' => $sort_dir,
+ 'default' => $def_sd,
+ 'options' => $sort_dir_text,
+ 'output' => &$s_sort_dir,),
+ );
+ $u_sort_param = '';
+ foreach ($sorts as $name => $sort_ary)
{
- $selected = ($sort_dir == $key) ? ' selected="selected"' : '';
- $s_sort_dir .= '<option value="' . $key . '"' . $selected . '>' . $value . '</option>';
+ // Check if the key is selectable. If not, we reset to the default or first key found.
+ // This ensures the values are always valid.
+ if (!isset($sort_ary['options'][$sort_ary['selected']]))
+ {
+ if ($sort_ary['default'] !== false)
+ {
+ $sort_ary['selected'] = $sort_ary['default'];
+ }
+ else
+ {
+ @reset($sort_ary['options']);
+ $sort_ary['selected'] = key($sort_ary['options']);
+ }
+ }
+
+ $sort_ary['output'] = '<select name="' . $name . '" id="' . $name . '">';
+ foreach ($sort_ary['options'] as $option => $text)
+ {
+ $selected = ($sort_ary['selected']== $option) ? ' selected="selected"' : '';
+ $sort_ary['output'] .= '<option value="' . $option . '"' . $selected . '>' . $text . '</option>';
+ }
+ $sort_ary['output'] .= '</select>';
+ $u_sort_param .= ($sort_ary['selected'] !== $sort_ary['default']) ? ((strlen($u_sort_param)) ? '&amp;' : '') . "{$name}={$sort_ary['selected']}" : '';
}
- $s_sort_dir .= '</select>';
-
- $u_sort_param = "st=$sort_days&amp;sk=$sort_key&amp;sd=$sort_dir";
return;
}