• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/sitebutton/manager.php
  • Класс: Bitrix\Crm\SiteButton\Manager
  • Вызов: Manager::getLanguages
static function getLanguages()
{
	$list = array();

	$found = false;
	if (ModuleManager::isModuleInstalled("bitrix24"))
	{

		$fileName = Application::getDocumentRoot() . SITE_TEMPLATE_PATH . "/languages.php";
		$fileExists = file_exists($fileName);
		if (!$fileExists)
		{
			$fileName = Application::getDocumentRoot()
				. getLocalPath('templates/bitrix24', BX_PERSONAL_ROOT)
				. "/languages.php"
			;
			$fileExists = file_exists($fileName);
		}
		if ($fileExists)
		{
			global $b24Languages;
			include_once $fileName;
			if (isset($b24Languages) && is_array($b24Languages))
			{
				$list = \Bitrix\Main\Text\Encoding::convertEncoding($b24Languages, 'UTF-8', SITE_CHARSET);
				$found = !empty($list);
			}
		}
	}

	if (!$found)
	{
		$langDir = Application::getDocumentRoot() . '/bitrix/modules/crm/lang/';
		$dir = new \Bitrix\Main\IO\Directory($langDir);
		if ($dir->isExists())
		{
			foreach($dir->getChildren() as $childDir)
			{
				if (!$childDir->isDirectory())
				{
					continue;
				}

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

			if (count($list) > 0)
			{
				$listDb = \Bitrix\Main\Localization\LanguageTable::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']] = array("NAME" => $item['NAME']);
				}
			}
		}
	}

	return $list;
}