- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/usertypemanager.php
- Класс: CUserTypeManager
- Вызов: CUserTypeManager::GetEditFormHTML
function GetEditFormHTML($bVarsFromForm, $form_value, $arUserField)
{
global $APPLICATION;
global $adminPage, $adminSidePanelHelper;
if($arUserField["USER_TYPE"])
{
if($this->GetRights($arUserField["ENTITY_ID"]) >= "W")
{
$selfFolderUrl = $adminPage->getSelfFolderUrl();
$userFieldUrl = $selfFolderUrl . "userfield_edit.php?lang=" . LANGUAGE_ID . "&ID=" . $arUserField["ID"];
$userFieldUrl = $adminSidePanelHelper->editUrlToPublicPage($userFieldUrl);
$edit_link = ($arUserField["HELP_MESSAGE"] ? htmlspecialcharsex($arUserField["HELP_MESSAGE"]) . '
' : '') . '' . htmlspecialcharsex(GetMessage("MAIN_EDIT")) . '';
}
else
{
$edit_link = '';
}
$hintHTML = ' ';
if($arUserField["MANDATORY"] == "Y")
$strLabelHTML = $hintHTML . '' . htmlspecialcharsbx($arUserField["EDIT_FORM_LABEL"] ? $arUserField["EDIT_FORM_LABEL"] : $arUserField["FIELD_NAME"]) . '' . ':';
else
$strLabelHTML = $hintHTML . htmlspecialcharsbx($arUserField["EDIT_FORM_LABEL"] ? $arUserField["EDIT_FORM_LABEL"] : $arUserField["FIELD_NAME"]) . ':';
if(is_callable(array($arUserField["USER_TYPE"]["CLASS_NAME"], "geteditformhtml")))
{
$js = $this->ShowScript();
if(!$bVarsFromForm)
$form_value = $arUserField["VALUE"];
elseif($arUserField["USER_TYPE"]["BASE_TYPE"] == "file")
$form_value = $GLOBALS[$arUserField["FIELD_NAME"] . "_old_id"];
elseif($arUserField["EDIT_IN_LIST"] == "N")
$form_value = $arUserField["VALUE"];
if(
$arUserField["MULTIPLE"] === "N"
||
!empty($arUserField['USER_TYPE']['USE_FIELD_COMPONENT'])
)
{
$valign = "";
$rowClass = "";
$html = call_user_func_array(
array($arUserField["USER_TYPE"]["CLASS_NAME"], "geteditformhtml"),
array(
$arUserField,
array(
"NAME" => $arUserField["FIELD_NAME"],
"VALUE" => (is_array($form_value) ? $form_value : htmlspecialcharsbx($form_value)),
"VALIGN" => &$valign,
"ROWCLASS" => &$rowClass
),
$bVarsFromForm
)
);
return '| 'middle' ? ' class="adm-detail-valign-top"' : '') . ' width="40%">' . $strLabelHTML . ' | ' . $html . ' |
' . $js;
}
elseif(is_callable(array($arUserField["USER_TYPE"]["CLASS_NAME"], "geteditformhtmlmulty")))
{
if(!is_array($form_value))
{
$form_value = array();
}
foreach($form_value as $key => $value)
{
if(!is_array($value))
{
$form_value[$key] = htmlspecialcharsbx($value);
}
}
$rowClass = "";
$html = call_user_func_array(
array($arUserField["USER_TYPE"]["CLASS_NAME"], "geteditformhtmlmulty"),
array(
$arUserField,
array(
"NAME" => $arUserField["FIELD_NAME"] . "[]",
"VALUE" => $form_value,
"ROWCLASS" => &$rowClass
),
$bVarsFromForm
)
);
return '| ' . $strLabelHTML . ' | ' . $html . ' |
' . $js;
}
else
{
if(!is_array($form_value))
{
$form_value = array();
}
$html = "";
$i = -1;
foreach($form_value as $i => $value)
{
if(
(is_array($value) && (implode("", $value) <> ''))
|| ((!is_array($value)) && ((string)$value <> ''))
)
{
$html .= '| ' . call_user_func_array(
array($arUserField["USER_TYPE"]["CLASS_NAME"], "geteditformhtml"),
array(
$arUserField,
array(
"NAME" => $arUserField["FIELD_NAME"] . "[" . $i . "]",
"VALUE" => (is_array($value) ? $value : htmlspecialcharsbx($value)),
),
$bVarsFromForm
)
) . ' |
';
}
}
//Add multiple values support
$rowClass = "";
$FIELD_NAME_X = str_replace('_', 'x', $arUserField["FIELD_NAME"]);
$fieldHtml = call_user_func_array(
array($arUserField["USER_TYPE"]["CLASS_NAME"], "geteditformhtml"),
array(
$arUserField,
array(
"NAME" => $arUserField["FIELD_NAME"] . "[" . ($i + 1) . "]",
"VALUE" => "",
"ROWCLASS" => &$rowClass
),
$bVarsFromForm
)
);
return '| ' . $strLabelHTML . ' | ' .
'' .
' |
' . $js;
}
}
}
return '';
}