diff options
Diffstat (limited to 'include/calendar_weekly.class.php')
-rw-r--r-- | include/calendar_weekly.class.php | 135 |
1 files changed, 70 insertions, 65 deletions
diff --git a/include/calendar_weekly.class.php b/include/calendar_weekly.class.php index 548631338..d35e294b5 100644 --- a/include/calendar_weekly.class.php +++ b/include/calendar_weekly.class.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | Piwigo - a PHP based photo gallery | // +-----------------------------------------------------------------------+ -// | Copyright(C) 2008-2013 Piwigo Team http://piwigo.org | +// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org | // | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | // | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | // +-----------------------------------------------------------------------+ @@ -21,21 +21,28 @@ // | USA. | // +-----------------------------------------------------------------------+ +/** + * @package functions\calendar + */ + include_once(PHPWG_ROOT_PATH.'include/calendar_base.class.php'); -define ('CYEAR', 0); -define ('CWEEK', 1); -define ('CDAY', 2); +/** level of year view */ +define('CYEAR', 0); +/** level of week view */ +define('CWEEK', 1); +/** level of day view */ +define('CDAY', 2); + /** * Weekly calendar style (composed of years/week in years and days in week) */ class Calendar extends CalendarBase { - /** * Initialize the calendar - * @param string inner_sql used for queries (INNER JOIN or normal) + * @param string $inner_sql */ function initialize($inner_sql) { @@ -44,7 +51,7 @@ class Calendar extends CalendarBase $week_no_labels=array(); for ($i=1; $i<=53; $i++) { - $week_no_labels[$i] = sprintf( l10n("Week %d"), $i); + $week_no_labels[$i] = l10n('Week %d', $i); //$week_no_labels[$i] = $i; } @@ -68,72 +75,70 @@ class Calendar extends CalendarBase { $this->calendar_levels[CWEEK]['sql'] = pwg_db_get_week($this->date_field, 5).'+1'; $this->calendar_levels[CDAY]['sql'] = pwg_db_get_weekday($this->date_field); - array_push( $this->calendar_levels[CDAY]['labels'], - array_shift( $this->calendar_levels[CDAY]['labels'] ) ); + $this->calendar_levels[CDAY]['labels'][] = array_shift($this->calendar_levels[CDAY]['labels']); } } -/** - * Generate navigation bars for category page - * @return boolean false to indicate that thumbnails where not included here - */ -function generate_category_content() -{ - global $conf, $page; - - if ( count($page['chronology_date'])==0 ) - { - $this->build_nav_bar(CYEAR); // years - } - if ( count($page['chronology_date'])==1 ) - { - $this->build_nav_bar(CWEEK, array()); // week nav bar 1-53 - } - if ( count($page['chronology_date'])==2 ) + /** + * Generate navigation bars for category page. + * + * @return boolean false indicates that thumbnails where not included + */ + function generate_category_content() { - $this->build_nav_bar(CDAY); // days nav bar Mon-Sun - } - $this->build_next_prev(); - return false; -} - + global $conf, $page; -/** - * Returns a sql where subquery for the date field - * @param int max_levels return the where up to this level - * (e.g. 2=only year and week in year) - * @return string - */ -function get_date_where($max_levels=3) -{ - global $page; - $date = $page['chronology_date']; - while (count($date)>$max_levels) - { - array_pop($date); - } - $res = ''; - if (isset($date[CYEAR]) and $date[CYEAR]!=='any') - { - $y = $date[CYEAR]; - $res = " AND $this->date_field BETWEEN '$y-01-01' AND '$y-12-31 23:59:59'"; + if ( count($page['chronology_date'])==0 ) + { + $this->build_nav_bar(CYEAR); // years + } + if ( count($page['chronology_date'])==1 ) + { + $this->build_nav_bar(CWEEK, array()); // week nav bar 1-53 + } + if ( count($page['chronology_date'])==2 ) + { + $this->build_nav_bar(CDAY); // days nav bar Mon-Sun + } + $this->build_next_prev(); + return false; } - if (isset($date[CWEEK]) and $date[CWEEK]!=='any') - { - $res .= ' AND '.$this->calendar_levels[CWEEK]['sql'].'='.$date[CWEEK]; - } - if (isset($date[CDAY]) and $date[CDAY]!=='any') - { - $res .= ' AND '.$this->calendar_levels[CDAY]['sql'].'='.$date[CDAY]; - } - if (empty($res)) + /** + * Returns a sql WHERE subquery for the date field. + * + * @param int $max_levels (e.g. 2=only year and month) + * @return string + */ + function get_date_where($max_levels=3) { - $res = ' AND '.$this->date_field.' IS NOT NULL'; - } - return $res; -} + global $page; + $date = $page['chronology_date']; + while (count($date)>$max_levels) + { + array_pop($date); + } + $res = ''; + if (isset($date[CYEAR]) and $date[CYEAR]!=='any') + { + $y = $date[CYEAR]; + $res = " AND $this->date_field BETWEEN '$y-01-01' AND '$y-12-31 23:59:59'"; + } + if (isset($date[CWEEK]) and $date[CWEEK]!=='any') + { + $res .= ' AND '.$this->calendar_levels[CWEEK]['sql'].'='.$date[CWEEK]; + } + if (isset($date[CDAY]) and $date[CDAY]!=='any') + { + $res .= ' AND '.$this->calendar_levels[CDAY]['sql'].'='.$date[CDAY]; + } + if (empty($res)) + { + $res = ' AND '.$this->date_field.' IS NOT NULL'; + } + return $res; + } } -?> +?>
\ No newline at end of file |