Копируем bitrix\modules\iblock\admin\iblock_element_edit.php
в /bitrix/php_interface/include/iblock_element_edit_my.php
и в нашем новом файле оставляем строки от
[CODE]//START of the custom form[/CODE]до
[CODE]//END of the custom form[/CODE]и редактируем как нам нужно.
Как называть поля ввода в форме (name="???")?
В исходном коде поля выводятся так
[CODE]<?_ShowPropertyField('PROP['.$prop_fields["ID"].']', $prop_fields, $prop_fields["VALUE"], (($historyId <= 0) && (!$bVarsFromForm) && ($ID<=0)), $bVarsFromForm, 50000, $tabControl->GetFormName(), $bCopy);?>[/CODE]Это и "name" и "value"... все сразу.
Функция _ShowPropertyField находится в
bitrix\modules\iblock\admin_tools.php
Смотрим в ней как поля в форме называть...
В настройках инфоблока данный файл указываем в качестве "Файл с формой редактирования элемента".
Смотрим что получилось...
Теперь поля не отсортированы. И кнопки "Настроить" нет.
Не хочется в iblock_element_edit_my.php добавлять механизм сортировки и отказываться от стандартной функции?
Тогда добавим такой код:
[CODE]// Toolbar "Настроить"
$aMenu = array();
if (false == ((true == defined('BT_UT_AUTOCOMPLETE')) && (1 == BT_UT_AUTOCOMPLETE)))
{
$link = DeleteParam(array("mode"));
$link = $GLOBALS["APPLICATION"]->GetCurPage()."?mode=settings".($link <> ""? "&".$link:"");
$aMenu[] = array(
"TEXT"=>GetMessage("IBEL_E_SETTINGS"),
"TITLE"=>GetMessage("IBEL_E_SETTINGS_TITLE"),
"LINK"=>"jav * ascript:".$tabControl->GetName().".ShowSettings('".urlencode($link)."')",
"ICON"=>"btn_settings",
);
$context = new CAdminContextMenu($aMenu);
$context->Show();
}[/CODE]Проверяем... Теперь появился еще один Toolbar с одним пунктом "Настроить".
Хотелось бы конечно в уже существующий добавить, но увы...
Уж лучше так чем совсем никак.
P.S.
В iblock_element_edit.php создаются вкладки
[CODE]$tabControl = new CAdminForm($bCustomForm? "tabControl": "form_element_".$IBLOCK_ID, $aTabs);[/CODE](см. bitrix\modules\main\interface\admin_lib.php)
...
поля
[CODE]tabControl->AddCheckBoxField("ACTIVE", GetMessage("IBLOCK_FIELD_ACTIVE").":", false, "Y", $str_ACTIVE=="Y");[/CODE]...
и отображаются
[CODE]$tabControl->Show();[/CODE]CAdminForm->Show() сортирует вкладки и поля перед выводом.
Вот еще полезная информация (как в админку свой функционал добавлять):
[URL=http://dev.1c-bitrix.ru/api_help/main/general/admin.section/rubric_edit.php]http://dev.1c-bitrix.ru/api_help/main/general/admin.section/rubric_edit.php[/URL]