Как устроен модуль

Модули в diafan.CMS основаны на MVC паттерне. Это означает, что в одной части модуля данные готовятся и обрабатываются, в другой части эти данные оформляются и выводятся на сайт. Управляется все это контроллером. Сделано это для того, чтобы можно было как угодно править оформление модуля, не переживая за алгоритм обработки данных и наоборот. То есть, каждый разработчик может переоформить внешний вид модуля новостей не затрагивая алгоритм. Модуль должен обязательно иметь 3 файла:

  • контроллер – файл modules/имя_модуля/имя_модуля.php класс Имя_модуля;

  • модуль – файл modules/имя_модуля/имя_модуля.model.php класс Имя_модуля_model;

  • шаблон файл modules/имя_модуля/имя_модуля.view.php класс Имя_модуля_view.

Например, модуль "Новости" состоит из файла modules/news/news.php - это контроллер модуля. Там описаны все переменные, используемые модулем, описаны все функции, которые выполняются в модели и т.д. modules/news/news.model.php - модель модуля, в которой работают функции модуля. В модели запрашиваются данные из БД, идет их обработка и готовится переменная-массив $result для передачи информации в шаблон модуля. И файл modules/news/news.view.php - шаблон модуля. В шаблоне принимается переменная $result из модели модуля и все данные из нее оформляются и выводятся на сайт.
То есть, если необходимо внести изменения в алгоритм работы любого модуля, необходимо копать в файл модель modules/имя_модуля/имя_модуля.model.php. А если необходимо поправить отображение элементов модуля на сайте, то это в файл шаблон modules/имя_модуля/имя_модуля.view.php.

Если в модуле обрабатываются данных из формы, отправленные с помощью Ajax, то добавляется файл:

  • обработка – файл modules/имя_модуля/имя_модуля.ajax.php класс Имя_модуля_ajax.

Если модуль имеет часть «Подключение», то есть используется в других модулях, то добавляется еще один файл:

  • подключение – файл modules/имя_модуля/имя_модуля.inc.php класс Имя_модуля_inc.

Если модуль устанавливается опционально, то должен существовать файл инсталляции:

Если страница модуля должна существовать независимо от структуры сайта, то можно обратится к файлу модуля напрямую. Для этого файл должен иметь название modules/модуль/модуль.функция.php. Обратится к нему можно так: http://site.ru​/модуль/функция/.

Модуль может взаимодействовать с другими модулями. Для этого нужно подготовить файлы в формате, предусмотренном сторонними модулями.



Не понятно? Уточните