- Модуль: location
- Путь к файлу: ~/bitrix/modules/location/lib/entity/address/converter/stringtemplateconverter.php
- Класс: BitrixLocationEntityAddressConverterStringTemplateConverter
- Вызов: StringTemplateConverter::getAddressFieldValue
private function getAddressFieldValue(Address $address, string $fieldName, string $fieldModifiers): string
{
$result = '';
if (FieldType::isTypeExist($fieldName))
{
$addressFieldType = constant(FieldType::class.'::'.$fieldName);
if ($fieldName === 'ADM_LEVEL_1' || $fieldName === 'ADM_LEVEL_2')
{
// Scratch "Province & Region by Locality"
$result = $this->getAlterFieldValue($address, $addressFieldType);
}
else
{
$result = $address->getFieldValue($addressFieldType);
}
if ($result === null)
{
$result = $this->getFieldValueByTemplate($fieldName, $address);
}
}
if (!is_string($result))
{
$result = '';
}
if ($result !== '')
{
if (strpos($fieldModifiers, 'N') !== false)
{
$result = str_replace(["rn", "n", "r"], '#S#', $result);
}
if (strpos($fieldModifiers, 'U') !== false)
{
$result = mb_strtoupper($result);
}
}
return $result;
}