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