- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/Service/Display/Field/CrmField.php
- Класс: Bitrix\Crm\Service\Display\Field\CrmField
- Вызов: CrmField::getFormattedValueForKanban
protected function getFormattedValueForKanban($fieldValue, int $itemId, Options $displayOptions)
{
$this->setWasRenderedAsHtml(true);
$result = ($this->isMultiple() ? [] : '');
$linkedEntitiesValues = $this->getLinkedEntitiesValues();
$fieldValue = is_array($fieldValue) ? $fieldValue : [$fieldValue];
foreach ($fieldValue as $entityElement)
{
if ($this->needExplodeValue($entityElement))
{
[$entityTypePrefix, $entityElementId] = explode('_', $entityElement);
$entityElementId = (int)$entityElementId;
}
elseif (!empty($this->entityTypes))
{
$entityTypePrefix = \CCrmOwnerTypeAbbr::ResolveByTypeName($this->entityTypes[0]);
$entityElementId = (int)$entityElement;
}
else
{
continue;
}
$entityTypeId = \CCrmOwnerTypeAbbr::ResolveTypeID($entityTypePrefix);
if (!$entityTypeId)
{
continue;
}
$entityTypeName = \CCrmOwnerTypeAbbr::ResolveName($entityTypePrefix);
$entityValue = $linkedEntitiesValues[$entityTypeName][$entityElementId] ?? null;
if (!$entityValue)
{
continue;
}
$link = Container::getInstance()->getRouter()->getItemDetailUrl($entityTypeId, $entityElementId);
$prefix = '';
$tooltipLoader = null;
$className = null;
$hasReadPermission = $this->hasReadPermissions($entityTypeId, $entityElementId, $entityValue);
if ($hasReadPermission)
{
$title = $this->getEntityTitle($entityTypeId, $entityElementId, $entityValue);
if ($entityTypeId === \CCrmOwnerType::Lead)
{
$prefix = \CCrmOwnerTypeAbbr::Lead;
$className = 'crm_balloon_no_photo';
}
elseif ($entityTypeId === \CCrmOwnerType::Contact)
{
$prefix = \CCrmOwnerTypeAbbr::Contact;
}
elseif ($entityTypeId === \CCrmOwnerType::Company)
{
$prefix = \CCrmOwnerTypeAbbr::Company;
}
elseif ($entityTypeId === \CCrmOwnerType::Deal)
{
$prefix = \CCrmOwnerTypeAbbr::Deal;
$className = 'crm_balloon_no_photo';
}
elseif ($entityTypeId === \CCrmOwnerType::Order)
{
$prefix = \CCrmOwnerTypeAbbr::Order;
$tooltipLoader = '/bitrix/components/bitrix/crm.order.details/card.ajax.php';
}
elseif ($entityTypeId === \CCrmOwnerType::Quote)
{
$className = 'crm_balloon_no_photo';
}
elseif (\CCrmOwnerType::isUseFactoryBasedApproach($entityTypeId))
{
$prefix = \CCrmOwnerTypeAbbr::ResolveByTypeID($entityTypeId);
$tooltipLoader = UrlManager::getInstance()->create(
'bitrix:crm.controller.tooltip.card',
[
'sessid' => bitrix_sessid(),
]
);
$className = 'crm_balloon_no_photo';
$entityElementId = $entityTypeId . '-' . $entityElementId;
}
$formattedValue = '';
if ($title !== null)
{
$formattedValue = htmlspecialcharsbx($title);
if (!$this->isExportContext())
{
\Bitrix\Main\UI\Extension::load('ui.tooltip');
$tooltipLoader = (
$tooltipLoader
??
htmlspecialcharsbx('/bitrix/components/bitrix/crm.'
. mb_strtolower($entityTypeName)
. '.show/card.ajax.php')
);
$className = ($className ?? 'crm_balloon_' . mb_strtolower($entityTypeName));
$formattedValue = $this->getHtmlLink($link, $entityElementId, $tooltipLoader, $className,
$formattedValue);
}
elseif ($this->isUserField())
{
$formattedValue = "[$prefix]$formattedValue";
}
}
}
else
{
$formattedValue = \CCrmEntitySelectorHelper::getHiddenTitle($entityTypeName);
}
if ($formattedValue !== '')
{
if ($this->isMultiple())
{
$result[] = $formattedValue;
}
else
{
$result = $formattedValue;
break;
}
}
}
return $result;
}