- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblocksection.php
- Класс: CAllIBlockSection
- Вызов: CAllIBlockSection::generateMnemonicCode
public function generateMnemonicCode(string $name, int $iblockId, array $options = []): ?string
{
if ($name === '' || $iblockId <= 0)
{
return null;
}
if ($this->iblock !== null && $this->iblock['ID'] === $iblockId)
{
$iblock = $this->iblock;
$language = $this->iblockLanguage;
}
else
{
$iblock = CIBlock::GetArrayByID($iblockId);
if (empty($iblock))
{
$iblock = null;
$language = null;
}
else
{
$iblock['ID'] = (int)$iblock['ID'];
$language = static::getIblockLanguage($iblock['ID']);
}
}
if (empty($iblock))
{
return null;
}
$result = null;
if (isset($iblock['FIELDS']['SECTION_CODE']['DEFAULT_VALUE']))
{
if ($iblock['FIELDS']['SECTION_CODE']['DEFAULT_VALUE']['TRANSLITERATION'] === 'Y'
&& $iblock['FIELDS']['SECTION_CODE']['DEFAULT_VALUE']['USE_GOOGLE'] === 'N'
)
{
$config = $iblock['FIELDS']['SECTION_CODE']['DEFAULT_VALUE'];
$config['LANGUAGE_ID'] = $language;
$config = array_merge($config, $options);
if ($config['LANGUAGE_ID'] !== null)
{
$settings = [
'max_len' => $config['TRANS_LEN'],
'change_case' => $config['TRANS_CASE'],
'replace_space' => $config['TRANS_SPACE'],
'replace_other' => $config['TRANS_OTHER'],
'delete_repeat_replace' => ($config['TRANS_EAT'] == 'Y'),
];
$result = CUtil::translit($name, $config['LANGUAGE_ID'], $settings);
}
}
}
return $result;
}