diff options
author | mistic100 <mistic@piwigo.org> | 2012-06-22 21:42:52 +0000 |
---|---|---|
committer | mistic100 <mistic@piwigo.org> | 2012-06-22 21:42:52 +0000 |
commit | 86358b6c878e22f78e465b58e6bbadbb24bd674d (patch) | |
tree | 44a6725622017ca623a9925be6e195cc70826bb5 | |
parent | 015e2f5ac87ac5cc4674997252c39058f6374829 (diff) |
merge r15950 from trunk
bug 2659: Possible misconfiguration of ORDER BY + missing language string
git-svn-id: http://piwigo.org/svn/branches/2.4@15951 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r-- | admin/configuration.php | 42 | ||||
-rw-r--r-- | language/en_UK/admin.lang.php | 1 | ||||
-rw-r--r-- | language/fr_FR/admin.lang.php | 1 |
3 files changed, 30 insertions, 14 deletions
diff --git a/admin/configuration.php b/admin/configuration.php index 60da0ae0e..21e5c2b4d 100644 --- a/admin/configuration.php +++ b/admin/configuration.php @@ -145,25 +145,39 @@ if (isset($_POST['submit'])) if ( !isset($conf['order_by_custom']) and !isset($conf['order_by_inside_category_custom']) ) { if ( !empty($_POST['order_by']) ) - { - // limit to the number of available parameters - $order_by = $order_by_inside_category = array_slice($_POST['order_by'], 0, ceil(count($sort_fields)/2)); - - // there is no rank outside categories - unset($order_by[ array_search('rank ASC', $order_by) ]); - - // must define a default order_by if user want to order by rank only - if ( count($order_by) == 0 ) + { + foreach ($_POST['order_by'] as $i => $val) + { + if (empty($val)) unset($_POST['order_by'][$i]); + } + if ( !count($_POST['order_by']) ) + { + array_push($page['errors'], l10n('No order field selected')); + } + else { - $order_by = array('id ASC'); + // limit to the number of available parameters + $order_by = $order_by_inside_category = array_slice($_POST['order_by'], 0, ceil(count($sort_fields)/2)); + + // there is no rank outside categories + if ( ($i = array_search('rank ASC', $order_by)) !== false) + { + unset($order_by[$i]); + } + + // must define a default order_by if user want to order by rank only + if ( count($order_by) == 0 ) + { + $order_by = array('id ASC'); + } + + $_POST['order_by'] = 'ORDER BY '.implode(', ', $order_by); + $_POST['order_by_inside_category'] = 'ORDER BY '.implode(', ', $order_by_inside_category); } - - $_POST['order_by'] = 'ORDER BY '.implode(', ', $order_by); - $_POST['order_by_inside_category'] = 'ORDER BY '.implode(', ', $order_by_inside_category); } else { - array_push($page['errors'], l10n('No field selected')); + array_push($page['errors'], l10n('No order field selected')); } } diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index d9e2b1bc3..8ed2f8aa8 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -462,6 +462,7 @@ $lang['No photo selected, no action possible.'] = 'No photo selected, no action $lang['No results'] = "No results"; $lang['No user to send notifications by mail.'] = "No user to be notified by mail."; $lang['no write access'] = "no write access"; +$lang['No order field selected'] = 'No order field selected'; $lang['none'] = "none"; $lang['None'] = 'None'; $lang['nothing'] = "nothing"; diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php index 55b01ba21..97c091e10 100644 --- a/language/fr_FR/admin.lang.php +++ b/language/fr_FR/admin.lang.php @@ -922,4 +922,5 @@ $lang['%d seconds'] = '%d secondes'; $lang['Sharpen'] = 'Renforcer la netteté'; $lang['Edit photo'] = 'Éditer la photo'; $lang['create a new site'] = 'créer un nouveau site'; +$lang['No order field selected'] = 'Aucun critère de tri sélectionné'; ?>
\ No newline at end of file |