Source for file helper.php
Documentation is available at helper.php
* @package Joomla.Platform
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
* @package Joomla.Platform
* Builds a list of the system languages which can be used in a select option
* @param string $actualLanguage Client key for the area
* @param string $basePath Base path to use
* @param boolean $caching True if caching is used
* @param boolean $installed Get only installed languages
* @return array List of system languages
public static function createLanguageList($actualLanguage, $basePath =
JPATH_BASE, $caching =
false, $installed =
false)
$query =
$db->getQuery(true)
->where('type=' .
$db->quote('language'))
$installed_languages =
$db->loadObjectList('element');
foreach ($langs as $lang =>
$metadata)
$option['text'] =
$metadata['name'];
$option['value'] =
$lang;
if ($lang ==
$actualLanguage)
$option['selected'] =
'selected="selected"';
* Tries to detect the language.
* @return string locale or null if not found
if (isset
($_SERVER['HTTP_ACCEPT_LANGUAGE']))
$browserLangs =
explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$systemLangs =
self::getLanguages();
foreach ($browserLangs as $browserLang)
// Slice out the part before ; on first step, the part before - on second, place into array
$browserLang =
substr($browserLang, 0, strcspn($browserLang, ';'));
$primary_browserLang =
substr($browserLang, 0, 2);
foreach ($systemLangs as $systemLang)
// Take off 3 letters iso code languages as they can't match browsers' languages and default them to en
$Jinstall_lang =
$systemLang->lang_code;
if (strlen($Jinstall_lang) <
6)
return $systemLang->lang_code;
elseif ($primary_browserLang ==
substr($systemLang->lang_code, 0, 2))
$primaryDetectedLang =
$systemLang->lang_code;
if (isset
($primaryDetectedLang))
return $primaryDetectedLang;
* Get available languages
* @param string $key Array key
* @return array An array of published languages
// Installation uses available languages
$languages[$key] =
array();
foreach ($knownLangs as $metadata)
// Take off 3 letters iso code languages as they can't match browsers' languages and default them to en
$obj->lang_code =
$metadata['tag'];
$languages[$key][] =
$obj;
if (!$languages =
$cache->get('languages'))
$query =
$db->getQuery(true)
$languages['default'] =
$db->loadObjectList();
$languages['sef'] =
array();
$languages['lang_code'] =
array();
if (isset
($languages['default'][0]))
foreach ($languages['default'] as $lang)
$languages['sef'][$lang->sef] =
$lang;
$languages['lang_code'][$lang->lang_code] =
$lang;
$cache->store($languages, 'languages');
Documentation generated on Tue, 19 Nov 2013 15:04:23 +0100 by phpDocumentor 1.4.3