You are here

function global_filter_user_login in Views Global Filter 8

Same name and namespace in other branches
  1. 7 global_filter.module \global_filter_user_login()

Implements hook_user_login().

Set global filters from the user profile, if present.

Supports both core and Profile2 profiles.

File

./global_filter.module, line 126
global_filter.module

Code

function global_filter_user_login(&$edit, $account, $category) {
  $previous_session_filters = global_filter_get_session_value();
  $is_set_from_profile = global_filter_get_module_parameter('set_from_profile_on_login', TRUE);
  foreach (global_filter_get_parameter(NULL) as $key => $filter) {
    if (!empty($filter['name'])) {
      $name = $filter['name'];
      if ($is_set_from_profile) {
        $default = global_filter_user_profile_field($name, $account);
        if (isset($default)) {
          global_filter_debug(t('Global Filter %name: copying default from user profile...', array(
            '%name' => $name,
          )));
          global_filter_set_on_session($name, $default);
          continue;
        }
      }
      if (isset($previous_session_filters[$name])) {
        $default = $previous_session_filters[$name];
        global_filter_debug(t('Global Filter %name: no value on user profile (or not requested), so using value from previous session: %value', array(
          '%name' => $name,
          '%value' => is_array($default) ? implode('+', $default) : (empty($default) ? t('"all"') : $default),
        )));
      }
      else {
        $default = global_filter_get_global_default($key);
        global_filter_debug(t('Global Filter %name: no value on previous session or user profile (or not requested), so using global default...', array(
          '%name' => $name,
        )));
        global_filter_set_on_session($name, $default);
      }
    }
  }
}