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.
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.
For example: com_content, com_registration
Admin head menu > “Components”
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.
For example: mod_banners, mod_mainmenu
Admin head menu > “Extensions” > “Module Manager”
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.
For example: content.searchbot, tinymce
Admin head menu > “Extensions” > “Plugin Manager”
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.
Admin head menu > “Extensions” > “Template Manager”
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.
Admin head menu > “Extensions” > “Language Manager”
Return to Absolute Beginner's Guide to Joomla!