function language_selection_page_selection_page_data in Language Selection Page 7
Same name and namespace in other branches
- 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;
}