You are here

public static function Notifications_Queue::queue_query in Notifications 6.4

Build query conditions for queue queries

Parameters

$params: Array of parameters, field => value form Special parameters 'max_squid' => max squid to delete 'rows' => array of squid values to delte

Return value

Array with 'where' and 'args' elements. Each of them is an array

4 calls to Notifications_Queue::queue_query()
Notifications_Queue::process_rows in includes/notifications_queue.class.inc
Process rows given query conditions
Notifications_Queue::queue_count in includes/notifications_queue.class.inc
Count the number of rows in queue
Notifications_Queue::queue_delete in includes/notifications_queue.class.inc
Delete rows from subscriptions queue
Notifications_Queue::queue_update in includes/notifications_queue.class.inc
Update queue rows with defined values

File

includes/notifications_queue.class.inc, line 836

Class

Notifications_Queue
Queue management and processing

Code

public static function queue_query($params, $table_alias = NULL) {
  $where = $args = array();

  // Special condition max_sqid
  if (isset($params['max_sqid'])) {
    $where[] = $table_alias ? "{$table_alias}.sqid <= %d" : "sqid <= %d";
    $args[] = $params['max_sqid'];
    unset($params['max_sqid']);
  }

  // Special condition send_time_after
  if (isset($params['send_time_after'])) {
    $where[] = $table_alias ? "{$table_alias}.send_time < %d" : "send_time < %d";
    $args[] = $params['send_time_after'];
    unset($params['send_time_after']);
  }

  // User generic query builder for the rest of fields
  $values = _messaging_query_conditions('notifications_queue', $params, $table_alias);
  $where = array_merge($where, $values['conditions']);
  $args = array_merge($args, $values['args']);
  return array(
    'where' => $where,
    'args' => $args,
  );
}