function language_selection_page_selection_page in Language Selection Page 7.2
Same name and namespace in other branches
- 6 language_selection_page.pages.inc \language_selection_page_selection_page()
- 7 language_selection_page.pages.inc \language_selection_page_selection_page()
Menu callback to display the selection page.
1 string reference to 'language_selection_page_selection_page'
- language_selection_page_menu in ./
language_selection_page.module - Implements hook_menu().
File
- ./
language_selection_page.pages.inc, line 11 - Contains menu callback functions for pages defined in this module.
Code
function language_selection_page_selection_page() {
$arguments = func_get_args();
$destination = isset($arguments[0]) ? implode('/', $arguments) : '<front>';
// If the destination passed doesn't exist or is external, set it to the
// homepage.
if (!drupal_valid_path($destination) || url_is_external($destination)) {
if (!drupal_lookup_path('source', $destination)) {
$destination = '<front>';
}
}
if (variable_get('language_selection_page_js_cookie_redirect', FALSE)) {
// This adds a Javascript-based automatic redirect based on language in the
// user's language cookie. This may be useful for sites using page caching
// such as Varnish or Boost.
$param = variable_get('language_cookie_param', 'language');
drupal_add_js(array(
'language_selection_page' => array(
'cookieName' => $param,
),
), 'setting');
drupal_add_js(drupal_get_path('module', 'language_selection_page') . '/themes/js/cookie_redirect.js');
}
else {
module_load_include('inc', 'language_selection_page', 'includes/language_selection_page.helpers');
if (language_selection_page_is_negotiation_detected()) {
drupal_goto($destination);
}
}
// Get the array of data.
$language_selection_page = language_selection_page_selection_page_data($destination);
// Convert the array of data in HTML.
$content = theme('language_selection_page_body', array(
'language_selection_page' => $language_selection_page,
));
switch (variable_get('language_selection_page_redirect_type', LANGUAGE_SELECTION_PAGE_TEMPLATE_ONLY)) {
case LANGUAGE_SELECTION_PAGE_TEMPLATE_IN_THEME:
return $content;
case LANGUAGE_SELECTION_PAGE_TEMPLATE_ONLY:
drupal_add_css(drupal_get_path('module', 'language_selection_page') . '/themes/css/language_selection_page.css');
$html['title'] = t("Language selection");
$html['page']['#children'] = $content;
$html['language_selection_page'] = $language_selection_page;
print theme('html', $html);
drupal_exit();
}
}