You are here

function locale_language_switcher_session in Drupal 7

Return the session language switcher block.

Related topics

1 string reference to 'locale_language_switcher_session'
locale_language_negotiation_info in modules/locale/locale.module
Implements hook_language_negotiation_info().

File

includes/locale.inc, line 377
Administration functions for locale.module.

Code

function locale_language_switcher_session($type, $path) {
  drupal_add_css(drupal_get_path('module', 'locale') . '/locale.css');
  $param = variable_get('locale_language_negotiation_session_param', 'language');
  $language_query = isset($_SESSION[$param]) ? $_SESSION[$param] : $GLOBALS[$type]->language;
  $languages = language_list('enabled');
  $links = array();
  $query = $_GET;
  unset($query['q']);
  foreach ($languages[1] as $language) {
    $langcode = $language->language;
    $links[$langcode] = array(
      'href' => $path,
      'title' => $language->native,
      'attributes' => array(
        'class' => array(
          'language-link',
        ),
      ),
      'query' => $query,
    );
    if ($language_query != $langcode) {
      $links[$langcode]['query'][$param] = $langcode;
    }
    else {
      $links[$langcode]['attributes']['class'][] = 'session-active';
    }
  }
  return $links;
}