Improve Management of Content Items

The idea of this page is to discuss how Seagull might improve its management of content items.

some good ideas here, we're already doing most of this but the description is formalised and excellent http://developerdocumentation.ning.com/post.php?Post:slug=ContentStore Demian Turner /05.10.2005 12:26/

Currently there are a number of content types:

  • articles with types
  • faqs
  • guestbook entries
  • documents (uploaded files)
  • random messages
  • newsletters

They mostly persist content in different tables with the exception of the article manager, which uses a schema design that allows for unlimilted templates of articles to be stored in only 4 tables:

  • item
  • item_addition
  • item_type
  • item_type_mapping

Each article template will be a set number of fields, and each field will be of a specified type. Here are two examples:

Weather Report
============
- image: text field for img location
- minimum temperature: text field for int
- maximum temperature: text field for int
- weather prediction: textarea
Recipe
============
- image: text field for img location
- ingredients: textarea
- instructions: textarea

The logical thing to do here would be to take advantage of the property mapping and dynamic object storage of this schema approach and store all content items in the system this way.

The advantages

  • reduce number of tables needed for a complex project
  • greatly simply sitewide, cross-content searches

The disadvantages

  • slightly more complex queries required
  • less intuitive when interacting with DB

item_addition table would have to be modified to allow for prefixes to keep its size down. But the overall advantage is the following modules could be accessed from a single screen:

create new:

  • article
  • newsletter
  • faq
  • guest book entry
  • random msg
  • url link for favourites
  • image for gallery
  • document (uploaded file)

thereby consolidating faq, publisher, random message, newsletter modules.

Ideas for managing relationship between item types:

  • Checkout phpMyAdmin PMA_Relations table.

Improved CMS flexilibity

I suggest some of the following changes to be made, feel free to add your own.

  • Give each page the possibility to have several items on it, from textitems(as it is now), to a directory of files, shortcuts to the document mgr
  • remove the fcks hardcoded direct urls in images
  • possibly add different rights to different parts of a page.
  • perhaps complement the fckimagestuff with a uploadfield and possibility to place the image in a few areas around the textblock.