Административный интерфейс модуля

Материал из 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");
Lifebelt.png Более подробно об PHPShopGUI можно узнать из инструкции по фреймоврку интерфейсов
  • Выборка из БД данных
$data = $PHPShopOrm->select();
@extract($data);
Lifebelt.png Более подробно об 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 автоматически сверит названия полей в таблице и обновит по найденным ключам.

Lifebelt.png Имя полей в функции 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 - включение обработчика событий