- Модуль: documentgenerator
- Путь к файлу: ~/bitrix/modules/documentgenerator/lib/dataprovidermanager.php
- Класс: BitrixDocumentGeneratorDataProviderManager
- Вызов: DataProviderManager::prepareValue
public function prepareValue($value, $fieldDescription = [])
{
if($value instanceof Value)
{
return $value;
}
if(isset($fieldDescription['PROVIDER']) && !empty($fieldDescription['PROVIDER']))
{
return $value;
}
$type = null;
$format = [];
if(is_array($fieldDescription) && array_key_exists('TYPE', $fieldDescription) && !empty($fieldDescription['TYPE']))
{
$type = $fieldDescription['TYPE'];
}
if(isset($fieldDescription['FORMAT']))
{
$format = $fieldDescription['FORMAT'];
}
if($type !== DataProvider::FIELD_TYPE_NAME && $this->isMultiple($value))
{
$result = [];
foreach($value as $singleValue)
{
if(!empty($singleValue))
{
$result[] = $this->getValueByType($singleValue, $type, $format);
}
}
if(!empty($result))
{
// no need for Multiple if there is only one item.
if(!($result[0] instanceof DateTime) && count($result) === 1)
{
return reset($result);
}
return new Multiple($result, $format);
}
return null;
}
return $this->getValueByType($value, $type, $format);
}