/** * Set the most recent ordering for a query. * @param QUERY $query * @param string $type * @access private */ function project_query_order_by_recent($query, $type) { switch ($type) { case 'change': $query->set_order('chng.time_applied DESC, entry.time_created DESC'); break; case 'job': $query->set_order('entry.state, (closer_id = 0) DESC, job.status ASC, job.priority DESC, job.time_closed DESC, entry.time_created DESC'); break; default: $query->set_order('entry.type, entry.time_created DESC'); break; } }
/** * 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); }
/** * Adds restrictions for finding only closed jobs. * @param QUERY $query * @access private */ function restrict_to_closed($query) { $query->restrict("closer_id <> 0"); $query->set_order('time_closed DESC'); $query->store_order_as_recent(); }
/** * Apply the desired sorting for RSS. * Called from {@link prepare_query()}. * @param QUERY $query * @access private */ protected function _prepare_sort($query) { $query->set_order('entry.time_created DESC'); }