ресурсы для разработки хорошей системы публикации контента - PullRequest
2 голосов
/ 30 июня 2009

Cms, с которыми я сейчас работаю, поддерживает только редактирование данных в реальном времени (новости, события, блоги, файлы и т. Д.), И меня попросили создать систему, которая поддерживает черчение (с модерацией) + система истории изменений , Используемый мною CMS был разработан в домашних условиях, поэтому мне, вероятно, придется кодировать его с нуля.

При каждом сохранении элемента он создает снимок данных на «временной шкале». То же самое относится и к шашкам. Автоматизированная функциональность будет тянуть черновую шкалу в исходную запись при необходимости.

В таблице временной шкалы будут храниться тип данных и первичный ключ, разделенная версия данных + даты создания / изменения + дата составления (если в будущем)

Я быстро осмотрел другие системы, но мне еще не удалось улучшить мою текущую идею.

Я уверен, что кто-то уже создал такую ​​систему, и я хотел бы улучшить мой дизайн, прежде чем я начну собирать. Любые хорошие статьи / ресурсы также помогут.

Спасибо

Ответы [ 4 ]

1 голос
/ 30 июня 2009

Для меня это звучит как вики. Возможно, вы захотите взглянуть на MediaWiki , систему, используемую в Википедии, которая также использует PHP и MySQL.

1 голос
/ 30 июня 2009

Я думаю, что использование serialize () для кодирования каждой строки в одну строку, а затем сохранение ее в центральной базе данных может быть решением.

У вас будет «живая» база данных с соответствующими таблицами и т. Д., Но когда вы редактируете или создаете что-то (без нажатия кнопки «Опубликовать»), оно вместо сохранения в основной таблице попадает в таблицу типа:

id - PRI INT
date - DATETIME
table - VARCHAR
table_id - INT
type - ENUM('UNPUBLISHED','ARCHIVED','DELETED');
data - TEXT/BLOB

... с типом, установленным в 'неопубликованный', и таблицей и table_id, сохраненными, чтобы он знал, откуда он. Нажатие на публикацию будет затем сериализовать содержимое текущей таблицы, сохранить его в таблице выше с установленным значением «архив», затем прочитать последние изменения (помеченные как неопубликованные) и поместить их в базу данных. То же самое может также относиться к удалению строк - поместите их и пометьте как «удаленные» для потенциальной функциональности восстановления / отката.

Для того, чтобы все это заработало, потребуется немало усилий, но должны быть предусмотрены все возможности публикации / отмены публикации и отката. Правильно интегрированные в пользовательские функции базы данных, также возможно сделать все это прозрачно (с точки зрения SQL).

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

0 голосов
/ 16 марта 2012

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

Подумайте о том, чтобы взглянуть на Drupal, я думаю, что до сих пор ведущий CMS для публикации Drupal в сочетании с модулем workflow содержит все, что вам нужно:
http://drupal.org
http://drupal.org/project/workflow

И добавьте сохранение черновика для удобства использования:
http://drupal.org/project/save_draft

0 голосов
/ 30 июня 2009

DotNetNuke - это хорошая CMS с открытым исходным кодом, вы можете прочитать статью о том, как эта система получает идеи. Или вы можете просто использовать DotNetNuke.

http://www.dotnetnuke.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...