Apr 21 2009
Написание модуля управления содержимым для CMS
Господа, нужна ваша помощь. Подобрался я наконец вплотную к созданию модулей для своей CMS. И понял, что не знаю как именно реализовать управление. А именно принцип. Тут вы можете сказать, мол, посмотри у других. Я бы с радостью. Я бы и не делал своей CMS, если бы были нормальные аналоги. Тут три варианта: либо система универсальная, но жутко сложная для понимания и для разработки под нее, либо простая, но малофункциональная, либо сочетает преимущества двух первых, но тормозит…
Так вот, предлагаю к обсуждению свой принцип. Может он где и реализован, но выдумка полностью моя.
- Дизайнер делает шаблон сайта, куда прописываются места вставки блоков.
- Блок представляет собой оформленную вставку с плагином (корзинка с количеством товара, лента новостей, блок просто форматированного текста, чат и т. д. и т. п.)
- В место для вставки блоков (см. п. 1) можно вставить несколько блоков.
- Мест для вставки блоков может быть несколько.
- Каждый блок редактируется отдельно, своим редактором.
- Дерево страниц хранится в виде иерархии директорий, со страницами index.html.
- Движок обрабатывает запрос и подставляет из нужной папки страницу index.html, попутно подставляя в нее блоки, список файлов которых находится в конфигурационном файле в данной директории.
- Файлы с содержимым блоков могут располагаться как в общей директории для блоков (общие блоки), так и в каждой конкретной директории (локальные блоки). К глобальным блокам можно отнести корзину, ленту новостей, ссылки и любой другой блок, который может быть актуален для нескольких страниц. К локальным можно отнести содержимое данной страницы, ссылки, актуальные только для данной страницы.
Проблеммы, которые мне необходимо решить:
- Необходимо максимально упростить для реализации и для понимания для будущих пользователей вышеописанную схему.
- Не очень представляю, как будет реализовано написание шаблонов для такой вещи как блог. Ведь там, кроме всего прочего, нужно будет перед и после каждого поста вставлять хэдер и футер. Как делать шаблоны в таких случаях. Тут нужно учесть, что при создани шаблона для данной страницы дизайнер заранее не будет знать особенности данного плагина. И в принципе, под хэдер и футер в шаблоне можно выделить несколько файликов, которые плагин потом заберет. Но жопой чувствую, что можно сделать что-то проще и прозрачнее. Кроме того, блог не единственный вариант с подобной лажей.
Прощу прощения за мутное изъяснение, если что непонятно, либо трудно понятно — скажите, перепишу.
Может вы где-то что-то гениальное видели, или у самих накопилось претензий к существующим CMS, либо наоборот, восхищаетесь чем-то, или идея какая-то есть, поделитесь, пожалуйста.

April 22nd, 2009 at 8:28 am
>И в принципе, под хэдер и футер в шаблоне можно выделить несколько файликов, которые плагин потом заберет.
Я так представляю, что как плагин может забирать заголовок и футер, так и файл шаблона, в зависимости от настроек, может “забирать” файл плагина. Второй вариант мне кажется удобней
А плагины в ВП хорошо реализованы, когда они все в одной папке, двиг их видит, мы его активируем и где-то обычно появляется страница с его настройками
После этих умных слов скажу, что я дилетант и никогда цмс не писал, надеюсь я правильно понял о чем речь)
April 22nd, 2009 at 6:06 pm
2crystalbit: ну почти правильно. Суть такая: движок забирает шаблон от данной страницы, далее в определенное место подставляет вывод из плагина, а тот в свою очередь генерирует несколько подблоков, в которых должен быть хедер и футер. Главная проблемма куда пихать в шаблоне хедер и футер. Следуя религии написания данной ЦМС, при разработке дизайна может использоваться несколько шаблонов (для разных страниц сайта). Соль в том, что блог с его подблоками это только один конкретный пример использования подставляемых из дизайна частей. В других плагинах может потребоваться подставить что угодно еще. Причем пользователь может вставить в страницу кучу дополнительных плагинов, про которые дизайнер и слыхом не слыхивал.
Грешным делом возникает такая мысль: а не сделать ли такую фичу, как с заголовками в HTML. Существует несколько уровней заголовков, каждый из которох можно офрмить по-своему. Так можно и здесь сделать. Дизайнер рисует несколько уровней подблоков, а плагин, в зависимости от потребности, подставляет нужный уровень.
А плагины у меня будут активироваться почти так же, как и в WordPress. Разница лишь в том, что в ВП все плагины кидаются в одну папку, а у меня будут разбиты по тематическим папкам, в зависимости от которых они потом выодятся в админке (разбиение по группам аналогично разбиению в cpanel, которую я и взял за почти идеал интерфейса).
May 14th, 2009 at 7:26 pm
Кстати я сейчас свою CMS для сателлитов пишу. Схожа по функционалу с сателлит-х. Но работает на MySQL
May 17th, 2009 at 1:18 pm
Очень сложно все получается, и не вполне понятно, к чему все это. А вообще-то любой модуль может предсматривать наличие хидера и футера в каждом сообщении. Хотя бы та же лента новостей - каждая новость может иметь хидер и футер, так что это надо предусматривать, мало ли как там дизайнер нарисует - система должна позволять делать все.
June 8th, 2009 at 3:44 pm
На самом деле идею и структуру файлов можно взять с того же WordPress там уже отслаженная структура и не изобретать велосипед.
February 2nd, 2010 at 3:58 pm
Я на своем сайте(http://7ion.ru) рассматриваю создание CMS и прочих модульных сайтов(от теории до практики), заходите.
February 26th, 2010 at 4:30 pm
Ìåêñèêà âîïëîùåíèå èäåàëüíîãî òóðèñòè÷åñêîãî íàïðàâëåíèÿ…
Ìåêñèêà ðàñïîëàãàåò ïî-íàñòîÿùåìó óíèêàëüíûìè âîçìîæíîñòÿìè äëÿ âñåõ âèäîâ òóðèçìà…
February 27th, 2010 at 6:49 pm
Ìåäèöèíñêèå èçäåëèÿ…
Ìåäèöèíñêàÿ òåõíèêà…
February 28th, 2010 at 12:48 pm
×åì òóðèñòîâ ïðèâëåêàåò Èñïàíèÿ…
5 äîâîäîâ çà îòäûõ â Èñïàíèè…
March 2nd, 2010 at 7:35 pm
Îáùàÿ èíôîðìàöèÿ î Òóíèñå…
Äîñòîïðèìå÷àòåëüíîñòè Òóíèñà…
March 3rd, 2010 at 12:39 pm
Îáùàÿ èíôîðìàöèÿ î ×åðíîãîðèè…
Äîñòîïðèìå÷àòåëüíîñòè ×åðíîãîðèè…
March 4th, 2010 at 4:56 pm
Êëàññèôèêàöèÿ ñòàíêîâ è îáîðóäîâàíèÿ ïî ìåòàëëó…
Ìåòàëëîðåæóùèé ñòàíîê…
March 5th, 2010 at 6:53 pm
Ïóòåøåñòâèå â Òàéëàíä…
Âåëèêîëåïíûé îòäûõ â Òàéëàíäå…
March 7th, 2010 at 10:26 am
Óëüòðàçâóêîâîé íåðàçðóøàþùèé êîíòðîëü…
Óëüòðàçâóêîâûå ïðèáîðû…