Joomla! Reviews

Joomla! Reviews

Joomla! An Open Source PHP & SQL based application that’s really easy to learn, easy to navigate and allows you to build fantastic websites even if you’re a stranger to PHP & the Joomla! environment – just like me :- )

Installation

Installing Joomla quite simple and just a few minutesinstall_steps activity –ensure that you have PHP, Apache HTTP server (or Microsoft IIS) & MySQL installed on your machine; extract Joomla into your web folder of you HTTP server and follow the simple installation  process. From a server environment perspective, its compatibility is primarily dependent on the support of the AMP environment – so you can run it pretty much on most OS – Linux flavors, Windows & Macintosh. DB support to this is however limited to the MySQL server.

Architecture

Joomla! 1.5 underwent a significant enhancement over its predecessor 1.0 – it introduced The Three Tiered Framework and The MVC Design Pattern that enhanced the product capabilities significantly – code manageability became easy and standards bases; code quality improved & making the product more stable; helped bring about standardization in community developed extensions.

The Three Tiered Framework of Joomla! 1.5

Extensions layer: This is the topmost layer that comprises of extensions to the core Joomla Framework & the application layer_archlayer and include
  • Components: are the custom independent applications that are developed to provide functionality to your portal. Although it leverages Joomla core & services, it can be rated as an independent application. Some of the core components provided out of box by Joomla are Content, Banners, Contact, News Feeds, Polls and Web Links.
A typical Joomla! component should comprise of the following five files:
  1. component_name.php – this is the entry point to the Joomla component
  2. controller.php – this file serves as the controller of the component
  3. views/component_view_name/view.html.php – this file retrieves the necessary data and pushes it into the template
  4. views/component_view_name/tmpl/default.php – this is the template for our output
  5. component_name.xml – this is an XML file that tells Joomla! how to install the component.
  • Modules: Modules extend the capabilities module_manager of Joomla! component by giving it a new functionality; can be considered as wrapper or views that repurpose data residing in Joomla and present it to the user in different forms  without having to modify the core component or datamodule_settingsa  itself. The key highlight of the modules is that it can take parameters;  can be placed anywhere on the portal based on your template & reused across your portal any number times – each with its unique set of parameters thus unique data. Thus a module can be used multiple times on same site to server different set of data / content based on the parameters passed to it for each page. The administrator can manage modules thought module manager in the administrative interface to appear / hide on specific / all menus; define parameters for each instance etc.
  • Templates: controls the overall User Interface of the Portal – look & feel as well as the layout. A combination of PHP, HTML & CSS – it provides and extremely flexible yet easy mean to define the user experience of you website. Joomla used different templates for Front-end
    (Site) and the Back-end (Administrator) of your site – so if you goof up one, the other is not impacted. (That my experience talking ;-))
Application layer: This is the middle layer that consists of applications that extend the Framework JApplication class. the four applications currently included in the Joomla distribution are :-
  • JInstallation is responsible for installing Joomla on web server and is deleted after the installation procedure has been completed.
  • JAdministrator is responsible for the back-end Administrator.
  • JSite is responsible for the front-end of the website.
  • XML-RPC supports remote administration of the Joomla website.
Framework layer: This is the bottom layer that consists of:-
  • Framework: this is the Core – the heart of Joomla!
  • Libraries:  this comprised of a set of core services required by the framework as well as the extension installed by developers.
  • Plugin or mambot (as they were called in 1.0) are small, task-oriented functions that intercept & manipulates content before it is displayed. Joomla! provides a number of Plugins in the core distribution, e.g. WYSIWYG editors,

Model View Controller (MVC) Architecture

With release 1.5, Joomla! cleaned & revamped its code and introduced the MVC Design pattern – in addition brining about standardization and flexibility in the architecture.
Given that The Joomla community contributes a signification part of the extensions available,mvc_arch MVC implementation also brought about standardization in the extensions developed by the community. The MVC design pattern helped in reducing the code complexity by separating the Business Logic from, Data access and the data presentation logic
In Joomla!, the MVC pattern is implemented using three classes:
  • JModel
  • JView
  • JController

Installation, Backend & Frontend Application

At a broad level, Joomla can also be viewed a set of 3 application, each serving a specific purpose.
  1. Installation – this part of Joomla is responsible of the installation & configuring of Joomla. Once the setup is complete, this has to be deleted.
  2. Backend : it the administrative part of Joomla that is used by administrators for managing the website, users, user group, menu & site navigation, extensions, multilingual support, site templates, media & content management etc. The neat part of Joomla is that it is independent of the frontend application, where the look & feel as well as extensions installed can be managed separately. Access URL http:///administrator
  3. Frontend : is the set of application that’s server as the website powered by Joomla

Template

The simplicity and the ease with which you can customize a Joomla templates, make is one of strong points of Joomla. It is most common for a template to have the following files:template_manager
  • index.php: is the most important file and provides the logic for the display, structure of the website, positioning of modules and components.
  • component.php: Provides the logic for the display of the printer friendly page, “E-mail this link to a friend.” etc.
  • template.css: is the style sheet for the template.
  • templateDetails.xml: Holds meta-information related to the template and is used by the Installer and the Template Manager.
When discussing Joomla templates it’s important to mention two important & related concepts
1. Module chrome: its predefined minimal HTML which is inserted before, after, or around the output from each module – primarily the border.  This can them me be styled using CSS.
  • Rounded
  • Table
  • Horizontal
  • XHTML
  • Outline
  • none
2. Template Override:  this is a new feature added in 1.5 that allows website designers to completely override the look & feel rendered by Joomla (modules as well  as components ) – core Joomla or community extensions. This mechanism gives you the flexibility to revamp the presentation without having to touch the extension code and avoid any potential future upgrade issues. You can add an override to your template, corresponding to your module or component. Joomla will look for these overrides in you template directory before rendering the default output to the browser.

Community

Joomla has strong fan following – one that supported it to rated as best open source CMS in 2006 & 2007 ; that supported it by contributing over 3500 extension; and most importantly that’s readily available to answer most of your queries.

Security

Similar to other open source PHP based system, Joomla presents security concerns primarily arise from 3 reasons:
  • In appropriate configuration of server (Joomla, HTTP server, OS permission)
  • PHP security concerns
  • Potential security loops in community provided extension.
To overcome some of these, you can use the free Joomla extension, Joomla! Tools Suite (JTS), which is a Joomla! environment audit, maintenance and diagnostic application written in PHP. The JTS suite of tools can diagnose, report and advise on common installation, health and security issues, including performing several common performance and recovery actions.

Authentication & Authorization Framework

Authentication

In addition to the native authentication system, Joomla provides support for LDAP, OpenID & Gmail – setting these up as easy as enabling the plugins.

Authorization

Joomla authorization framework distinguishes website users from website administrator using the Public front-end & public back-end group concept.
Public front-end group included four groups:
  1. Registered – is the default group for all registereduser_accessred users of the website. Registered users can’t contribute content however the administrator can grant them access to other areas of the portal.
  2. Author – This group allows a user to post content / articles, however the same is published subject to approval by editors & publishers.
  3. Editor -This group allows a user to Post as well as Edit any (not just their own) content item from the Frontend. They can however can’t publish or change the publishing status of any articles, even their own.
  4. Publisher – In addition to Editor Privileges, users of this group can publish content – making it visible to user on the website based on the access.
Public back-end group uses have the access to administrative console of Joomla http:///administrator
  1. Manager – This group users have access to backend system along with access privilege of  the front-end publisher allows access to content creation and other system information from the Backend. In addition manages can perform activities like adding, deleting and editing Sections and Categories, editing the Front Page and Menus.
  2. Administrator – in addition to the mangers access privileges, this group users can install components, modules & plugins; User Management  privileges
  3. Super Administrator – as the name suggests, this user group has access to everything – manages Joomla! settings, templates etc.

Content Management

If Joomla is to be considered as a CMS system, article_manager an “Article” would be its primary content type that allows users to contribute unstructured content & display on the websites. These articles can be managed by two levels of taxonomy: Category & Section. Category the primary taxonomy for Joomla! Content and article Sections are the Top Level organization that can contain multiple Categories. Sections also serve the alternate purpose of organizing articles for display on the website using Section Blog Layout and Section Layout. This content goes though a simple content lifecycle Create -> Edit/Approve -> Publish; this however shouldn’t be confused with workflow capabilities.

Media Management

Joomla 1.5 also provide a neat little utility media_managerto mange digital content of your website like images, icons etc.

Web Content Management

Joomla WCM capabilities aremenu_manager centered around Menus & Modules. While menus defines you site navigations, modules can be used to present data / content unique to each of these menu driven pages. In Joomla, Menus item can point to internal components like Search, Articles, Contacts, News Feed, Polls, User profile, web menu_item_manager links component; External link that point to other website URLs; Separators & Alias that can point to other menu items. Joomla give you the complete flexibility to mange  the presentation of you Menus – you can use rollovers, dropdown, fly outs, or any other style you may like. Joomla also generates breadcrumbs automatic. In addition to defining target action for a menu item, the administrator can also define the intended viewing audience – menu_typesJoomla provides a three access privilege for this:
  1. Public: Content will be available to every user in the Public area of the web site including guests.
  2. Registered: content will be available to all registered users of the website.
  3. Special: content will only be available to users with Manager, Administrator, or Super Administrator permissions.

RSS & Syndication

With Joomla, you can also syndicate your site content, allowing your users to subscribe to new content in their favorite RSS reader. It’s equally easy to integrate RSS feeds from other sources and aggregate them all on your site.
Beyond this, Joomla! doesn’t support for other CMS / WCM features out of box like predefined or custom content types; versioning, workflow, etc. You can however develop custom extension or look for extensions that can provide you for the required functionality.

Performance

Joomla is a very light weight application and it doesn’t really have any glaring performance bottleneck, there definitely is room for performance enhancements. You can follow a few simple tips to enhance it performance:
  • Ensure that you enable Joomla Cache (it’s turned off by default)
  • Avoid cluttering the page with un-necessary modules– keep them to the minimum.
  • If you have components, modules that are installed but not used, disable them on the production site.
  • Optimize the images used on the website, also ensure that you use only the formats supported by Joomla
  • Avoid rich media files, large files, flash etc
  • Make sure the web design template uses valid XHTML / CSS code
  • Consolidate CSS file to minimise the number for CSS files used on site.
  • If your server supports GZIP, enable this option for server side compression protocol as it can reduce web file size to the extent of 70%.
Like other CMS tools, Joomla also make numerous DB call, a single page request would typically result in several SQL calls thus impacting site performance. To minimise this impact, ensure that your SQL calls are optimized, Database tuned for optimal performance and the server h/w is appropriately sized. Beyond this you can also leverage Joomla Template override feature to optimise your site performance:
  1. Once you’re done with your site development, take the view files from your extensions and copy them to your template directory as overrides.
  2. Now edit these views to eliminate any unnecessary code that will not impacting the site functionality – it could even mean hard coding a few things. And since you’re not changing the extension code, there will be no impact to future upgrades. I typically use this to eliminate unnecessary configuration lookups; data lookups; conditional loops, etc.
The other aspect to Joomla performance is perf_load_bal lack of clustering & failover support as part of Joomla Core. You can circumvent this by use of Load balancer / Apache Clustering approach and achieve certain level of scalability & high availability needs. perf_load_cluster The diagram give you a perspective of these setups, you will have to evaluate multiple options to see what works best for you.

Development

For developing a Joomla extension, you need to familiar with PHP, HTML, CSS & JavaScript. Even if you’re not, it won’t take much time for you to scale up and start developing for it. All you need is an IDE like Dreamweaver, setup your server ( as described in the installation section) and you will be good to go.

Other Features

Web Services: With Web services, you can use Remote Procedure Calls (via HTTP and XML). You can also integrate XML-RPC services with the Blogger and Joomla APIs.
Joomla support both Search Engine Optimization (SEO) as well as Search Engine Friendly (SEF) URLs

Specifications

Feature Support
OS Linux, Mac OS X, Unix, Windows
Application Server Apache
DB MySQL
Dev Language PHP
Standards HTML 4.01, XHTML 1.0, MVC, Web Services
Licensing GNU General Public License
Strengths
  • It’s really easy to installation, learn and get started with it making Joomla! a good  choice for even novices to create neat web portals.
  • Ability to reuse modules across the website and customize the output based on parameters.
  • MVC based modular architecture
  • Templating: with elementary knowledge of PHP, HTML & CSS and bit of creativity, you can easily create great websites. Template override
  • Extensive Community support that provides 3500+ extensions and a great support. Before to get to building your own components / module, take a peek at the available extension and for sure you’ll find something that’ll meet your requirement
  • Menu bases navigation & site management
Weaknesses
  • Content Management capabilities
  • Work flow capability
  • Authorization framework (enhancements expected in 1.6)
  • Scalability & High Availability support
  • No Multisite support (expected in 1.6)
Competition Drupal
Target Audience Simple to medium complexity websites like :
Corporate portals , intranets and extranets for Small & Medium organization, NGO, Educational institutes, etc Personal websites, community portals

Software
Recommended
Minimum
PHP
5.2 +
4.3.10
MySQL
4.1.x +
3.23
Apache
2.x +
1.3
Microsoft IIS
7
6
Joomla doesn’t support MySQL 6.x, PHP 5.3. (you shouldn’t use PHP 4.3.9, 4.4.2 or 5.0.4)
Here are just a few examples of Web sites that use Joomla:

Company & Product history

Joomla! came into existence as a result of the folk of the Mambo (another popular open source WCS) in August 2005, when its development team quit and started off Joomla! (An Arabic word “jumla” meaning “all together” or “as a whole”)
Joomla! 1.0.0 was then released on September 16, 2005 which was primarily a re-branded release of Mambo 4.5.2.3. Soon Joomla! won the Packt Publishing Open Source Content Management System Award in  2006 as well as in 2007.
A few noteworthy comments from the judges were:
  • Joomla! is possibly one of the biggest success stories in open source of late. Its first release came in only September 2005 and since then has grown to be one of the most downloaded Content Management Systems on the web.
  • Most notably its good front-end for administrators and end-users, which gives users a simple and traditional company website straight out of the box. Once again, judges commented on the size and responsiveness of the community, which translates to potential problems being dealt with quickly.
  • Joomla! version 1.5 was released on January 22, 2008 and release 1.6 is in the pipeline with numerous new feature expected to be part of it, the current release of Joomla 15.14 and the same has been used for the review

Features awaited in 1.6

  • Enhanced Security Model with Access Control List (ACL)
  • Multi-Site Support to allow users to create and manage multiple sites using the same instance of Joomla.

Conclusion

Joomla! is a great tool if you’re looking to rapidly build dynamic websites to share information with the end users. You however need to think twice if you need an enterprise class portal; with high scalability requirements; content management, workflow or transaction processing capabilities.

Leave a Reply

You have to agree to the comment policy.