- Модуль: 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;
}