You are here

function notifications_subscriptions_build_filter_query in Notifications 6.4

Same name and namespace in other branches
  1. 6 notifications.manage.inc \notifications_subscriptions_build_filter_query()
  2. 6.2 notifications.manage.inc \notifications_subscriptions_build_filter_query()
  3. 6.3 notifications.manage.inc \notifications_subscriptions_build_filter_query()

Build query for node administration filters based on session.

1 call to notifications_subscriptions_build_filter_query()
notifications_manage_subscriptions_form in ./notifications.manage.inc
Administer user subscriptions

File

./notifications.manage.inc, line 228
Common functions for bulk management of subscriptions

Code

function notifications_subscriptions_build_filter_query($account = NULL) {
  $filters = notifications_subscriptions_filters();

  // Build query
  $where = $args = array();
  $join = '';

  // If account passed, will be the first condition
  if ($account) {
    $where[] = "n.uid = %d";
    $args[] = $account->uid;
  }
  foreach ($_SESSION['subscriptions_overview_filter'] as $index => $filter) {
    list($key, $value) = $filter;
    switch ($key) {
      case 'status':
      case 'send_interval':
        $where[] = "n.{$key} = %d";
        $args[] = $value;
        break;
      case 'send_method':
      case 'type':
        $where[] = "n.{$key} = '%s'";
        $args[] = $value;
        break;
    }
    $args[] = $value;
  }
  $where = count($where) ? 'WHERE ' . implode(' AND ', $where) : '';
  return array(
    'where' => $where,
    'join' => $join,
    'args' => $args,
  );
}