- Модуль: documentgenerator
- Путь к файлу: ~/bitrix/modules/documentgenerator/lib/body.php
- Класс: BitrixDocumentGeneratorBody
- Вызов: Body::getStringValue
protected function getStringValue($value, $placeholder, $modifier = '', array $params = []): string
{
if (mb_strpos($modifier, static::DO_NOT_INSERT_VALUE_MODIFIER) !== false)
{
return '';
}
if (is_object($value))
{
if ($value instanceof Value)
{
return $value->toString($modifier);
}
if (class_exists($value) && method_exists($value, '__toString'))
{
return $value->__toString();
}
return '';
}
if (is_array($value))
{
return '';
}
if ($this->isArrayValue($value, $placeholder))
{
$valueNameParts = explode('.', $value);
$name = implode('.', array_slice($valueNameParts, 2));
$modifierData = Value::parseModifier($modifier);
$index = 0;
/** @var ArrayDataProvider $innerProvider */
$arrayProvider = $this->values[$valueNameParts[0]];
if (isset($modifierData['all']))
{
$value = $this->printAllArrayValues($arrayProvider, $placeholder, $name, $modifier);
}
else
{
if (isset($modifierData[static::ARRAY_INDEX_MODIFIER]))
{
$index = (int) $modifierData[static::ARRAY_INDEX_MODIFIER];
}
$value = $this->printArrayValueByIndex($arrayProvider, $placeholder, $name, $index, $modifier);
}
}
return (string)$value;
}