Joomla is an award-winning content management system (CMS), which enables you to build Web sites and powerful online applications. Many aspects, including its ease-of-use and extensibility, have made Joomla the most popular Web site software available. Best of all, Joomla is an open source solution that is freely available to everyone.

Joomla is the most popular open source CMS currently available as evidenced by a vibrant and growing community of friendly users and talented developers. Joomla’s roots go back to 2000 and, with over 200,000 community users and contributors, the future looks bright for the award-winning Joomla Project.

Joomla! already is a rich featured content management system but if you’re building a website with Joomla! and you need extra features which aren’t available in Joomla! by default, you can easily extend it with extensions. There are five types of extensions for Joomla!: Components, Modules, Plugins, Templates, and Languages. Each of these extensions handle specific functionality.


Components

A component is the largest and most complex extension of them all, they can be seen as mini-applications. There are two parts in a component, an administrator part and a site part. Every time a Joomla page loads, a component is called to render the main page body. For example, com_registration is the component which handles user registration, users can sign up as a member at the frontend of your site and, as an administrator, you can edit these users. Components are the major portion of your page because a component is driven by a menu item and every menu item runs a component.


Modules

Modules are more lightweight and flexible extensions used for page rendering.
Sometimes modules are linked to components such as the latest news module which links to the com_content and displays links to the newest content items. These modules are mostly known as the boxes that are arranged around a component, for example: the login module. The footer is a module. Modules are assigned per menu item. So, you can decide to show or hide the logon module depending on which component (menu item) is used. However, modules do not need to be linked to components, as a matter of fact they don’t even need to be linked to anything and can be just static HTML or text


Plugins

Plugins are more advanced extensions and are in essence event handlers. In the execution of any part of Joomla, be it the core, a module or a component, an event can be triggered. When an event is triggered, plugins that are registered with the application to handle that event execute. Plugins were also known as mambots.


Templates

A template is basically the design of your Joomla! powered website. With a template you can change the look and feel of your website. Templates have certain fields in which components and modules will be shown. Templates are easy to build or customize and they provide maximum flexibility in how you style your site.


Languages

Probably the most basic extensions are languages. Languages can be packaged in two ways, either as a core package or as an extension package. In essence, these files consist key/value pairs, these pairs provide the translation of static text strings which are assigned within the Joomla! source code. These language packs will affect both the front and administrator side. Note: these language packs also include an XML meta file which describes the language and font information to use for PDF content generation.

Joomla is used all over the world to power Web sites of all shapes and sizes. For example:

  1. Corporate Web sites or portals
  2. Corporate intranets and extranets
  3. Online magazines, newspapers, and publications
  4. E-commerce and online reservations
  5. Government applications
  6. Small business Web sites
  7. Non-profit and organizational Web sites
  8. Community-based portals
  9. School and church Web sites
  10. Personal or family homepages
© 2010 Suma Software Inc