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