url_base = $url_base; assert($view_type==CAL_VIEW_LIST); $this->build_nav_bar($view_type, $requested, 0, 'YEAR'); // years if (count($requested)>0) $this->build_nav_bar($view_type, $requested, 1, 'WEEK', '+1' ); // month if (count($requested)>1) $this->build_nav_bar($view_type, $requested, 2, 'DAYOFWEEK', '-1', $lang['day'] ); // days return false; } /** * Returns a sql where subquery for the date field * @param array requested selected levels for this calendar * (e.g. 2005,42,1 for 41st week of 2005, Monday) * @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($requested, $max_levels=3) { while (count($requested)>$max_levels) { array_pop($requested); } $res = ''; if (isset($requested[0]) and $requested[0]!='any') { $y = $requested[0]; $res = " AND $this->date_field BETWEEN '$y-01-01' AND '$y-12-31 23:59:59'"; } if (isset($requested[1]) and $requested[1]!='any') { $res .= ' AND WEEK('.$this->date_field.')+1='.$requested[1]; } if (isset($requested[2]) and $requested[2]!='any') { $res .= ' AND DAYOFWEEK('.$this->date_field.')-1='.$requested[2]; } if (empty($res)) { $res = ' AND '.$this->date_field.' IS NOT NULL'; } return $res; } } ?>