- Модуль: location
- Путь к файлу: ~/bitrix/modules/location/lib/entity/address/converter/stringconverter.php
- Класс: BitrixLocationEntityAddressConverterStringConverter
- Вызов: StringConverter::convertToString
static function convertToString(Address $address, Format $format, string $strategyType, string $contentType): string
{
if($strategyType === self::STRATEGY_TYPE_TEMPLATE
|| $strategyType === self::STRATEGY_TYPE_TEMPLATE_COMMA
|| $strategyType === self::STRATEGY_TYPE_TEMPLATE_NL
|| $strategyType === self::STRATEGY_TYPE_TEMPLATE_BR
)
{
$delimiter = null;
switch ($strategyType)
{
case self::STRATEGY_TYPE_TEMPLATE_COMMA:
$delimiter = ', ';
break;
case self::STRATEGY_TYPE_TEMPLATE_NL:
$delimiter = "n";
break;
case self::STRATEGY_TYPE_TEMPLATE_BR:
$delimiter = '
';
break;
}
$result = self::convertToStringTemplate(
$address,
$format->getTemplate(),
$contentType,
$delimiter,
$format
);
}
elseif($strategyType === self::STRATEGY_TYPE_FIELD_SORT)
{
$result = self::convertToStringByField($address, $format, $contentType);
}
elseif($strategyType === self::STRATEGY_TYPE_FIELD_TYPE)
{
$fieldSorter = static function(FormatField $a, FormatField $b): int
{
$aType = $a->getType();
$bType = $b->getType();
if($aType === 0)
{
$result = -1;
}
elseif ($bType === 0)
{
$result = 1;
}
else
{
$result = $aType - $bType;
}
return $result;
};
$result = self::convertToStringByField($address, $format, $contentType, $fieldSorter);
}
else
{
throw new ArgumentOutOfRangeException('strategyType');
}
return $result;
}