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, про которые народу будет интересно узнать что-то новое, мнения остальных, идеи...
Недавно читал на этом форуме один топик "Концепции современной 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, про которые народу будет интересно узнать что-то новое, мнения остальных, идеи...