Обработчики это методы, а классы, в которые они входят, называются контролерами. Эти файлы находятся в корневой папке модуля, их название начинаться с двух нижних подчеркиваний. Имя класса контроллера должно совпадать с названием файла.
Ниже приведен пример, реализующий выполнение всех основных действий над объектом:
- Вывод списка объектов;
- Форма добавления / редактирования объекта;
- Обработчики добавления / редактирования объекта;
- Удаление объекта.
class __obj { // Список объектов (действие по умолчанию) // /mpanel/mymodul или /mpanel/mymodul/obj public function defAction() { return 'Форма добавления'; } // форма добавления объекта /mpanel/mymodul/obj_add public function add() { return 'Форма добавления'; } // обработчик добавления объекта /mpanel/mymodul/obj_proc_add public function proc_add() { } // форма редактирования объекта /mpanel/mymodul/obj_upd public function upd() { return 'Форма редактирования'; } // обработчик изменения объекта /mpanel/mymodul/obj_proc_upd public function proc_upd() { } // удаление объекта /mpanel/mymodul/obj_proc_del public function del() { } }
Данный контролер реализует обработку следующих урлов:
- /mpanel/mymodul
- /mpanel/mymodul/obj
- /mpanel/mymodul/obj_add
- /mpanel/mymodul/obj_proc_add
- /mpanel/mymodul/obj_upd
- /mpanel/mymodul/obj_proc_upd
- /mpanel/mymodul/obj_proc_del
Как видно, из названия класса и названия любого метода, получается название соответствующего обработчика. В зависимости от текущего урла, система выполнит нужный метод.
Те же правила другими словами:
- При обращении к любому урлу имеющему третий параметр, система пытается разбить этот параметр на две части (до и после первого знака «_» или «-»). Первая часть – это название контролера, в данном случае «obj». Вторая часть – это название метода. Например, для урла obj_proc_upd вызывется метод proc_upd контролера «obj».
- Если система не может определить название нужного метода (/mpanel/mymodul или /mpanel/mymodul/obj), то по умолчанию вызывается метод defAction().
В итоге получаем наглядную модель. В папке файлы обработчиков группируются по назначению. Если мы хотим работать со страницами, мы открываем файл «__page.php», если с пользователями «__user.php». В файле находим нужный нам обработчик. Названия обработчиков информации хорошо отличимы от обработчиков вывода, так как имеют префикс «proc_».
Так же, если для модуля планируется использовать самописные элементы интерфейса, создайте в папке модуля папку «template». В ней будут находиться файлы шаблонов оформления с расширением «.tpl».
Что-то не так? Напиши, учтем!