Bitrix

1C-Битрикс — Использование гаджетов для административного интерфейса

В одной из старых статей для журнала Веб-Аналитик.ИНФО я расписал очень простой рецепт создания гаджета. Конечно же, гаджет выполнял крайне полезную функцию — показывал текущую дату с помощью стандартной функции php date, но все же на этом примере легко разобраться как же программировать гаджеты.
С тех пор прошло достаточно много времени и Битрикс сделал новую фичу (вообще это произошло достаточно давно) — настраиваемые рабочие столы панели управления. И, что крайне удобно, в них можно использовать те же гаджеты, которые мы возможно запрограммировали для рабочих столов для пользователей. Но, что еще более важно и вдохновляюще — мы можем программировать теперь какие-то новые административные функции с помощью гаджетов.
А это значит, что не требуется писать код подключаемого модуля, не требуется писать административные страницы, которые достаточно сложны, не требуется писать инсталляцию скриптов модуля, скриптов доступа к административным скриптам и прочее, прочее.

Думаю, я убедил, что гаджет может в каких-то случаях помочь в обеспечении каких-то административных функций.

Что же можно сделать при помощи гаджета в панели управления?

Попробую взять какой-то несложный пример, такой чтобы я смог его запрограммировать достаточно красиво, чтобы читатель блога не запутался в моем коде.

Вот такой пример возьмем: нам требуется для сайта создать некий конфиг и для заказчика должна быть возможность оперативно править его.

Для начала вспомним структуру файлов гаджета:

Файл Описание
.description.php Файл описания гаджета. В нем задается название гаджета, его описание и место в структуре гаджетов.
.parameters.php Файл с параметрами гаджета. Параметры разделены на те, которые может настраивать пользователь и те, которые может настраивать только администратор.
Index.php Исполняемый код гаджета.
lang/ Папка, служащая для локализации гаджета.

Соответственно для нашего нового гаджета возьмем такую структуру:
/bitrix/gadgets/dv/
/bitrix/gadgets/dv/editconfig/
/bitrix/gadgets/dv/editconfig/.description.php
/bitrix/gadgets/dv/editconfig/.parameters.php
/bitrix/gadgets/dv/editconfig/index.php

файл .description.php содержит описание гаджета:

< ? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $arDescription = Array(
"NAME"=>“Редактирование конфига сайта”,
“DESCRIPTION”=>”Гаджет предназначен для редактирования главного конфига сайта”,
“ICON”=>”",
“GROUP”=> Array(“ID”=>”personal”),
“NOPARAMS”=>”Y”,
“SU”=> true,
“SG”=> true
); ?>

файл .parameters.php содержит параметры гаджета — у нас он содержит одну строку:

< ?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

файл index.php — исполняемый код гаджета:

< ? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); ?>
<?
// $config_file  = путь_к_файлу_конфига;
if ($_POST)
{
file_put_contents($config_file, $_POST["text"]);
}

$config = file_get_contents($config_file);
?>
<form method="post">
<textarea name="text"><?=$config?></textarea><br>
<input type="submit" name="save" value="Сохранить">
</form>

Взят очень умозрительный пример с кучей вещей, которые следует дорабатывать. Но как пример использования гаджета в панели управления он вполне может подойти. В переменной $config_file следует разместить путь до файла конфига от корня операционки и после этого разместить гаджет стандартным способом на рабочем столе в панели управления.

 

Отставить комментарий

Ваш электронный адрес не будет опубликован.Обязательные для заполнения поля отмечены *

четыре × 5 =