Прямое обращение к файлам модуля
Для работы вне структуры сайта описывается файл modules/модуль/модуль.функция.php. Этот файл можно вызвать напрямую так: http://site.ru/модуль/функция/.
Прямое обращение к модулю может понадобиться по следующим причинам:
- Страница модуля должна существовать независимо от того, создана ли соответствующая страница в структуре сайта. Тем самым нужно обезопасить функциональность от случайного удаления страницы.
- Страница модуля имеет служебный характер и не должна отображаться на карте сайта, в файле sitemap.xml, в меню и пр.
- При работе с частью модуля нужно избавиться от лишних запросов на определение страницы.
В файле modules/модуль/модуль.функция.php доступен основной класс системы $this->diafan
. Через эту переменную можно получить доступ к классам пользователей, кэширования, маршрутизатора и подключения шаблонов, а также к подключениям модулей.
Кроме того, перед подключением файлов происходит старт сессии, определяется запрошенная языковая версия сайта, временная зона сайта и пользователь. Все эти данные можно использовать в файле модуля.
Если запрошен адрес http://site.ru/модуль/функция/какие-то_данные/, то
данные, переданные в URL, будут доступны в модуле в виде: $_GET["rewrite"] = 'какие-то_данные';
Примеры реализации прямого обращения к модулю в DIAFAN.CMS:
- modules/captcha/captcha.get.php – http://site.ru/captcha/get/ – генерирует изображение защитного кода;
- modules/news/news.rss.php – http://site.ru/news/rss/ – генерирует RSS-ленту новостей;
- modules/payment/payment.get.php – http://site.ru/payment/get/ – работа с платежными системами;
- modules/useradmin/useradmin.edit.php – http://site.ru/useradmin/edit/ – форма редактирования данных из пользовательской части;
- modules/attachments/attachments.get.php – http://site.ru/attachments/get/ – отдает прикрепленный файл.
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.