aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/calendar_base.class.php5
-rw-r--r--include/functions_calendar.inc.php11
2 files changed, 13 insertions, 3 deletions
diff --git a/include/calendar_base.class.php b/include/calendar_base.class.php
index 7a1356db8..a88c36dcd 100644
--- a/include/calendar_base.class.php
+++ b/include/calendar_base.class.php
@@ -195,7 +195,8 @@ class CalendarBase
$nav_bar.= '</span>';
}
- if ($conf['calendar_show_any'] and $show_any and count($items) > 1)
+ if ($conf['calendar_show_any'] and $show_any and count($items)>1 and
+ count($date_components)<count($this->calendar_levels)-1 )
{
$label = l10n('calendar_any');
if (isset($selected_item) and 'any' === $selected_item)
@@ -299,7 +300,7 @@ SELECT DISTINCT('.$this->calendar_levels[$level]['sql']
$query = 'SELECT CONCAT_WS("-"';
for ($i=0; $i<count($page['chronology_date']); $i++)
{
- if ( 'any' === $page['chronology_date'] )
+ if ( 'any' === $page['chronology_date'][$i] )
{
$query .= ','.'"any"';
}
diff --git a/include/functions_calendar.inc.php b/include/functions_calendar.inc.php
index 1c86c679e..3bc79cddc 100644
--- a/include/functions_calendar.inc.php
+++ b/include/functions_calendar.inc.php
@@ -259,9 +259,18 @@ WHERE id IN (' . implode(',',$page['items']) .')';
}
else
{
+ if ( count($page['chronology_date'])==0
+ or in_array('any', $page['chronology_date']) )
+ {// selected period is very big so we show newest first
+ $order = ' DESC, ';
+ }
+ else
+ {// selected period is small (month,week) so we show oldest first
+ $order = ' ASC, ';
+ }
$order_by = str_replace(
'ORDER BY ',
- 'ORDER BY '.$calendar->date_field.' DESC,', $conf['order_by']
+ 'ORDER BY '.$calendar->date_field.$order, $conf['order_by']
);
$query .= '
'.$order_by;