Dissemination of views, information and knowledge without any cost or ado was made possible after blogging dawned upon us. Lets take a look at some of the burning topics, general discussion, innovations and techniques from our Editor’s desk
Apr 1 2013
Whats the difference in Joomla Component, Module, Plugin, Template & Language
Considered as the second most popular content management system after WordPress, Joomla is highly popular because of its customizability and extendibility. These features are widely owed to an extensive list of Joomla extensions that can significantly add or change a website’s functionality and looks. The five different types of extensions Components, Modules, Plugins, Templates, and Languages, have individual roles to play and are used accordingly in nearly every Joomla website. Conversely, it also means that there are 5 different reasons of confusion over what is what and which is used for what. Therefore, here we present to you the difference between Joomla Component, Module, Plugin, Template, and Language.
Components are the backbone of every Joomla site. They are used to provide large scale functionalities to the website and generally are much more complex than other extensions in both function and code. The components can have features that may alter or add both front end or backend interfaces in the website. They can even control or provide support to other types of extensions. A typical example of a Component would be a Content Display field in a website, or a content editor in the admin panel.
Components usually contain many configurable options and is mainly used to alter or add functions to the areas that are of primary focus on a rendered page. Components can even handle data manipulation, its display, and its storage in database. According to the functionality, they are the most versatile type of extensions found in Joomla, however they can only be placed in the main body of a template and can be displayed on a single page only. The components are accessed through links that are present as menu items.
Creating custom components for a website is the most difficult yet many a times most essential part in creating a custom Joomla site. Every component has a site part which goes in Component folder, and an administrator part that goes in the Administrator/component folder. To know more about the Joomla folder structure, visit this page.
Template is the Joomla extension that dictates the look and feel of a Joomla website. It is the most important extension of the site and every website uses one or the other template extension. The most common step in creating a custom website is the step of converting PSD design to Joomla template. It is also the most used service during Joomla Web development.
There are two types of templates, front end templates and back end templates that can be used to alter the look of front end and back end respectively. Here front-end-look means the main view an average user will see when visiting a site, and the back-end-look is the view an admin use will see when visiting the administrator page of the Joomla CMS. Back-end templates are rarely used.
The template file decides the placement of Main-Body field in which component goes, and what can come in rest of the available area. Template is also the extension that decides whether the website is responsive or not.
A typical template extension consists of at least two files, a main PHP script file and its corresponding cascade style sheet (CSS) file. The template decides the font of various areas, color scheme, background color and images, and other graphic elements that are visible on the rendered website.
Modules are kind of a simpler version of component with limited functionalities. They are more typically synonymous with ‘small boxes’ that surrounds large component boxes. They are used as functionality add-ons for completing small but necessary tasks. Modules are highly flexible extensions. Also unlike components, modules can be put at a variety of different places and multiple times in a single page. You can also use multiple modules in a single page. Modules are fairly simple to code and are very simple to configure.
The most noted example of a module would be a Login module that is widely used as a user login gateway. Other examples include Menu Boxes that surrounds main content area.
Plugins are mainly used for event handling in a website and are considered as an advanced form of Joomla extensions. The said events can be triggered by any core or extended Component or Module, after which a plugin that is registered with the Joomla CMS to handle such event is executed. There are five types of core events such as System events, Content events, User events, Editor events, and Contact events and thus different types of plugins are used to handle these different types of events. In addition there are Search plugins also that focus on searching aspects.
A typical example of a plugin would be quality checker or a spam checker used on user submitted articles or content. The function of automatically identifying the underlying keyword of the article and the density of that keyword can be achieved through a plugin along with accepting or rejecting the user submitted content.
Another useful feature of Joomla is that the core and even extended features of the CMS can be translated to any language through a special extension. This extension is known as Language extension and generally consists of a INI file that contains key/value pairs. Theses value pairs are used to automatically translate static strings from one language to another. This can be accessed by both core and extended components, modules, and plugins and can allow the site to be internationalized. The language pack can affect both administrator panel and the main website content.
Even though all five types of extensions are different in one way or another, the distinction sometimes gets blurred. There are many extensions available in the Joomla extension directory that can be used as a one or more type of extension. For example the Community Builder extension can be used either as an Plugin, or as a module, or even as a component. The main area of focus when searching an extensions should not be the type it is, but the function it would have to perform.