Introduction
A website is a way of expressing ourselves on the INTERNET. It is a way of keeping the world updated about you (or your organization). It is a way of spreading word of your organization. But what use is a website if it is not kept updated? If you know that a website is never updated, will you ever go back to the page, except when you need outdated information? For these reasons, having an updated website has turned out to be an essential necessity.
Traditional System
Traditionally we use a static website. This is what usually any organization / individual go for in the beginning. “It is cheap and more than enough. Even if there is an update I can edit the source”, this is the usual thought. But is updating a website with html that easy? What if you need more than one person to be able to update the website sitting at different locations? All of them would need to have access to the server; all would need to know html… is it feasible? This is where dynamic websites came to help. It is now widely accepted by individuals and organizations for its needs, because it satisfies the basic need for computers – automation.
But does a basic dynamic website always serve your purpose? No, when you need a new functionality you need to edit your code. Also a dynamic website done for an organization may not be suitable for another. This made things tough in situations where you need to suddenly change the appearance, add a new functionality, etc. This led to Content Management Systems (CMS).
Content Managent System
CMS are completely dynamic websites in which anything to everything can be modified as per your wish and that too without the least knowledge of web designing. They are usually designed in such a way that you can update its functionality using customized modules. This way the same system can be used by many ndividuals/organizations and still the visitor doesn’t feel that they run on the same system.
The main feature of any CMS is Content Management itself. It provides easy ways of managing contents of your website.
As you can see above, CMS gives you an easy way to manage the content of your website. But is it all that a CMS gives? No, it gives you even more flexibility. A basic content management system provides you with a lot of features like:
As you can see above, CMS gives you an easy way to manage the content of your website. But is it all that a CMS gives? No, it gives you even more flexibility. A basic content management system provides you with a lot of features like:
- Content Management
- Menu Management
- Block/Panel Management
- Template Management
But just by having these features a site never becomes popular. To be popular, people need to know of your website… your site should come up as one of the top ranked results of major search engines like Google™. Content Management Systems, by default, optimizes your website for search engine indexing.
A lot of Content Management Systems are now available in the market. Some of them are efficient in performance; some others have better management, while some others provide a much simpler and easy to use API.[1] for designing custom modules. Not much Content Management Systems provide this feature.
Object CMS
Object CMS is a light weight, object oriented Content Management System. The whole system is just about 832 kb with all system modules. The system makes use of reference variables for optimum memory usage, and uses the OOPs concept thereby making it easier to understand and run the system easily. Overall this gives the system very high performance and can run on almost all PHP/MySQL servers available, now that most servers have switched the new version of PHP – PHP 5.
The system satisfies all the basic needs of a Content Management System. Through modules the system’s features can be enhanced endlessly and can provide it with many features. Certain customized modules are already available with us. For example, a college and a hospital may run on the same system, but they need different customized modules. We have pre-built custom modules for such situations. On request those modules would be available to you too. Even if we do not already have a module that satisfies your needs, we could develop one for you for a nominal fee, or you could have the module developed for yourself using our API. All front end and backend tools / languages are open source and hence can be implemented at the lowest cost. The system uses features like Cascaded Style Sheet (CSS), XML, rich internet application techniques like Ajax, symmetrically valid XHTML and HTML markup, etc. To make programming easy and quickly confirm to standards common and popular libraries will be used, like JQuery for Javascript.
The Working
The main component of any Content Management System (CMS) is its engine. The main engine of Object CMS is ObjectLib.
This is the main engine of Object CMS. Whichever page in an Object CMS website is called, this engine is responsible to generate the page. So, essentially this module does the initial bootstrapping of the system. It is responsible to connect to the database, load general settings etc.
The ObjectLib captures all requests to the server. It then loads the database settings and then connects to the database. Once a successful connection has been made, it loads all the active modules into memory. Then the boot method of all the active modules is called. Then it calls the form method and then the FormAlter method.
Then the engine checks whether the request is some kind of form processing (E.g. login, register, create node, etc). If it is one, then the form submissions are validated locally. Here it checks whether all required fields have been submitted, and whether the data in the fields are valid based on the type of input element [2] used. Then it calls any custom validation methods defined by any of the loaded modules for that form.
If all fields are valid the system checks whether the operation is to save any settings and if yes, the settings are saved. This helps modules a lot because most modules have something to save. Since this Save Settings feature is provided by the main engine, modules do not need to define the code to save settings.
Now that we have dealt with save settings, we now call action methods defined by the loaded modules. Action method is defined by the module whose form we are now operating on. Then any additional actions specified by other modules are called.
Now if there was any form submission, we check whether any redirection has been set by any modules. If yes, the visitor is redirected to that page.
Now that any form processing has been completed we consider that the engine has finished loading. To indicate this, the loaded method of active modules is invoked. Next we call the page module which may return any blocks [3] with the contents to be shown. Any block returned in this phase is considered to be the main content of the page and is given priority.
Now that we have got all blocks ready we load the Template Engine which parses the template XML file and processes these blocks to generate corresponding HTML and this replaces appropriate place holders in the template XML to generate the actual HTML to be sent to the browser.
Once this has been generated and sent to the browser, the shutdown method of active modules are invoked to indicate that the engine has completed processing the page and it is about to shutdown.
The ObjectLib captures all requests to the server. It then loads the database settings and then connects to the database. Once a successful connection has been made, it loads all the active modules into memory. Then the boot method of all the active modules is called. Then it calls the form method and then the FormAlter method.
Then the engine checks whether the request is some kind of form processing (E.g. login, register, create node, etc). If it is one, then the form submissions are validated locally. Here it checks whether all required fields have been submitted, and whether the data in the fields are valid based on the type of input element [2] used. Then it calls any custom validation methods defined by any of the loaded modules for that form.
If all fields are valid the system checks whether the operation is to save any settings and if yes, the settings are saved. This helps modules a lot because most modules have something to save. Since this Save Settings feature is provided by the main engine, modules do not need to define the code to save settings.
Now that we have dealt with save settings, we now call action methods defined by the loaded modules. Action method is defined by the module whose form we are now operating on. Then any additional actions specified by other modules are called.
Now if there was any form submission, we check whether any redirection has been set by any modules. If yes, the visitor is redirected to that page.
Now that any form processing has been completed we consider that the engine has finished loading. To indicate this, the loaded method of active modules is invoked. Next we call the page module which may return any blocks [3] with the contents to be shown. Any block returned in this phase is considered to be the main content of the page and is given priority.
Now that we have got all blocks ready we load the Template Engine which parses the template XML file and processes these blocks to generate corresponding HTML and this replaces appropriate place holders in the template XML to generate the actual HTML to be sent to the browser.
Once this has been generated and sent to the browser, the shutdown method of active modules are invoked to indicate that the engine has completed processing the page and it is about to shutdown.
References
- Application Program Interface
- Input elements are input types defined by modules (like textbox, select, radio button, etc).
- Block – this is an internally defined structure representing the title, body, header & footer of any content to be displayed. It doesn’t have any styling information.








Mathew Paret
Closed Beta