language_provider_invoke
- Versions
- 7
language_provider_invoke($provider_id, $provider = NULL)
Helper function used to cache the language providers results.
Parameters
$provider_id The language provider ID.
$provider The language provider to be invoked. If not passed it will be explicitly loaded through language_negotiation_info().
Return value
The language provider's return value.
Code
includes/language.inc, line 247
<?php
function language_provider_invoke($provider_id, $provider = NULL) {
$results = &drupal_static(__FUNCTION__);
if (!isset($results[$provider_id])) {
global $user;
// Get languages grouped by status and select only the enabled ones.
$languages = language_list('enabled');
$languages = $languages[1];
if (!isset($provider)) {
$providers = language_negotiation_info();
$provider = $providers[$provider_id];
}
if (isset($provider['file'])) {
require_once DRUPAL_ROOT . '/' . $provider['file'];
}
// If the language provider has no cache preference or this is satisified
// we can execute the callback.
$cache = !isset($provider['cache']) || $user->uid || $provider['cache'] == variable_get('cache', CACHE_DISABLED);
$callback = isset($provider['callbacks']['language']) ? $provider['callbacks']['language'] : FALSE;
$langcode = $cache && function_exists($callback) ? $callback($languages) : FALSE;
$results[$provider_id] = isset($languages[$langcode]) ? $languages[$langcode] : FALSE;
}
return $results[$provider_id];
}
?>Login or register to post comments 