• Модуль: 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;
}