Pull to refresh

Создание модулей для PHPShop.CMS Free — Спотыкашки (чаcть 2)

Reading time3 min
Views3.7K
Продолжаю публикацию полезных советов для web-разработчиков, использующих в качестве конструктора сайтов PHPShop.CMS Free. В этой статье разберем тонкости GUI интерфейсов и поработаем с отладочной панелью.

GUI интерфейсы

Framework PHPShop и тонкие моменты в его использовании.

Назначение первичного загрузчика формы

Часто разработчики для создания интерфейсов административной части создают файлы методом копирования уже существующих и не понимают почему, указав в качестве управления экшенами скопированный кусок кода из файла adm_news_new.php, они не могут вывести простую форму параметров модуля.

// Вывод формы при старте
$PHPShopGUI->setAction($_GET['id'],'actionStart','none');

// Обработка событий 
$PHPShopGUI->getAction();

Фокус в том, что метод $PHPShopGUI->setAction($_GET['id'],'actionStart','none') используется в случаи, если в форму при загрузке передается параметр $_GET['id']. Если в форме нет параметров, то используется метод setLoader() форма записи:

// Вывод формы при старте
$PHPShopGUI->setLoader($_POST['editID'],'actionStart');
 
// Обработка событий 
$PHPShopGUI->getAction();


setLoader() имеет в качестве первого аргумента $_POST['editID'], который служит маркером зависимости, что указанная вторым аргументом функция actionStart будет выполнена при условии, что $_POST['editID'] не определено.

А если $_POST['editID'] будет задано, то будет выполнять функция actionInsert(), которая должна находится в этом же файле. Объявление экшена actionInsert происходит в функции actionStart() включением в форму строки:

$ContentFooter=$PHPShopGUI->setInput("submit","editID","ОК","right",70,"","but","actionInsert");
$PHPShopGUI->setFooter($ContentFooter);

Данная вставка выведет графически кнопку ОК, при нажатии на которую выполнится функция actionInsert().

Отладка

Для отладки используется отладочная панель PHPShopDebug, куда выводится полезная информация.

Отлов данных навигации


image

Что бы понять, какие данные за что отвечают и как их можно использовать существует меню Request в панели отладки. Нажав на нее и раскрыв полный вывод, мы получим полезные данные и имена переменных для использования, пример:

GLOBALS['SysValue']['nav']: Array
(
    [truepath] => /price/
    [path] => price
    [nav] => 
    [name] => 
    [id] => 
    [page] => 
    [querystring] => debug=request
    [query] => Array
        (
            [debug] => request
        )
 
    [longname] => /price/
    [url] => /price/
)

Например, переменная $GLOBALS['SysValue']['nav'][path] содержит адрес раздела price и т.д.

Для включения отладочной панели следует выставить параметр [my] debug=«true»; в конфигурационном файле config.ini

Прячем Notice (отладочные уведомления)

Зачастую локальные сервера и хостинги балуются опцией вывода всех отладочных сообщений для php. Это очень не удобно, а новичков сражает на повал кол-во ошибок, но это не ошибки, а отладочные сообщения для разработчиков. Простому смертному они как козе пятая нога. Можно конечно вообще убрать все ошибки в файле .htaccess, но тогда отладка будет затрудняться.

Для решения этой проблемы есть модуль Error Log, позволяющий управлять ошибками php и назначать свои обработчики для них. Все ошибки пишутся в БД модуля и доступны для анализа. Для записи определенных событий в БД модуля используется запись:

trigger_error("Текст отладки", E_USER_NOTICE);

Error Log входит в комплект поставки PHPShop.CMS Free. Оптимальная настойка для уровня вывода ошибок в модуле — блокировать вывод всех ошибок, при этом все ошибки и отладки будут писаться в вашу БД и не пугать обычных пользователей сайта.

В следующей части разберем создание нового модуля из интерфейса интегрированной среды разработки PHPShop IDE на примере модуля Example.

P.S. Спасибо за внимание, по опыту прошлого урока выяснилось, что многим не понравилась часть 1. Если есть вопросы и недопонимания информации, то просьба выражать их в комментариях. Если нечего спросить, не надо минусовать просто так, займитесь делом, не портите себе «живую карму».
Tags:
Hubs:
Total votes 9: ↑4 and ↓5-1
Comments3

Articles

Information

Website
www.phpshop.ru
Registered
Founded
Employees
2–10 employees
Location
Россия