В версии 5.1.9 (в бете) модуля
main появилась поддержка возможности добавления пользовательских закладок и действий в формы редактирования в административной части. В версии 5.1.5 модуля
sale формы детальной информации о заказе и редактирования заказа поддерживают эту возможность.
Общая информация по добавлению пользовательских закладок и действий
Для подключения пользовательских закладок и действий необходимо:
1. Зарегистрировать обработчик события через
AddEventHandlerНапример,
| Код |
|---|
AddEventHandler("main", "имя события", "callback метод", 100, "файл, где определен callback метод"); |
где
"имя события" - имя события, на которое нужно вешать обработчик,
"callback метод" - это callback метод, который должен выполнится при возникновении события. Например,
array("имя класса", "OnInit")"файл, где определен callback метод" - скрипт, в котором определен пользовательский класс
Через
AddEventHandler обработчик события регистрируется в рамках одного хита. Поэтому регистрировать можно в файле
/bitrix/php_interface/init.php2. Реализовать класс пользовательских закладок
| Код |
|---|
<?
class <имя класса>
{
function OnInit()
{
return array(
"TABSET" => "уникальное в рамках события имя",
"GetTabs" => array("<имя класса>", "GetTabs"),
"ShowTab" => array("<имя класса>", "ShowTab"),
"Action" => array("<имя класса>", "Action"),
"Check" => array("<имя класса>", "Check"),
);
}
function Action($arArgs)
{
// Основные данные сохранены. Делаем тут действия.
// Возвращаем True в случае успеха и False - в случае ошибки
// В случае ошибки делаем так же $GLOBALS["APPLICATION"]->ThrowException("Ошибка!!!", "ERROR");
}
function Check($arArgs)
{
// Основные данные еще не сохранялись. Делаем тут разные проверки.
// Возвращаем True, если можно все схранять, иначе False
// В случае False делаем так же $GLOBALS["APPLICATION"]->ThrowException("Ошибка!!!", "ERROR");
}
function GetTabs($arArgs)
{
// SORT - после какого стандартного таба вставлять. Не установлено - после последнего
$arTabs = array(
array("DIV" => "edit1", "TAB" => "Кастом11", "ICON" => "sale", "TITLE" => "Кастомная закладка 11", "SORT" => 1),
);
return $arTabs;
}
function ShowTab($divName, $arArgs, $bVarsFromForm)
{
if ($divName == "edit1")
{
?>
<tr>
<td width="40%">Кастомное поле 11:</td>
<td width="60%"><input type="text" name="zzzzzzzzz"></td>
</tr>
<?
}
}
}
?>
|