aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormistic100 <mistic@piwigo.org>2012-06-22 21:42:52 +0000
committermistic100 <mistic@piwigo.org>2012-06-22 21:42:52 +0000
commit86358b6c878e22f78e465b58e6bbadbb24bd674d (patch)
tree44a6725622017ca623a9925be6e195cc70826bb5
parent015e2f5ac87ac5cc4674997252c39058f6374829 (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.php42
-rw-r--r--language/en_UK/admin.lang.php1
-rw-r--r--language/fr_FR/admin.lang.php1
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