/** * Modify the query to navigate. * @param QUERY $query * @access private */ protected function _adjust_query($query) { $calendar = read_var('calendar'); $first_day = read_var('first_day'); $last_day = read_var('last_day'); $folder = $this->_entry->parent_folder(); if ($calendar) { $this->page->location->append("Calendar", "view_calendar.php?id={$folder->id}"); } if ($first_day) { $day = $this->app->make_date_time($first_day, Date_time_iso); $url = new URL($this->env->url(Url_part_no_host_path)); $url->replace_argument('id', $folder->id); $url->replace_name_and_extension('view_journals.php'); $this->page->location->append($folder->format_date($day), $url->as_text()); $query->set_days($first_day, $last_day); } $query->set_order('date ASC'); parent::_adjust_query($query); }
/** * Restrict the query to the time frame. * @param QUERY $query */ public function prepare_query($query) { if (!$query) { $this->raise("'query' cannot be empty", 'prepare_query', 'TIME_FRAME_SELECTOR'); } switch ($this->period) { case Time_frame_recent: $query->set_limits(0, $this->num_in_recent); break; case Time_frame_today: $first = new DATE_TIME(mktime(0, 0, 0, date('n'), date('d'), date('Y'))); $last = new DATE_TIME(time()); $query->set_days($first->as_iso(), $last->as_iso()); break; case Time_frame_last_week: $now = time(); $last = new DATE_TIME($now); $first = new DATE_TIME($now - 86400 * 7); $query->set_days($first->as_iso(), $last->as_iso()); break; case Time_frame_last_month: $now = time(); $last = new DATE_TIME($now); $first = new DATE_TIME($now - 86400 * 30); $query->set_days($first->as_iso(), $last->as_iso()); break; case Time_frame_all: break; } if ($this->period != Time_frame_all) { $query->order_by_recent(); } }