• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/util.php
  • Класс: BitrixIntranetUtil
  • Вызов: Util::getLanguageList
static function getLanguageList()
{
	$list = array();
	$langFromTemplate = array();

	if (BitrixMainModuleManager::isModuleInstalled("intranet"))
	{
		global $b24Languages;
		$fileName = BitrixMainApplication::getDocumentRoot() . getLocalPath('templates/bitrix24', BX_PERSONAL_ROOT) . "/languages.php";
		if (BitrixMainIOFile::isFileExists($fileName))
		{
			include_once $fileName;
		}
		if (isset($b24Languages) && is_array($b24Languages))
		{
			$langFromTemplate = BitrixMainTextEncoding::convertEncoding($b24Languages, 'UTF-8', SITE_CHARSET);
		}
	}

	$langDir = BitrixMainApplication::getDocumentRoot() . '/bitrix/modules/intranet/lang/';
	$dir = new BitrixMainIODirectory($langDir);
	if ($dir->isExists())
	{
		foreach($dir->getChildren() as $childDir)
		{
			if (!$childDir->isDirectory())
			{
				continue;
			}

			$list[] = $childDir->getName();
		}

		if (count($list) > 0)
		{
			$listDb = BitrixMainLocalizationLanguageTable::getList(array(
				'select' => array('LID', 'NAME'),
				'filter' => array(
					'=LID' => $list,
					'=ACTIVE' => 'Y'
				),
				'order' => array('SORT' => 'ASC')
			));
			$list = array();
			while ($item = $listDb->fetch())
			{
				$list[$item['LID']] = isset($langFromTemplate[$item['LID']])? $langFromTemplate[$item['LID']]: $item['NAME'];
			}
		}
	}

	return $list;
}