Architecture

tracend edited this page Jun 12, 2012 · 16 revisions

In it's core the CMS is an MVC structure with a layer of additional logic to produce a series of helpful features.

The Core/Clone model

Built-in is a lookup function for files that allows the components to be partitioned and placed in difference locations. In practice that means that you can have one base app folder and many "satellite" sites, all using the same base. Each website generally has its own data and design and when required can even override specific classes with different logic.

Decoupled Logic / Data / Design

In true MVC fashion KISSCMS enforces the principle that logic loops should be separated from the actual data and the front-end design. To make the separation obvious there are specific folders for each type. All logic is in the "app/" folder, all data in the "data/" folder and all front-end design in the "html/" folder.

URL-based Categorization

Reversing the concept of user-friendly URLs, that takes the breadcrumb as a reference to create the address, the folders that lead up to the specific page are considered categories that contain the page. That way the grouping is automatic and the navigation has added flexibility, as the users can look through the website content in their own terms.

The Public folder

A commodity of the app folder that hosts all the assets that are necessary for the presentation of a website but are best left hidden to keep a cleaner environment for the front-end developer. These files may be JavaScript libraries, favicons, sitemaps etc.

Plugins

An easy framework to create plugins which allows additions to be contained in their own folder and installed/uninstalled simply by moving files around. The presence of the plugin alone is the only setup required and uninstalling is as simple as just deleting the folder.

Sections

The layout is split in a series of sections that are generated by logic and may or may not contain dynamic data. The base Section() class defines the main logic concepts and output variation, and every section is a child class that extends it.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.