Apr 21 2009

Написание модуля управления содержимым для CMS

Category: CMS, блогMikola @ 11:32 pm

Господа, нужна ваша помощь. Подобрался я наконец вплотную к созданию модулей для своей CMS. И понял, что не знаю как именно реализовать управление. А именно принцип. Тут вы можете сказать, мол, посмотри у других. Я бы с радостью. Я бы и не делал своей CMS, если бы были нормальные аналоги. Тут три варианта: либо система универсальная, но жутко сложная для понимания и для разработки под нее, либо простая, но малофункциональная, либо сочетает преимущества двух первых, но тормозит…

Так вот, предлагаю к обсуждению свой принцип. Может он где и реализован, но выдумка полностью моя.

  1. Дизайнер делает шаблон сайта, куда прописываются места вставки блоков.
  2. Блок представляет собой оформленную вставку с плагином (корзинка с количеством товара, лента новостей, блок просто форматированного текста, чат и т. д. и т. п.)
  3. В место для вставки блоков (см. п. 1) можно вставить несколько блоков.
  4. Мест для вставки блоков может быть несколько.
  5. Каждый блок редактируется отдельно, своим редактором.
  6. Дерево страниц хранится в виде иерархии директорий, со страницами index.html.
  7. Движок обрабатывает запрос и подставляет из нужной папки страницу index.html, попутно подставляя в нее блоки, список файлов которых находится в конфигурационном файле в данной директории.
  8. Файлы с содержимым блоков могут располагаться как в общей директории для блоков (общие блоки), так и в каждой конкретной директории (локальные блоки). К глобальным блокам можно отнести корзину, ленту новостей, ссылки и любой другой блок, который может быть актуален для нескольких страниц. К локальным можно отнести содержимое данной страницы, ссылки, актуальные только для данной страницы.

Проблеммы, которые мне необходимо решить:

  • Необходимо максимально упростить для реализации и для понимания для будущих пользователей вышеописанную схему.
  • Не очень представляю, как будет реализовано написание шаблонов для такой вещи как блог. Ведь там, кроме всего прочего, нужно будет перед и после каждого поста вставлять хэдер и футер. Как делать шаблоны в таких случаях. Тут нужно учесть, что при создани шаблона для данной страницы дизайнер заранее не будет знать особенности данного плагина. И в принципе, под хэдер и футер в шаблоне можно выделить несколько файликов, которые плагин потом заберет. Но жопой чувствую, что можно сделать что-то проще и прозрачнее. Кроме того, блог не единственный вариант с подобной лажей.

Прощу прощения за мутное изъяснение, если что непонятно, либо трудно понятно — скажите, перепишу.

Может вы где-то что-то гениальное видели, или у самих накопилось претензий к существующим CMS, либо наоборот, восхищаетесь чем-то, или идея какая-то есть, поделитесь, пожалуйста.

Tags: , , ,

14 Responses to “Написание модуля управления содержимым для CMS”

  1. crystalbit says:

    >И в принципе, под хэдер и футер в шаблоне можно выделить несколько файликов, которые плагин потом заберет.
    Я так представляю, что как плагин может забирать заголовок и футер, так и файл шаблона, в зависимости от настроек, может “забирать” файл плагина. Второй вариант мне кажется удобней

    А плагины в ВП хорошо реализованы, когда они все в одной папке, двиг их видит, мы его активируем и где-то обычно появляется страница с его настройками

    После этих умных слов скажу, что я дилетант и никогда цмс не писал, надеюсь я правильно понял о чем речь)

  2. Mikola says:

    2crystalbit: ну почти правильно. Суть такая: движок забирает шаблон от данной страницы, далее в определенное место подставляет вывод из плагина, а тот в свою очередь генерирует несколько подблоков, в которых должен быть хедер и футер. Главная проблемма куда пихать в шаблоне хедер и футер. Следуя религии написания данной ЦМС, при разработке дизайна может использоваться несколько шаблонов (для разных страниц сайта). Соль в том, что блог с его подблоками это только один конкретный пример использования подставляемых из дизайна частей. В других плагинах может потребоваться подставить что угодно еще. Причем пользователь может вставить в страницу кучу дополнительных плагинов, про которые дизайнер и слыхом не слыхивал.
    Грешным делом возникает такая мысль: а не сделать ли такую фичу, как с заголовками в HTML. Существует несколько уровней заголовков, каждый из которох можно офрмить по-своему. Так можно и здесь сделать. Дизайнер рисует несколько уровней подблоков, а плагин, в зависимости от потребности, подставляет нужный уровень.
    А плагины у меня будут активироваться почти так же, как и в WordPress. Разница лишь в том, что в ВП все плагины кидаются в одну папку, а у меня будут разбиты по тематическим папкам, в зависимости от которых они потом выодятся в админке (разбиение по группам аналогично разбиению в cpanel, которую я и взял за почти идеал интерфейса).

  3. Мобильный says:

    Кстати я сейчас свою CMS для сателлитов пишу. Схожа по функционалу с сателлит-х. Но работает на MySQL

  4. Антон says:

    Очень сложно все получается, и не вполне понятно, к чему все это. А вообще-то любой модуль может предсматривать наличие хидера и футера в каждом сообщении. Хотя бы та же лента новостей - каждая новость может иметь хидер и футер, так что это надо предусматривать, мало ли как там дизайнер нарисует - система должна позволять делать все.

  5. Winx says:

    На самом деле идею и структуру файлов можно взять с того же WordPress там уже отслаженная структура и не изобретать велосипед.

  6. spin7ion says:

    Я на своем сайте(http://7ion.ru) рассматриваю создание CMS и прочих модульных сайтов(от теории до практики), заходите.

  7. Îòåëè Ìåêñèêè says:

    Ìåêñèêà – âîïëîùåíèå èäåàëüíîãî òóðèñòè÷åñêîãî íàïðàâëåíèÿ…

    Ìåêñèêà ðàñïîëàãàåò ïî-íàñòîÿùåìó óíèêàëüíûìè âîçìîæíîñòÿìè äëÿ âñåõ âèäîâ òóðèçìà…

  8. Ìåäèöèíñêîå îáîðóäîâàíèå says:

    Ìåäèöèíñêèå èçäåëèÿ…

    Ìåäèöèíñêàÿ òåõíèêà…

  9. Îòäûõ â Èñïàíèè says:

    ×åì òóðèñòîâ ïðèâëåêàåò Èñïàíèÿ…

    5 äîâîäîâ çà îòäûõ â Èñïàíèè…

  10. Îòäûõ â Òóíèñå says:

    Îáùàÿ èíôîðìàöèÿ î Òóíèñå…

    Äîñòîïðèìå÷àòåëüíîñòè Òóíèñà…

  11. Îòäûõ â ×åðíîãîðèè says:

    Îáùàÿ èíôîðìàöèÿ î ×åðíîãîðèè…

    Äîñòîïðèìå÷àòåëüíîñòè ×åðíîãîðèè…

  12. Ìåòàëëîîáðàáàòûâàþùèå ñòàíêè says:

    Êëàññèôèêàöèÿ ñòàíêîâ è îáîðóäîâàíèÿ ïî ìåòàëëó…

    Ìåòàëëîðåæóùèé ñòàíîê…

  13. Îòåëè Òàéëàíäà says:

    Ïóòåøåñòâèå â Òàéëàíä…

    Âåëèêîëåïíûé îòäûõ â Òàéëàíäå…

  14. Ðàäèîãðàôè÷åñêèé êîíòðîëü says:

    Óëüòðàçâóêîâîé íåðàçðóøàþùèé êîíòðîëü…

    Óëüòðàçâóêîâûå ïðèáîðû…

Leave a Reply

*
To prove that you're not a bot, enter this code
Anti-Spam Image