
Задача: выводить информацию, полученную из БД на другом сервере, в карточке компании |
который поддерживает html поле
создаем пользовательское свойство через админку UF_COMPANY_MAIN_INFO с данным типом
\Bitrix\Main\EventManager::getInstance()->addEventHandler('main', 'onGetUserFieldValues', function(\Bitrix\Main\Event $event){ $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS); $entityId = $event->getParameter('entityId'); if($entityId === 'CRM_COMPANY'){ $userFields = $event->getParameter('userFields'); $companyId = $event->getParameter('value'); if(isset($userFields["UF_COMPANY_MAIN_INFO"]) && CModule::IncludeModule('crm')){ $arSelect = ["ID"]; foreach ($userFields as $key => $value) { $arSelect[] = $key; } $arFilter = array("ID"=>intval($companyId),"CHECK_PERMISSIONS"=>"N"); $rsCompany = CCrmCompany::GetList(Array(),$arFilter,$arSelect); if($arComp = $rsCompany->Fetch()){ unset($arComp["ID"]); $values = []; foreach ($arComp as $key => $value) { $values[$key] = $value; } } $info = MyClass::FillCompanyMainInfo($companyId,$values["UF_PA"]); //тут логика получения информации $values["UF_COMPANY_MAIN_INFO"] = $info; $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, [ 'values' => $values, ]); } } return $result; }); |
- /local/templates/.default/components/bitrix/system.field.edit/customhtml/template.php
- /local/templates/.default/components/bitrix/system.field.view/customhtml/template.php
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <?=html_entity_decode($arResult["VALUE"][0])??""?> |