- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/result.php
- Класс: Bitrix\Crm\WebForm\Result
- Вызов: Result::formatFieldsByTemplate
static function formatFieldsByTemplate(array $fields, $fieldTemplate = "%caption%%required%: %values%\n", $valueTemplate = "%value%\n", $valueListTemplate = "\n%value%")
{
$result = '';
foreach($fields as $field)
{
if(!$field || !is_array($field['value']))
{
continue;
}
$values = array();
foreach($field['value'] as $value)
{
if(is_array($value))
{
$values[] = htmlspecialcharsbx($value['title'] ?? $value['name']);
}
else
{
$values[] = htmlspecialcharsbx($value);
}
}
// format values
$displayedValues = '';
foreach ($values as $value)
{
switch ($field['type'])
{
case Internals\FieldTable::TYPE_ENUM_CHECKBOX:
if (in_array($value, ['Y', 'N']))
{
EntityFieldProvider::getBooleanFieldItems();
$value = Loc::getMessage('CRM_WEBFORM_FIELD_PROVIDER_' . (
$value === 'Y' ? 'YES' : 'NO'
));
}
break;
case Internals\FieldTable::TYPE_ENUM_DATETIME:
if (is_numeric($value))
{
$value = DateTime::createFromTimestamp($value)->toString();
}
break;
}
$displayedValues .= str_replace(
array('%value%'),
array($value),
($valueListTemplate && count($values) > 1) ? $valueListTemplate : $valueTemplate
);
}
// format field
$result .= str_replace(
array(
'%caption%',
'%required%',
'%values%'
),
array(
htmlspecialcharsbx($field['caption']),
$field['required'] ? '*' : '',
$displayedValues
),
$fieldTemplate
);
}
return $result;
}