You are here

function language_selection_page_selection_page_data in Language Selection Page 7

Same name and namespace in other branches
  1. 7.2 includes/language_selection_page.helpers.inc \language_selection_page_selection_page_data()
3 calls to language_selection_page_selection_page_data()
language_selection_page_block_view in ./language_selection_page.module
Implements hook_block_view().
language_selection_page_preprocess_block in ./language_selection_page.module
Implements hook_preprocess_HOOK().
language_selection_page_selection_page in ./language_selection_page.pages.inc
Menu callback to display the selection page.

File

./language_selection_page.pages.inc, line 33
Contains menu callback functions for pages defined in this module

Code

function language_selection_page_selection_page_data() {
  $language = $GLOBALS['language'];
  if (!empty($language->provider) && $language->provider != 'language-default') {
    return FALSE;
  }
  $query = drupal_get_query_parameters();
  $from = array_key_exists('destination', $query) ? $query['destination'] : request_path();
  $language_selection_page = array();
  unset($query['q']);
  unset($query['destination']);
  $language_none_object = new StdClass();
  $language_none_object->language = LANGUAGE_NONE;

  // prepare information about the link the user is coming from
  $url = url($from, array(
    'query' => $query,
    'language' => $language_none_object,
  ));
  $language_selection_page['from'] = array(
    'text' => $from,
    'query' => $query,
    'url' => $url,
    'link' => l($url, $from, array(
      'query' => $query,
      'language' => $language_none_object,
    )),
  );

  // prepare the links per language
  $language_enabled = language_list('enabled');
  foreach ($language_enabled['1'] as $prefix => $language) {

    // @TODO: is prefix check necessary?
    if (!$language->prefix) {
      continue;
    }
    $language_selection_page['links'][] = array(
      'language' => $language,
      'from' => $from,
      'query' => $query,
      'url' => url($from, array(
        'query' => $query,
        'language' => $language,
      )),
      'link' => l($language->native, $from, array(
        'query' => $query,
        'language' => $language,
        'attributes' => array(
          'class' => array(
            'language_selection_page_link',
            'language_selection_page_link_' . drupal_html_class(drupal_clean_css_identifier($language->language)),
          ),
        ),
      )),
    );
  }

  // before we start processing the gathered data, we let other modules alter it
  // by letting them implement hook_language_selection_page_data_alter(&$data)
  drupal_alter('language_selection_page_data', $language_selection_page);
  return $language_selection_page;
}