Joomla is a very user-friendly, feature-rich, content management system. You can use Joomla to build your websites and portals. If you are making use of Joomla for a full-fledged website, you might not have all features that you need readily available in Joomla. Or, in other words, you may need many more features than the ones available to you in Joomla. You can make use of Joomla extensions for this purpose.
A Joomla website can have five types of extensions. They are Components, Modules, Plugins, Templates and Languages. There are different features or functionalities that each of this extension is supposed to handle.
The largest and the most complex extension in a Joomla website is the Component. In fact they themselves are small applications within your website. A component consists of two parts – Administrator part and Site part.
When a Joomla page loads, it calls a component gives the webpage the main page body. Components are definitely, the most important portions of your webpage, because, they are driven by a menu item. In fact each menu item runs a component.
Modules are much more flexible extensions when compared to components. These extensions are used for page rendering and provide small blocks of functionalities in various positions. Modules in Joomla are linked to components such as the “latest news” module which links to the com_content. It displays links to the latest content items.
Modules in Joomla are usually known as “boxes”. These boxes are arranged around a component. The login module is an example for this. The footer is also another module. In Joomla, you can assign modules for each menu item. Also, you can decide if you want to show or hide your login module, based on the component (menu item) that is used. It is not mandatory that modules should be linked to components. They can even remain as just static HTML or text, without being linked to anything.
Plugins are much more advanced, and they actually act as event handlers. An event can be triggered at any part of execution of Joomla, like component, module or core. When an event is triggered, plugins are made to handle the event.
Templates represent the design of your Joomla website, and help to provide a new look and feel to your website.
Languages are the simplest and most basic extensions in Joomla.
There are several extensions that are available with Joomla or which can be bought from service providers like JV-Extensions, to make your website look, feel and behave the way you want it to.