/**
  * 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();
     }
 }