PepisCMS Web Content Management System
Web content management system for building static websites. Written in PHP, designed for MySQL5, successfully ported to MySQL4 and PostgreSQL.
The aim of the application is to provide a simple way to build a SEO friendly website in just a few clicks. User can generate all the contents, menu structure and manage the files using web interface. FCKEditor as the rich text editor is a platform independent web based JavaScript HTML WYSIWYG tool having the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. It generates W3C compliant code.
PepisCMS website is themable, user defined styles can be used by the editor for live preview of page contents. User can then replace or modify the current theme any time keeping 100% site integrity.
PepisCMS supports multiple users to work together on the site's content. It provides a privileges system, so that the administrator can specify user's restricted access.

System Requirements
- PHP5
- PostgreSQL or MySQL database server
- PostgreSQL ODBC drivers for postgreodbc
- Apache server with mode_rewrite for nice URL
Key Features
- Add/edit/delete menu elements
- Add/edit/delete page (URI)
- Multiple users, user groups and privileges
- Ordered hierarchical menu
- Pin/unpin a page to menu element
- SEO friendly: page keywords, tile, description
- Automatic sitemap.txt generation
- Multilingual admin interface (extensible)
- Themeable
- Basic file manager for browsing and managing static files
- Backup and restore site structure and page contents
Thrid party components
- Reduced CodeIgniter 1.6.3 web development framework
- FCKeditor 2.x (JavaScript based HTML editor)
Architecture
PepisCMS build around CodeIgniter framework. This implicates a certain architectural pattern: MVC (Model View Controller). The basing idea behind MVC is that the presentation layer (view) is completely isolated from the business logic layer (controller) and the domain-specific representation of the information on which the application operates (model).

MVC results high flexibility, by modifying models, we can adopt the application to any data source, for example we can story all the contents in the raw txt files or XML file.
All the data from the model is passed to the view trough the controller, I avoid using models' objects in the view's code.
