/**
 * Sets up a query for a particular entry type.
 * @param QUERY $query
 * @param string $type
 * @access private
 */
function project_query_set_type($query, $type)
{
    $table_names = $query->app->table_names;
    switch ($type) {
        case 'change':
            $query->add_select('chng.*');
            $query->add_table($table_names->changes . ' chng', 'chng.entry_id = entry.id');
            break;
        case 'job':
            $query->add_select('job.*');
            $query->add_table($table_names->jobs . ' job', 'job.entry_id = entry.id');
            break;
        default:
            $query->add_select('chng.*, job.*');
            $query->add_table($table_names->changes . ' chng', 'chng.entry_id = entry.id', 'LEFT');
            $query->add_table($table_names->jobs . ' job', 'job.entry_id = entry.id', 'LEFT');
            break;
    }
    $query->order_by_recent();
}
/**
 * Sets up a query for a particular entry type.
 * @param QUERY $query
 * @param string $type
 * @access private
 */
function album_query_set_type($query, $type)
{
    /** @var ALBUM_APPLICATION_TABLE_NAMES $table_names */
    $table_names = $query->app->table_names;
    switch ($type) {
        case 'picture':
            $query->add_select('pic.*');
            $query->add_table($table_names->pictures . ' pic', 'pic.entry_id = entry.id');
            break;
        case 'journal':
            $query->add_select('jrnl.*');
            $query->add_table($table_names->journals . ' jrnl', 'jrnl.entry_id = entry.id');
            break;
        default:
            $query->add_select('jrnl.*, pic.*');
            $query->add_table($table_names->journals . ' jrnl', 'jrnl.entry_id = entry.id', 'LEFT');
            $query->add_table($table_names->pictures . ' pic', 'pic.entry_id = entry.id', 'LEFT');
            break;
    }
    $query->order_by_day('ASC');
}
Пример #3
0
/**
 * Adds restrictions for finding only scheduled jobs.
 * @param QUERY $query
 * @access private
 */
function restrict_to_scheduled($query)
{
    $query->add_table('project_releases rel_sched', 'rel_sched.id = entry.release_id');
    $query->restrict('not ISNULL(rel_sched.time_next_deadline)');
    $query->restrict('rel_sched.time_next_deadline <> \'\'');
    $query->restrict('rel_sched.time_next_deadline <> \'00-00-0000 00:00:00\'');
    $query->add_order('rel_sched.time_next_deadline ASC', true);
    $query->store_order_as_recent();
}