Хоть 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.
Комментариев: 8 RSS
1zanuda20-08-2009 10:48
Спасибо за ваш труд и продвижение очень нужного продукта, но снова: "...Данный плагин скорее всего будет предназначен для опытных разработчиков, которые смогут программировать файлы модулей и делать сложные шаблоны/сайты. Данной возможностью я бы хотел продемонстрировать, что MaxSite CMS в состоянии выводить данные не только «по-блогерски», но и помодульно, что характерно для «больших» CMS" ...
В "больший" CMS подобный функционал строится совсем по другому. "Модуль" создается, активируется, "заполняется" и размещается в нужном месте из "админки". Ведь "MaxSite" позиционируется именно как "CMS", а не как просто "движок". А основные пользователи "Content Maneger System" не программисты, а "контент-менеджеры", люди совершенно далекие от программирования. У них другая задача - наполнить созданный вами "конструктор из коробки" качественной информацией - КОНТЕНТОМ.
Думаю, что "MaxSite" уже давно переросла статус "движка" для программистов и самое время подумать о пользователях - создателях контента.
2SkyDСайт24-01-2010 11:17
Доброе время суток!
Планируется ли добавление многосайтовости (вроде WPMU)?
3SkyDСайт24-01-2010 11:19
Блин, не на той странице написал. Пардоньте.:red:
4Денис28-08-2012 09:46
а где этот плагин есть? что-то я не нашел в 0.74 и в каталоге плагинов такого нет
5Максим28-08-2012 11:32
Он исключени из поставки, как лишенный смысла. Сейчас все эти возможности, только в большем объеме реализуются через компоненты.
6Денис Назаров30-06-2013 19:02
Поставил версию 0.84. Скопировал туда свой плагин, теперь
не работает, поскольку это файл в shared/main. Как лечить?7Максим01-07-2013 08:05
Теперь нужно так:
и
8Денис Назаров01-07-2013 08:13
то есть ищется сначала файл шаблона, а затем, если его нет - берется из shared?