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