Abstract
Its different trend nowadays appears in the global market when it comes to the matter of developing web based applications, and it’s CMS, probably the word you heard. And it’s all due to the ability of CMS systems to implement almost any kind of applications effectively, in both ways, by the matter of cost and the variety of features it comes with. And the success of open source CMS systems in the market reflects the evidence of the same. Open-source CMSs have now matured enough to the point where they should be measured side-by-side with commercial alternatives.
Here I just tried to come up with one of most booming one, JOOMLA CMS, probably the word you have heard if you are in the world of open source web development.
I just tried to spotlight on JOOMLA, on which currently I am working, from the point of view of a developer rather than being a non-technical user. Although if you are not a techie and you have a bit idea about the CMS, I am sure I would be able to get your attention up to the end.
CMS Era for the Web
What a CMS system exactly means? In very simple terms, you can say that its web based software which allows you to manage your website easily.
Although “Manage the website” might have very wide scope, but keeping the things fairly straight forward here, managing the website means,
- Edit your site content easily
- Changing the look and feel of the site
- Set a different lay out for the site
- Enable/disable the features of your site
I would like to mention here that the points above listed are in very general sense, not specific to any context. And believe me; your application would be going to deliver you all the features like flexibility, scalability, and expandability etc. if you have chosen a right CMS according to your application requirements. It’s obvious that you would like to keep your website up to date by feeding with the latest information, whether it’s in the form of latest news or a cool different new look of your website! With CMS you can do this on the fly, even though you are not familiar with any of the technical stuff. So you can think of this one as a major benefit of the CMS systems, rather than hiring a professional developer to do the task which you can do yourself fairly easily.
There are different strategies when someone sits and decides to develop architecture for your web application. And specifically if you have very high expectations from your application, then you have a good list of features to implement on. And if you really want to achieve the benefits of the architecture then I am sure it’s going to take some good amount of investment from your side, in the context of time and money.
On the other hand, if you spend a bit on the market you will find plenty of ready made solutions which might be closely match your requirements. And as the list would be something like JOOMLA, Drupal, and Typo3 etc. You just need to find right one for youJ.
Preamble: Joomla CMS
Although I have heard about many open source CMS available right now for web based applications like Drupal, Typo3, PHPNuke, PhpCMS etc. but I am really a big fan of JOOMLA due to it’s simplicity of structure or more specifically I would like to say as hierarchy of structure when it comes to the matter of content management. JOOMLA fulfills all the features of a powerful CMS that you would like to keep in your list when you select the best CMS for your application. JOOMLA is built in PHP (scripting language) and MYSQL (database engine). It’s an open source so you can download it freely from www.joomla.org. And again, it’s very easy to install the JOOMLA, follow some of the simple steps and you are ready to use one of the best CMS ever. Don’t afraid if you are not techie, since you don’t require knowing it at all to use JOOMLA!
The basic idea behind JOOMLA (or any web content management system) is that a non-technical person often needs to be able to keep their own website up-to-date without help of web developer to make changes every time. Of course there are some things that can only be done by a techie, but for the minor tasks related to managing the site content, it is an unnecessary burden and expense to go for professional developers.
JOOMLA therefore attempts to separate the technical tasks from the non-technical by providing tools to help a non-technical user to manage and organize the content of their website easily.
And in the case of functionality it also provides numerous tools (say Components, Modules and Mambots in terminology of JOOMLA) which help to add more functionality to a site (by installing ready-made extensions).The main purpose of the JOOMLA Administrator application is to allow the site administrator to organize the content of the site quickly and easily.
Brief Look at a Core Structure
Hope now, you would be familiar with the basic idea of the CMS system and the JOOMLA system as well. So let’s just jump into the architecture of the JOOMLA system. At first glance, you may feel it a bit complex, but believe me it’s one of the easiest structure while comparing to the other CMS systems available right now.
Looking from top, you will find three major entities in the structure of JOOMLA. They are Components, Modules and Mambots. Very shortly I will make you familiar with all these three. But don’t you think so what’s the benefit of this kind of structure? I bet you will certainly figure out once you look at the functionality of each. So let’s start to explore!
Components
Components, alternatively you can also say that it’s a backbone of JOOMLA. It strengthens the JOOMLA by providing the functionalities. Being as a JOOMLA developer I would like to say when you want to provide some functionality to your website, a collection of logically grouped features, I would like to have a component in JOOMLA.
Let me make you very clear it by giving a very simple and usual example. Suppose you would like to build a user management in your website. Of course, you would like to have Registration of users, Login/logout, Manage Profiles, and Manage Users etc. So this results in a Registration component in JOOMLA which provides you these all features. Just you need to do is to install this component. Installation!! Afraid? Don’t be, since in JOOMLA it would require a single mouse click to install any of the entity (Component, Module or Mambot).
You’ll find very handy list of components with the default installation of JOOMLA if you dig a bit in JOOMLA. List is something like Registration (for user management), Banners (manage banner images), Content (manage all your website content in a very organized manner), Polls (provides your website with user polls feature) etc. In short, if you are starter in the web development business, and initially want to have a basic site up with some basic pages like About us, Contact Us as well as a user management then it would not require more than an hour to set up your basic site! J
So that’s all about the kind of functionality a JOOMLA component can offer. I am sure what you are thinking of at this point of time! You would say what about the other functionalities which you want to have in your site, Right? Say you are in the E-commerce business and you want to have a shopping cart feature so user can purchase your products online. Being as an open source, JOOMLA supports almost 2300 plus (at the time of writing) third party extensions (Components, Modules or Mambots)! What you are required to do is to download the extension, and just install it with one click installation! So in the above example you are required shopping cart in your site, there are lots of JOOMLA components available on extensions.joomla.org for shopping cart. Just select the one which fits your requirement, download it and do install! That’s it! You have a shopping cart running on your site! I am sure you are amazed with the ease and power JOOMLA gives when it’s matter of extending the functionality of the site. This is just an example, so you can imagine how fast and a powerful site can be built with JOOMLA and obviously, with the third party extensions it supports.
And finally, say you are not able to find a ready made joomla extension that suits your requirements, then? No problem at all! You can develop your custom extension according to your requirements and install it in JOOMLA! If you are thinking that would it be a big deal to make a new extension for JOOMLA? I would say NO! If you know PHP and mysql, there are lots of online tutorials, books, articles available to help you at any time! And for those who don’t want to make themselves, they can hire a developer to do the sameJ.
Modules
If you are an internet guy and used to surfing the sites you would see a common patterns of the web page. Some common parts like header, navigation, sidebar, body part (main content part), right sidebar, footer etc. If you browse any site, usually you would see that except body part of the web page all other parts like header, navigation, footer, sidebars remain same as it is. And of course, it’s a good practice to keep your web site layout intact while browsing to the other pages of your site as well.
With joomla it’s fairly easy to implement this kind of structure. In fact I would like to say its part of JOOMLA’s core architecture. More specifically, a JOOMLA module is a block or a quick interface which allows you to access the core functionality of any of the JOOMLA components (most probably) or sometimes the functionality from any third party.
Getting Confused? Let me make you more familiar. Suppose you have a Registration Component in your joomla site. So that will provide you all the functionalities like Registration, Login, Logout and Manage Profile etc. Now think you would like to have a login box on the left side (for example) of your site. So users of your site would see that login box on all the pages of the site. In JOOMLA you can do it in a spot. And with JOOMLA you can change the position of your module on the fly, suppose in future you feel that it would have better if you could place the login module on the right side. Just login to the JOOMLA Administrator and change the position of that login module to right, that’s it! Login module would appear on the right side! Surprised! But it’s true and really amazing to see in action. This way you can manage your site’s layout easily even without touching any of the complex and grubby code. This is due to the architecture of JOOMLA. MANY THANKS TO THE JOOMLA TEAM! J
Mambots/Plugins
I would like to say this one is a tricky player in the JOOMLA’s core architecture. Initially it seems a bit difficult to understand Mambot compare to other ones. But once you get it, I promise, you will find it one of the most useful one.
Mambot or Plugin in JOOMLA is used to extend the power of existing functionality that JOOMLA provides. Again this can be explained best by example. Suppose in your site you are using FCKEditor (one type of web tool which allows you to edit your website content online) for editing the site content. And now you see some cool editor somewhere, and now you really want that one to implement in your JOOMLA site, then? If you are a techie like me you would like to try to hack some of the core JOOMLA files to do that otherwise you might be thinking of hiring a professional developer to accomplish the same. Isn’t that so? But believe me; you would not need to do any of the above! If JOOMLA provides any third party extension (Mambot here) for that editor, just download it and install! After installing you just need to configure some of the things to make that working! Now assume, you feel that you are not really enjoying using this new editor and want to switch back to the older one..! With JOOMLA it’s a piece of cake. Again just need to change some of the configuration! That’s the power of JOOMLA, hope you have already started to feelJ.
Real Power: Content Management
Since we are on the CMS system, Content Management is one of the most important features which should be considered. Think of content management as a way to manage, organize and keep up to date your website content time to time! And as far as my experience with JOOMLA, I would rank it one of best candidate.
Joomla has a very organized structure to manage your website content whether it’s in the form of News, Articles or Events! It provides the hierarchical way of structuring your site contents.
And as it’s said that it’s always easy to learn from the examples, here we go. Assume that you have thousands of articles on your site. And say you would like to find any particular article or you would like to see all the articles related to sports, how would you find it? It would be a nightmare for you to find it if you have not taken care of managing it! But hold it, just look at the simplicity and power JOOMLA provides!
In JOOMLA you will find a structure like Section -> Category -> Content/Articles. So first you can create a section, then some categories in that section and finally you would like to divide your articles in to the different categories. Continue with the same example above, first you would like to create different sections like IT, Sports, News etc according to your requirements. Then different categories can be created into the each section. For example, you would like to create the categories like Hardware, Software etc. in the IT Section. Now you have set up the sections and categories. It’s time to put your content/articles into those categories!
Asset being an open source
Observing the trend, the field of content management systems (CMSs) has seen particularly strong growth in open-source solutions, perhaps in direct response to the very high prices that commercial CMSs have historically demanded.
Apart from all the CMS available, if you study the rate at which the popularity of open source CMS is growing you will be amazed! And once you feel the benefits of the open source systems, you say they deserve it!
Low Cost
Generally to use any of the open source system, you need not to purchase any kind of commercial license. So it’s almost free! Just download, install and configure!
Pay for services Not for System
Since the users of CMS come from variety of fields, they each need different kinds of utilization of the same system. For example a student would like to set up a blog website to be in touch with his/her friends! On the other hand, a business man would like to use the CMS as a online shopping cart. By means of this example, I would like to say you will be only charged for the customization you want in the CMS. Where customization may be one of the,
- Customization of the CMS features to match your needs
- Integrating a new fresh layout with the CMS
- Restructuring and creating content
Try it before buy it!
Think if you have decided to use one of the open source CMS, but you are not sure whether this system going to deliver you what you are expecting, then? Again it’s an open source; so you can test it to see the features! No cost at all!
Community Supports
Don’t you think it would be great if you run into some problems with your system and you would like to get rid of that as soon as you can! Find plenty of online documentation, tutorials, discussing forums etc. to solve your trouble, since this is the case of open source! As far as my experience with JOOMLA, I have been very satisfied with the online help I have got over the time!
Essential
ingredients for Joomla
Now you have familiar with the basic CMS advantages and features of JOOMLA as well, and we also tripped to the major entities of JOOMLA and what it can provide, I would like to limelight some of the major components and its functionalities.
Obviously, you would like to have an extensive user management on your website, if it’s one of the requirements of your website. Community Builder, is the component which extends JOOMLA’s basic registration functionality by providing some of the important features with which you can empower your user management.
Letterman, a Newsletter component, would provide your site users the ability to subscribe for the regular newsletters. So once they get subscribed they will receive the regular up-to date newsletters from your site.
This is my favorite and one of the popular components in JOOMLA and its Event Calendar, provides your site a calendar like functionality. So now you can manage your articles even better way, say how? Now with this component you are able to set the expiration criteria so the articles/events which get expired won’t display. This way you can keeps your site clean and more informative providing the latest information! On the other hand your site would have handy Event Management feature!
Fireboard, one of the most popular and useful forum component, provides all the features of online forum related functionality like user management, managing forum topics, comments, set up the access permissions etc. Once you see it, you would like to strengthen your site by providing such a powerful feature.
Do you know the best business to look at nowadays on the internet? If you spend a while, mostly you will come across the web sites which deal with the e-commerce providing the ability to purchase the products online. Guess you have a business of selling the electronics products and you want to have a site to do the marketing for it and at the same time the business as well! Here it is Virtuemart, a splendid and full-featured component for joomla providing all the features you would like to have on your online e-commerce site ever!
Eager to see other components! But this is just the beginning of the list, with JOOMLA you can use more than 2300 plus extensions! Just dig up what you require, download, install and enjoy!
Assessment with different CMS
Although it’s not always good to compare the things, since the aspects are different behind each. But being professional, we can have a look at the different open source CMSs available. Beginning with JOOMLA, DRUPAL, TYPO3, e107, PLONE, Pligg, PlumeCMS etc. you would find 80 plus open source systems! But here I would like to compare two most popular candidates here based on some of the general parameters, JOOMLA and DRUPAL, since I have worked with both the systems.
When its Matter of Ease with which one can manage the site content, I would say JOOMLA wins due to very clean and easy interface it provides.
For User Management features, both are equally stands close to each other. As I said earlier, solid component available for this and it’s Community Builder. On the other hand, Users groups and expansion of the registration is native to Drupal.
In the case of Shopping Cart functionality, JOOMLA leads. JOOMLA has a Virtuemart which beats Drupal’s ecommerce module.
For SEO fans, Drupal provides out-of-the-box URLs feature which can improve your site rankings. Nevertheless, there is a third party extension named OpenSEF available for JOOMLA which looks promising and improving fast.
As far as Document Management is concerned, JOOMLA beats Drupal by providing a very powerful DOCMAN component.
For those, excited to have Community Sites running up quickly, I would suggest having DRUPAL instead, since the features like forums, blogging are native. For JOOMLA you would require the third party extensions for the same.
Considering implementation of Internationalization (implement multi-language support) on the site, DRUPAL has upper hand by its powerful i18n module over JOOMLA’s Joomfish, neither an easy nor straight-forward solution.
And finally from the Developer Point of View I would say JOOMLA is one of the easiest CMS systems to learn and customize ever I came across because of the set architecture. Comparatively, you would find DRUPAL little steeper initially.
Conclusion
Finally, it depends upon your necessities to choose the best one which suite to you! Here I would like to suggest having a brief look at the different open source CMS features, although initially it would take a bit of time to assess the right system you are looking for. Meanwhile I would like to say, JOOMLA is the winner of "Best PHP Open Source Content Management System" for 2006 & 2007 by Packt Publishing. Ultimately, the choice is yours!