How Build A CMS (content management system)

♠ Posted by Unknown in at 22:22

Why build a CMS?

Free CMS hundreds available, so why build another?
This project is different because we want both build a tool and explain how the tool can be built. We believe that Web applications will start to replace those that operate locally and also replace conventional websites consist of pages written in HTML editor. Now websites tend to be more elaborate and are made with advanced technology that we will need to know how these tools work.
The replacement of desktop software by web applications does not mean that we will work online in the future, but we will use applications that are built for the web: it can run locally too.
Another reason to know how to build a CMS is that the tools currently available are designed only to publish documents, if we want to achieve special treatment on the data before publishing them, we need our own software.

The final CMS interests

Once completed, this CMS will allow any user to add content to the site without any knowledge of the technologies used to make it work. Contributors may write articles with a wysiwyg editor (not in infamous bbCode) and the webmaster can manage articles, comments, news, etc .. without having either more knowledge.

Prerequisite

The tool requires the programmer:
- Accommodation supports PHP to test the demos,
- An HTML editor,
- The Scriptol compiler to generate the larger pieces of PHP code,
- And optionally LGPL libraries to extend the CMS (with a forum for example).
The webmaster of the site will need him only a PHP and MySQL hosting to install the final CMS.


How to build the CMS: design

We started a project that is both a tutorial and a truly functional tools. We will add tool after tool and each come with a tutorial explaining how it is made, how it works and how to extend its capabilities.
The final CMS will consist of a set of modules that assume these features:
- Publishing articles is done with a wysiwyg externally.
- Exchanges with the server will be in Ajax (no surprise!).
- We use CSS for the presentation and the templates of the CMS.
- The texts are processed to complete the template and then saved directly in HTML files, and not in A database.
- The management information is stored in XML or JSON.
- The user information should be stored in encoded XML, or in a database.
- Readers can add comments to each article. They can be embedded in the HTML page (with a dynamic display on demand) or recorded in an additional XML file.
- Contributors may also submit articles. These will be first stored in a category "seen" ..
- RSS, forum / FAQ, news and directories will be added as extensions.

Building a Blog

Technically, a blog is a web page containing a ticket list in chronological order reversed. The main difference with the portal site is that many texts are displayed on the same page, but if we can define the number of tickets on a page, we just put this number to 1 to convert a blog portal, provided is displayed next to the main page a permanent part describes and links to the site content.
A blog should also have special tools to retrieve the texts and the ability for visitors to add comments, something we intend to include in our CMS.

Detail components

The majority of these components are independent and could be addressed in any order.

Adding a wysiwyg editor to create pages

We have to deal with a publisher articles on any computer online, once a password has been given.
The pages are not stored directly, but are processed by an interpreter that fills a template with the text that the webmaster or contributor entered.

Managing Menus

Pages created should not remain orphans. A link should be created on the file. We need to create menus with categories and sub-categories and add a link to each new page from the site.
The category name is given when text is entered, and it will also have the ability to edit the menu.

Authentication contributors

A form will enter a user name and password before you can add content to the site. If the site allows multiple contributors, managers grant permissions and save profiles. This would use preferably MySQL.

Allow Comments on Articles

Readers can place comments and add replies to other comments surfers. This turns the site forum and will require some management. The administrator must delete comments. We need to build a system to store comments, display as a list or tree that can be opened or closed (such as directories). XML is well suited for this kind of structure.

Administration

We need to design a admin panel to manage the system:
- Create or edit articles,
- Delete articles or comments,
- Manage users,
- Configure the system.

RSS

An RSS feed must be created for selected pages or the latest articles added to the site. It will function as a first in first out list, the oldest securities being removed to make room for newer ones.

Sitemap

A site map will be generated automatically. Ideally, the map will be updated when a new article is created. In fact, since the standard sitemap is an XML file, the manager of articles that can be accessed from the admin panel could directly use this XML file to store the list of articles


Code:

Use a template: You create an article and inserted into a model specific site page.

Online editing with TinyMCE:Fully functional demonstration of the use of an online editor with script to store content in HTML pages.

Online editing with CKEditor:As a demonstration of TinyMCE, contains scripts to save or edit a file, automatically create a file name, use different templates.

The dynamic menu:This component displays a menu described in a JSON file. An entry is added to the JSON file for each new page created (for this component will be). Later, we will build an interface to edit this file.

Comments:Allow visitors to add comments on your pages. The script works alone or as part of the final CMS.

Login and registration:Before adding comments, visitors must register. The program stores the data in an XML file.




0 comments:

Post a Comment