Административный интерфейс модуля
Материал из PHPShop CMS
Содержание |
Введение
Административный интерфейс модуля используется для настроек параметров модуля. Для создания интерфейса используется фреймворк PHPShopGUI. Разберем на примере обучающего модуля Example.
Загрузка библиотек
- Определение пути файла относительно библиотеки папки phpshop
$_classPath="../../../"; include($_classPath."class/obj.class.php");
- Загрузка библиотек, которые используются в модуле
- base - библиотека подключения к БД
- system - библиотека системных настроек
- orm - библиотека работы с БД (запросы и выборки)
- modules - библиотека работы с модулями
- admgui - библиотека графического интерфейса
PHPShopObj::loadClass("base"); PHPShopObj::loadClass("system"); PHPShopObj::loadClass("orm"); PHPShopObj::loadClass("modules"); PHPShopObj::loadClass("admgui");
- Подключение к БД и проверка авторизации. Вызываем класс PHPShopBase с параметром пути файла конфигурации config.ini
$PHPShopBase = new PHPShopBase($_classPath."inc/config.ini"); include($_classPath."admpanel/enter_to_admin.php");
- Настройки модуля. Вызываем класс поддержки модулей PHPShopModules с параметром ло папки с модулями.
$PHPShopModules = new PHPShopModules($_classPath."modules/");
- Редактор. Вызываем класс административных интерфейсов PHPShopGUI
$PHPShopGUI = new PHPShopGUI();
- Работы с БД. Вызываем класс PHPShopOrm с параметром имени таблицы настроек модуля
$PHPShopOrm = new PHPShopOrm($PHPShopModules->getParam("base.example.example_system"));
Функциия начальной загрузки
Функция actionStart() является функцией вывода данных при загрузке файла. Для управления парметром вывода служит метод setLoader
$PHPShopGUI->setLoader($_POST['editID'],'actionStart');
Лоадер при отсутствии переменной $_POST['editID'] загружает функцию actionStart().
- Настройка параметров оформления
- dir - путь до папки admpanel (используется для иконок и изображений)
- title - заголовок окна
- size - [размер окна ширина, высота]
- setHeader - прорисовка хедерс параметрами имени и изображения блока.
$PHPShopGUI->dir=$_classPath."admpanel/"; $PHPShopGUI->title="Настройка модуля"; $PHPShopGUI->size="500,450"; $PHPShopGUI->setHeader("Настройка модуля 'Example'","Настройки",$PHPShopGUI->dir."img/i_display_settings_med[1].gif");
Более подробно об PHPShopGUI можно узнать из инструкции по фреймоврку интерфейсов
- Выборка из БД данных
$data = $PHPShopOrm->select(); @extract($data);
Более подробно об PHPShopOrm можно узнать из инструкции по SQL запросам
- Содержание закладки 1
- setTextarea - элемент Textarea
- setButton - элемент Button
$Tab1=$PHPShopGUI->setTextarea('example_new',$example,false,'100%',150); $Tab1.=$PHPShopGUI->setButton('Документация PhpDoc','../install/icon.png',200,30,$float = "left","window.open('http://doc.phpshopcms.ru')"); $Tab1.=$PHPShopGUI->setButton('Документация Wiki','../install/icon.png',200,30,$float = "left","window.open('http://wiki.phpshopcms.ru')");
- Содержание закладки 2. setPay - информация по модулю,вывод регистрационной информации
$Tab2=$PHPShopGUI->setPay($serial,false);
- Прорисовка закладок
$PHPShopGUI->setTab(array("Основное",$Tab1,270),array("О Модуле",$Tab2,270));
- Содержания футера - кнопок управления ОК и Отмена
Для кнопки ОК задается параметр actionUpdate, позволяющий вызывать функцию обновления данных actionUpdate при нажатии на этот эелемент.
$ContentFooter=$PHPShopGUI->setInput("hidden","newsID",$id,"right",70,"","but"). $PHPShopGUI->setInput("button","","Отмена","right",70,"return onCancel();","but"). $PHPShopGUI->setInput("submit","editID","ОК","right",70,"","but","actionUpdate");
- Прорисовка футера
$PHPShopGUI->setFooter($ContentFooter);
Функция обновления данных
Функция actionUpdate() задается в пририсовке элемента кнопки ОК $PHPShopGUI->setInput("submit","editID","ОК","right",70,"","but","actionUpdate");
function actionUpdate() { global $PHPShopOrm; $action = $PHPShopOrm->update($_POST); return $action; }
$PHPShopOrm->update($_POST) принимает параметр в виде POST массива измененных данных.
Метод PHPShopOrm->update автоматически сверит названия полей в таблице и обновит по найденным ключам.
Имя полей в функции actionStart по умочанию должны содержать префикс _new. В нашем примере это $Tab1=$PHPShopGUI->setTextarea('example_new',$example,false,'100%',150);
Вместо POST массива можно задать массив в ручном режиме:
$action = $PHPShopOrm->update(array('name_new'=>'Новое имя'));
Проверка административных прав
Для поверки статуса администратора служит конструкция
if($UserChek->statusPHPSHOP < 2) { // Вывод формы при старте $PHPShopGUI->setLoader($_POST['editID'],'actionStart'); // Обработка событий $PHPShopGUI->getAction(); }else $UserChek->BadUserFormaWindow();
- setLoader - загрузка начальной функции
- getAction - включение обработчика событий