You are here

function notifications_manage_subscriptions_filter_form_submit in Notifications 7

Process result from node administration filter form.

2 string references to 'notifications_manage_subscriptions_filter_form_submit'
notifications_account_manage_subscriptions_form in notifications_account/notifications_account.pages.inc
Menu callback: user subscriptions management
notifications_admin_manage_subscriptions in ./notifications.admin.inc
Menu callback: subscriptions administration.

File

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

Code

function notifications_manage_subscriptions_filter_form_submit($form, &$form_state) {
  $filters = notifications_manage_subscriptions_filters();
  $triggering_element = isset($form_state['triggering_element']['#name']) ? $form_state['triggering_element']['#name'] : '';
  switch ($triggering_element) {
    case 'filter':
    case 'refine':

      // Apply every filter that has a choice selected other than 'any'.
      foreach ($filters as $filter => $options) {
        if (isset($form_state['values'][$filter]) && $form_state['values'][$filter] != '[any]') {

          // Flatten the options array to accommodate hierarchical/nested options.
          $flat_options = form_options_flatten($filters[$filter]['options']);

          // Only accept valid selections offered on the dropdown, block bad input.
          if (isset($flat_options[$form_state['values'][$filter]])) {
            $_SESSION['subscriptions_overview_filter'][] = array(
              $filter,
              $form_state['values'][$filter],
            );
          }
        }
      }
      break;
    case 'undo':
      array_pop($_SESSION['subscriptions_overview_filter']);
      break;
    case 'reset':
      $_SESSION['subscriptions_overview_filter'] = array();
      break;
  }
}