- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/usertypemanager.php
- Класс: CUserTypeManager
- Вызов: CUserTypeManager::GetPublicEdit
function GetPublicEdit($arUserField, $arAdditionalParameters = array())
{
$event = new BitrixMainEvent("main", "onBeforeGetPublicEdit", array(&$arUserField, &$arAdditionalParameters));
$event->send();
$arType = $this->GetUserType($arUserField["USER_TYPE_ID"]);
$html = null;
$event = new BitrixMainEvent("main", "onGetPublicEdit", array($arUserField, $arAdditionalParameters));
$event->send();
foreach($event->getResults() as $evenResult)
{
if($evenResult->getType() == BitrixMainEventResult::SUCCESS)
{
$html = $evenResult->getParameters();
break;
}
}
if($html !== null)
{
//All done
}
elseif(isset($arUserField["EDIT_CALLBACK"]) && is_callable($arUserField['EDIT_CALLBACK']))
{
$html = call_user_func_array($arUserField["EDIT_CALLBACK"], array(
$arUserField,
$arAdditionalParameters
));
}
elseif($arType && isset($arType["EDIT_CALLBACK"]) && is_callable($arType['EDIT_CALLBACK']))
{
$html = call_user_func_array($arType["EDIT_CALLBACK"], array(
$arUserField,
$arAdditionalParameters
));
}
elseif(isset($arUserField["EDIT_COMPONENT_NAME"]))
{
$html = $this->CallUserTypeComponent(
$arUserField["EDIT_COMPONENT_NAME"],
$arUserField["EDIT_COMPONENT_TEMPLATE"],
$arUserField,
$arAdditionalParameters
);
}
elseif($arType && isset($arType["EDIT_COMPONENT_NAME"]))
{
$html = $this->CallUserTypeComponent(
$arType["EDIT_COMPONENT_NAME"],
$arType["EDIT_COMPONENT_TEMPLATE"],
$arUserField,
$arAdditionalParameters
);
}
else
{
$html = $this->CallUserTypeComponent(
"bitrix:system.field.edit",
$arUserField["USER_TYPE_ID"],
$arUserField,
$arAdditionalParameters
);
}
$event = new BitrixMainEvent("main", "onAfterGetPublicEdit", array($arUserField, $arAdditionalParameters, &$html));
$event->send();
return $html;
}