diff options
Diffstat (limited to 'admin/configuration.php')
-rw-r--r-- | admin/configuration.php | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/admin/configuration.php b/admin/configuration.php index 53916199f..8488aa489 100644 --- a/admin/configuration.php +++ b/admin/configuration.php @@ -134,15 +134,18 @@ if (isset($_POST['submit'])) { $order_by = array(); $order_by_inside_category = array(); + for ($i=0; $i<count($_POST['order_by_field']); $i++) { - if ($i>5) continue; - if ($_POST['order_by_field'][$i] == '') + if ( $i >= (count($sort_fields)-1) ) break; // limit to the number of available parameters + if ( empty($_POST['order_by_field'][$i]) ) { array_push($page['errors'], l10n('No field selected')); + break; } else { + // there is no rank outside categories if ($_POST['order_by_field'][$i] != 'rank') { $order_by[] = $_POST['order_by_field'][$i].' '.$_POST['order_by_direction'][$i]; @@ -150,8 +153,15 @@ if (isset($_POST['submit'])) $order_by_inside_category[] = $_POST['order_by_field'][$i].' '.$_POST['order_by_direction'][$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); + unset($_POST['order_by_field']); } } |