You are here

function simplenews_build_subscription_filter_query in Simplenews 6

Same name and namespace in other branches
  1. 5 simplenews.module \simplenews_build_subscription_filter_query()
  2. 6.2 includes/simplenews.admin.inc \simplenews_build_subscription_filter_query()
  3. 7.2 includes/simplenews.admin.inc \simplenews_build_subscription_filter_query()
  4. 7 includes/simplenews.admin.inc \simplenews_build_subscription_filter_query()

Build query for subscription filters based on session var content.

Return value

array of SQL query parts array('where' => $where, 'join' => $join, 'args' => $args)

1 call to simplenews_build_subscription_filter_query()
simplenews_subscription_list_form in ./simplenews.admin.inc
Build the form for admin subscription.

File

./simplenews.admin.inc, line 1141
Newsletter admin, subscription admin, simplenews settings

Code

function simplenews_build_subscription_filter_query() {

  // Variables $args and $join are currently not used but left in for future extensions
  $where = $args = array();
  $join = '';

  // Build query
  if (isset($_SESSION['simplenews_subscriptions_filter'])) {
    foreach ($_SESSION['simplenews_subscriptions_filter'] as $key => $value) {
      switch ($key) {
        case 'newsletter':
          if ($value != 'all') {
            list($key, $value) = explode('-', $value, 2);
            $where[] = 's.' . $key . ' = ' . $value;
          }
          break;
        case 'email':
          if (!empty($value)) {
            $where[] = "ss.mail LIKE '%%" . db_escape_string($value) . "%%'";
          }
          break;
      }
      $args[] = $value;
    }
  }

  // All conditions are combined with AND
  $where = empty($where) ? '' : ' AND ' . implode(' AND ', $where);
  return array(
    'where' => $where,
    'join' => $join,
    'args' => $args,
  );
}