Joomla extension types and how they are used.
Joomla functionality is normally extended through extensions. New extensions are added to Joomla by a simple installation process, and they add new features. Their frontend layout code could be overridden through the templates’ HTML override process.
Joomla can be extended primarily through four types of extensions.
Component
Module
Plugin
Templates (through overrides)
Components:
These are the major Joomla applications, as they comprise the main template content area of the site. Component pages are called through menus, and only one component can be displayed on a page at a time. A typical component’s functionality is managed through its backend. Through components, you can utilise the full power of Joomla and create really powerful web applications. Some of these are only meant for the backend and are not used at the frontend, like backup-related components like Xcloner, Akeeba Backup, etc.
Components are basically divided into two categories: native and third-party. Native components are created by the Joomla team and are included with the core Joomla installation, whereas third-party components are created by third-party developers.
Some of the most commonly used third-party components are:
Akeeba Backup (used for backup purposes)
Community Builder (community building and profiling)
JomSocial (a Facebook clone and social community)
JomFish (Joomla language and translation)
DJ Classifieds (a classifieds-related component)
virtuemart (ecommerce)
iSEO (onsite SEO)
RSForm (creating forms)
OS Property (real estate management)
RS Firewall (site security and spam removal)
and a lot more.
Components could be enhanced through modules and plugins, which I will cover next.
Modules:
Modules are chunks of code that are used to display specific content at specified positions on the site. These positions are defined in the currently used template.Some common modules used are:
Menus, login box, search bar, copyright text, news feed, latest articles, social sharing, Twitter and Facebook feed display, etc.
Some modules are component-specific, meaning they only work with their respective components. The show cart and search product-related modules, for example, are compatible with Virtumart; the form display module is compatible with RSForm; and the recent ads module is compatible with DJClassifieds.A module is managed through the backend.
Plugins:
These are the lines of code that are executed seamlessly and trigger an event, and they are also used to override existing code and thus change functionality. Whenever you make a search in Joomla, the search plugin determines which articles have to be displayed on the basis of the search term. Content related Plugins are used to prepare or transform content, like replacing specific text with a form. Plugin types and events are discussed in detail in the plugin development portion of the tutorial.
Templates:
Templates are not commonly treated as extensions, as normally they change the layout but do not override the core functionality. However, there are numerous Joomla template frameworks available today, such as Helix, T3, and others.Their templates come with complete libraries and offer so much more than just changing the layout. They also have some common built-in modules to make your life easier. I am basically a big fan of the helix framework.
Joomla uses the MVC framework, which separates layout and logic. So it is very easy to create a Joomla template according to your requirements and give your site a new look. Troubleshooting is also very easy, as you don’t have to mess around with complex logic-related code. Different templates can be used on the same site by using the menu assignment feature.
Languages:
Supporting multiple languages is a major feature of Joomla. A website in Joomla can easily be made multilingual to support different languages rather than just one. To support this functionality, you have to create a language pack for the respective language, which can then be installed and used on the site.