Плагин «Модули»

Понедельник, 3 августа 2009 г.
Рубрика: MaxSite CMS -> Плагины -> Ход работ
Просмотров: 9866
Подписаться на комментарии по RSS

Хоть MaxSite CMS и предлагает разработчику полную свободу в организации шаблона и вывода (произвольных) данных, в основном вывод осуществляется в блоговом формате. За основу берутся type-файлы шаблона default.

Это упрощает создание шаблонов, где все сводится к дизайну и не требуется сложное программирование. То есть у нас предполагается, что все программирование выполняется через файлы type.

Однако существует еще один способ создания шаблонов, который часто используется в крупных проектах.

В этом случае в шаблоне отмечают необходимые места/блоки вывода, а уже в админке определяют что именно должно выводиться в каждом блоке. Именно для такого вывода и предназначен плагин «Модули» (появился в MaxSite CMS 0.338).

Предположим мы хотим организовать вывод модулей (так будем называть) на главной странице. Для этого в шаблонном index.php подключаем отдельный файл home-module.php (имя произвольно).

...
if ( is_type('home') ) require('type/home-module.php'); 
...

В файле type/home-module.php сделаем вывод одного модуля (дизайн, естествено, вы определите сами):

# начальная часть шаблона
require(getinfo('template_dir') . 'main-start.php');
# Модуль
if (function_exists('modules_out')) modules_out(1);
# конечная часть шаблона
require(getinfo('template_dir') . 'main-end.php');

То есть все свелось к modules_out(1). Параметр - это номер/id модуля.

Сами модули теперь необходимо определить. Делается это в шаблоне в файле modules.php.

modules_set(1, 'Первый модуль');

На этом всё. Теперь на главной странице будет выведен модуль, содержимое которого мы определим уже в админ-панели.

Наверное вы догадались, что модули в чем-то напоминают ушки. Однако есть небольшое отличие: модуль может быть отдельным файлом, а не только php-кодом.

В настройках модуля (в админ-панели) теперь есть поле для выбора файла. Этот файл будет подключен при выводе модуля. Таким образом мы можем выводить в модуле произвольные файлы. Естественно, что файл модуля может быть запрограммирован под разные задачи. Можно, например, вывести type-файл, или прописать функцию плагина или виджета.

Кроме этого любой файл модуля может иметь собственные настройки. Для этого нужно создать файл с тем же именем в подкаталоге options. Для управления опциями следует использовать недавно появившуюся функцию mso_admin_plugin_options(), где все сводится к «описательному» массиву.

Для проверки и тестирования плагина я сделал модуль test.php. А более подробно всё описание собрал в файле readme.txt.

Данный плагин скорее всего будет предназначен для опытных разработчиков, которые смогут программировать файлы модулей и делать сложные шаблоны/сайты. Данной возможностью я бы хотел продемонстрировать, что MaxSite CMS в состоянии выводить данные не только «по-блогерски», но и помодульно, что характерно для «больших» CMS.

twitter.com facebook.com mail.ru friendfeed.com livejournal.ru memori.ru google.com yandex.ru

Комментариев: 3

  1. Спасибо за ваш труд и продвижение очень нужного продукта, но снова: "...Данный плагин скорее всего будет предназначен для опытных разработчиков, которые смогут программировать файлы модулей и делать сложные шаблоны/сайты. Данной возможностью я бы хотел продемонстрировать, что MaxSite CMS в состоянии выводить данные не только «по-блогерски», но и помодульно, что характерно для «больших» CMS" ...

    В "больший" CMS подобный функционал строится совсем по другому. "Модуль" создается, активируется, "заполняется" и размещается в нужном месте из "админки". Ведь "MaxSite" позиционируется именно как "CMS", а не как просто "движок". А основные пользователи "Content Maneger System" не программисты, а "контент-менеджеры", люди совершенно далекие от программирования. У них другая задача - наполнить созданный вами "конструктор из коробки" качественной информацией - КОНТЕНТОМ.

    Думаю, что "MaxSite" уже давно переросла статус "движка" для программистов и самое время подумать о пользователях - создателях контента.

  2. Доброе время суток!

    Планируется ли добавление многосайтовости (вроде WPMU)?

  3. Блин, не на той странице написал. Пардоньте.red face

Оставьте свой комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Комментарий будет опубликован после проверки

(войти без комментирования)

Имя и сайт используются только при регистрации

Авторизация: Loginza.

(обязательно)