Рецепт Систем Управления Контентом

Xeon303

Новичок
Рецепт Систем Управления Контентом

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

Начну со структуры хранения данных. Я собираюсь реализовать эту систему в виде разделов, подразделов, файлов (записей в БД), т.е. получится что-то вроде файловой системы, только файлы — это записи в базе данных. Для каждой записи существует свой путь — то в каком разделе или подразделе находится эта запись. Все записи (файлы) могут располагаться на неограниченном уровне, т.е. система будет иметь неограниченную вложенность. Например, запись «Заметка Ленина» может располагаться по адресу /articles/history/Lenin. Еще раз скажу, чтобы избежать недоразумений, что это все «файлы» будет храниться в БД, а не на диске сервера. Продолжу. Например, в БД есть таблица data в которой содержатся записи соответствующие «файлам». Например, запись:

| id | path | type | title |
| 1 | /articles/history/Lenin | article | Заметка Ленина |

В свою очередь эта запись — ссылка на сами данные. По типу articles система определяет, где хранятся сами данные, по id определяет запись в таблице.

Таблица type_article

| id | article_text |
| 1 | Ленин всегда мечтал... |

Таким образом после того, как пользователь заходит на сайт, то ему представляется вся эта структура «файлов». Где есть папки — разделы, файлы — записи в БД. Каждая запись может иметь разный тип. Например, в разделе «О сайте» могут быть «файлы» типа статья, обзор, новость... Для каждого из типов существует свой обработчик. После передачи ему данных его типа он должен возвратить обработанные данные в виде HTML-кода, которые пользователь увидит.

Система модулей.

Существует определенные модули, которые содержатся в папке modules. Эти модули имеют определенный стандарт. Например пользователь переходит на страницу showpage.php?module=search. Система запускает модуль, который выполняет все необходимые действия и возвращает результат в виде HTML-кода, который будет отображен пользователю.

Хотелось бы, чтобы вы написали свое представление об организации этих двух систем (модули и система хранения данных), ваши предложения, идеи, мнение и т.д. Так же можете писать и про другие составляющие CMS, про которые народу будет интересно узнать что-то новое, мнения остальных, идеи...
 

Нечто

Психолог РНРClub
1) Куда дел ссылку на родителя в data? Оно может пригодиться. А вообще я такие вещи делаю на nested sets.
2) "showpage.php?module=search" - зачем? Делаем системную страницу search (в data), коей присваиваем type "search". Можно еще делать так, чтобы search искал только в той "директории", в которой он лежит. Например, /articles/search будет искать только в разделе статьи и т.п.

модуль, который выполняет все необходимые действия и возвращает результат в виде HTML-кода
Никакого html-кода модуль возвращать не должен - только данные. Хочешь еще один *nuke замутить?!

По остальному - здесь и на xpoint.ru куча информации.
 

Xeon303

Новичок
Насчет module=search -- это я к примеру. Допустим в БД есть таблица modules, где хранится вся инфа по модулям, которые были установлены. Мне интересно, как это все организовать, т.е. запуск модулей, что они будут возвращать и что с эти делать.
 

_RVK_

Новичок
Xeon303
Вообще-то, в том топике, на который ты сослался с самого начала термин "модуль" употреблялся в том смясле что это логически обособленная часть программы. Те. не физически а именно логически.
В моем случае, подключением модуля является указание ссылки на скрипт в БД. Физически файлы могут находится где угодно на диске. Те физически модуль никак не локализован. Я там даже приводил, кажется, скриншоты "Конфигуратора" и CMS. Так же в том топике подробно обсуждалась проблемма свяхи модулей между собой.
 
Сверху