Joomla customization vs extensions
Joomla is very flexible to extend it, so it’s always to prefer that extend joomla feature instead of hacking/customize directly into core module/component or code. One of reason that when any upgrade/updates and patches are released from joomla community our new extended feature will not overwrite.
Joomla Component:
Component are what we see in the ‘main’ portion of the page. Content elements or applications that are usually displayed in the center of the main content area of a template. This depends on the design of the template in use. Components are core elements of Joomla!’s functionality. joomla design such a way that at a time one component only load and run. Joomla core components are as bellow:
- Categories
- Articles
- Menus
- Modules (core modules – not third-party)
- Banners
- Contacts
- Messaging
- Newsfeeds
- Redirect
- Search
- Smart Search
- Weblinks
Joomla Module:
As contrast of component, joomla module can be display more then one at one page. It is use or intended to work as add-on or complement of component which actually make up element of sidebar, menu etc. so it’s mean modules is not a main element of a page as like component.
Joomla Plugin:
Sometime we need to use few line of code for whole website, in such case joomla give facility of plugin as extension. For example format a output of component or module, extend the results found in the core seach component.
Along with Joomla component, module and plugin use as extension, we have to consider in our mind below points as well when we are extending web application or websites.
Joomla Toolbars:
Joomla backend or admin panel use as set of standard toolbar buttons which probably we need to extend or modify.
Joomla List Screen:
Joomla backend have certain look for screens that list a row which we fetch from database/tables.
Joomla Standard Css Class and Function: Joomla provide facility to extend our feature as few list of CSS class for format and list of function which a use to create automatically checkbox, dropdown etc.
Joomla Database Object:
Actually joomla provide a common database object to access and manage data and that object also have some common functions to doing transaction with database. The beautifully part is it’s database independent. Even apart from common database object, joomla have standard database table class.tion
Joomla Menu Item:
In joomla we all know navigation is different from content. So we have to know how we need a give facility to administrator to link our content / component with menu ltem, if we miss such point then it’s possible to administrator miss content’s connection.
Joomla coding convention:
Actually joomla have standard coding structure to build new and extend existing component, module or plugin.
Joomla Configuration Paramater:
Joomla have common way to provide some configuration to our extended component, module or plugin.
Joomla Package and Distribution:
There is also common way to package whole bunch of code which include database.