Architecture of Guru CMS

Most of the users out on Internet are looking for a platform where you can add/delete/modify content in real time; that is a content management system (CMS). There are many CMS's out there, most of them open source and free. Apart from various highly important issues that all those free software have there is one more where most of the end users have to deal with. This is the template engine and how to migrate/integrate their HTML/PSD layout to that CMS. All of them using compex syntax and or have many files to edit and at the end is impossible to migrate an existing HTML design exactly as you design it.

After spending a huge amount of time you might be able to design/migrate your template and then you are ready to move on to module/component development. Here is where things are getting too complex. Huge manual with many non update pages lead you to nowhere or to a specialized company to develop what you have in mind into that CMS ending up with a much higher budget that the initial cost of Guru CMS. See an example with Joomla based web sites for example, all of them look the same and anyone with limited experience can recognize those in a minute.

With Guru CMS you will solve all the issues described above. We fanatical support the "Keep it simple" while not loosing any of the core functionality of a CMS. With Guru CMS you will be able to create from scratch a PSD/XHTML/CSS tableless template in 2 days or in a few hours the convert from any PSD. You can do that even without reading the manual if you have experience with HTML and Smarty. If not, there is a crash course for it!

The following diagram shows an example of the Guru CMS architecture.

Guru CMS Architecture Diagram

The core of the CMS sent all queries to the sub parts of it. Major role in the system is the template language Smarty (www.smarty.net), one of the most popular and old template engine on Internet. Through Smarty you can adjust any template with normal HTML knowledge in just a few minutes. We have outline the parts that are not related with clear HTML inside our template files and also on documentation, you just need half an hour from your time to get informed about those and then you'll be able to build anything. You can swap banners/header per category, subcategory etc with just a few lines of code. This and a bunch of other template related features gives you the total freedom to work and design your web site.

A few keypoints about Smarty:

  • Smarty offers you nice syntax. Opening and closing Smarty tags is like doing so with HTML tags. The only difference is {/} instead of 
  • Smarty syntax is unobtrusive. You don't have to switch PHP and HTML context in your head, whereas using only PHP it happens a lot - all this  madness
  • Filters. This is where real power of Smarty lies. Thans to filters you answer to question what and not how. See the following example: {$fileSize|bytes} is easy to read enough to see that I'm outputting file size and apply some filter to it. Whereas in pure PHP I would be doing some if-else hakery thing missing the whole point - what I am actually outputting?
  • More filters. You might have seen on some pages info like "Last seen 3 days ago". In Smarty you could do it just by creating own filter that sits quietly in separate file and does not pollute your template. I use custom |relativeDate filter to do the trick.
  • Security. Create simple |e filter to escape output and prevent XSS attacks. How easy when compared to 
  • Easy integration with Zend Framework. Yes, I use Smarty on top of ZF. This way I get the best from both.

We've got a snippets too, ready to use them. A snippet is short, fulfills a particular task well, and doesn't require much extra code beyond the standard library or system dependent code. A snippet is not a complete program, for that a module is closer to it, which is a better way for handle larger programs. A snippet can easily reuse in another program.

Under a particular folder we hold our main libraries, like Smarty, Swiftmailer, JQuery etc. You can direct call them and add an extra functionality direct into your CMS. If you find on Internet another application that is using any of these technologies, then no worries, just use it!

We also provide support for any LDAP server. We heavily tested Guru CMS under OpenLDAP and 389 Directory server with thousands of users.

Share this Article

Subscribe to our newsletter