我需要为我的joomla网站中安装的所有语言提供语言列表,以使用下拉列表中的列表。
$lg = &JFactory::getLanguage();
foreach ($lg->getKnownLanguages() as $l)
echo $l->getName() . ', ';
我该怎么办?
答案 0 :(得分:3)
正如您在ContentLanguage字段类型文档中看到的那样:
http://docs.joomla.org/ContentLanguage_form_field_type
$languages = JLanguage::getKnownLanguages();
更多信息:
答案 1 :(得分:2)
第一次数据库查询:
$db =& JFactory::getDbo();
$db->setQuery(
'SELECT sef, title_native' .
' FROM #__languages' .
' ORDER BY sef ASC'
);
$options = $db->loadObjectList();
$selected = "en_GB"
其次在您的布局中:
echo JHtml::_('select.options', $options, 'sef', 'title_native', $selected);
这将输出HTML <select>
标记,默认情况下选择“英文”
修改强> 如果你想在JForm(Joomla&gt; 1.6)中使用它,有一个名为“contentlanguage”的字段类型
<field name="languages" type="contentlanguage" />
答案 2 :(得分:2)
您也可以使用适当的com_languages类
JLoader::register('LanguagesModelInstalled', JPATH_ADMINISTRATOR.DS.'components'.DS.'com_languages'.DS.'models'.DS.'installed.php');
$lang = new LanguagesModelInstalled();
$current_languages = $lang ->getData();
然后从检索到的数据中创建选择列表