User:TravisNapoleanSmith/sandbox

One Solution CMS is a PHP based content management system created by Travis Napolean Smith. This system used PHP 5 and MySQL. It uses a tiered structure instead of model-view-controller. Most of the system uses the following design patterns: Chain of Responsibility, Adapter, Decorator, Façade and Abstract Factory. This system was originally created in 1999. As of May 28, 2013 it is now in version 2.1.148.

One Solution uses the fully capabilities of Object Oriented Programming including Abstraction, Encapsulation, Inheritance, Polymorphism, and Interfaces. It is also based on an 8-tier structure using modules to extend the capabilities of the system.

Tier Structure
One Solution has been designed using the 3-tier model that is common with most software but this 3-tier model has twist to it. It has been broken down even further than the traditional 3-tier model. This new broken down model is an 8-tier model. Some functions can be more general classified within the 3-tier model system: Presentation Tier, Business Logic Tier and Data Tier but this 8-tier model has added extra security layers at the Business Logic Tier and created a separation of behavior, presentation and content with the Presentation Tier.

Tier One - Data Layer
Tier One was designed for one thing: The Database. Whatever Database information is needed is stored here! Remember that this tier model was designed as a chain of command structure. This means that for the Content Layer to access the database, it must first run thru the Validation Layer, then the Authentication Layer, then the Protection Layer, then Data Access Layer, then finally to the Data Layer. It cannot skip a step along the way. This means that their are not SELECT statements in the Content Layer. It is the same for all the other layers as well.

Tier Two - Data Access Layer
Tier Two was designed for all SQL queries to be ran. This can include SELECT statements, DROP statements, ADD Statements and any SQL command needed to run. All SQL commands are passed down to the Data Layer to be executed.

Tier Three - Protection Layer
Tier Three was designed to protect the database from SQL injections, unauthorized access and SPAM. Any security that is included with One Solution is ran in this layer. All SQL queries are run thru this layer before they get to the Data Access Layer.

Tier Four - Authentication Layer
Tier Four was designed for any logging in and logged out of pages. It was designed to also keep a user logged in when needed. It is a go between for the Validation Layer and the Protection Layer.

Tier Five - Validation Layer
Tier Five was designed to validate any information that has to go from the Content Layer to the Authentication Layer. This can include validating users input, checking to make sure that sql commands are in proper order and such. Any time a query is needed for the Content Layer, it must go thru Validation first, then down to Authentication.

Tier Six - Content Layer
Tier Six was designed for the raw content to be assembled together. This content could be a table, a list, regular text, headings or even flash movies. These are where most plug ins or modules are ran. Any information that the Content Layer needs when loading is passed down to the Validation Layer.

Tier Seven - Behavioral Layer
Tier Seven was designed for any behaviors that occur on the users computer to run. This area was specifically design for JavaScript and any JavaScript Applets to run. Any information that the Behavioral Layer needs, such as AJAX, needs to be passed down to the Content Layer.

Tier Seven also supports jQuery and IEPngFix for IE 6. It also supports other scripting languages such as ActionScript.

Tier Eight - Presentation Layer
Tier Eight was designed for the look and feel of a page. This is not the inline styles that get used but the CSS that is included in a separate file. Any CSS that is in a separate file is processed in this layer.

Tier Eight also supports themes and can have more than one theme defined. It also supports having separate CSS files for Print Preview, IE 6, IE 7, IE 8, IE 9 and IE 10.

Future Releases
Currently there are two different releases that are being developed.

One Solution CMS 2.2
One Solution CMS 2.2 which is available to developers only. This release only has test cases and is an alpha stage of development.

One Solution CMS 3.0
One Solution CMS 3.0 which is not available to the public. This release is designed to completely replace the aging Administrators Panel.

More information in this article is coming.