• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/template/helper.php
  • Класс: BitrixIblockTemplateHelper
  • Вызов: Helper::makeFileName
static function makeFileName(
	BitrixIblockInheritedPropertyBaseTemplate $ipropTemplates,
	string $templateName,
	array $fields,
	array $file
): string
{
	if (!isset($file['name']))
	{
		return '';
	}

	if (preg_match("/^(.+)(\.[a-zA-Z0-9]+)$/", $file["name"], $fileName))
	{
		if (!isset($fields["IPROPERTY_TEMPLATES"]) || $fields["IPROPERTY_TEMPLATES"][$templateName] == "")
		{
			$templates = $ipropTemplates->findTemplates();
			$TEMPLATE = ($templates[$templateName]["TEMPLATE"] ?? '');
		}
		else
		{
			$TEMPLATE = $fields["IPROPERTY_TEMPLATES"][$templateName];
		}

		if ($TEMPLATE != "")
		{
			[$template, $modifiers] = Helper::splitTemplate($TEMPLATE);
			if ($template != "")
			{
				$values = $ipropTemplates->getValuesEntity();
				$entity = $values->createTemplateEntity();
				$entity->setFields($fields);
				return BitrixIblockTemplateEngine::process($entity, $TEMPLATE).$fileName[2];
			}
			elseif ($modifiers != "")
			{
				$simpleTemplate = new NodeRoot;
				$simpleTemplate->addChild(new NodeText($fileName[1]));
				$simpleTemplate->setModifiers($modifiers);
				$baseEntity = new EntityBase(0);
				return $simpleTemplate->process($baseEntity).$fileName[2];
			}
		}
	}

	return $file["name"];
}