Unless you understand the difference between a module and a component, you will find it very difficult to administer your Joomla installation. This article will explain the difference between modules and components and give examples of the usage of each of them.
Modules
Modules are usually small pieces of functionality designed to present information in your site. They can appear a number of times, on a number of pages in various positions. On the contrary components are a full blown application, usually quite complex and are to the main body if a page. Also each module can be viewed in various pages, and the position of each module can be easily changed. You are allowed to select the menu items where a module is displayed. A good example of the usage of this functionality is targeted advertising. If your site has various sections, you can create module for each section. Each module will contain a targeted advert for the section. Now instead of showing all the modules, all the time, you customise the visibility of the module such that each advert is displayed only in the relevant menu links. Below you can see a screenshot of how to choose the menu items where a module is displayed. The module is displayed in the highlighted menu items only.
Typical examples of standard Joomla modules are the following. As we can see the function of each of the modules mentioned is quite restricted.
Main / User / Top and other menus
Latest News
Popular Articles
Polls
Login Form
Syndication Details
etc...
3rd Party Modules include
Modules for displaying AdSense code
Modules for displaying featured articles
Modules for rotating images / scrolling images etc.
Installed modules can be found in the Modules > Site Modules menu, or Installers > Modules. Configuration of modules is typically very easy, and is done by clicking on the module in Site Modules page.
Components
On the other hand, a Joomla component is typically more complex, with extensive functionality and capabilities. A component can only be displayed in the main area of a page, and can only be displayed in a single page (usually). Links to components are usually done by creating menu items as shown in the image below. Components usually have a particular page or pages for their configuration.
Standard Joomla Components
FrontPage component - this is used to display the contents in the frontpage. One can decide how many items to show in the frontpage, in how many columns, how many articles to have an intro only or not and various other options. To place a content item in the frontpage, the frontpage option must be checked on.
WebLinks - this is a component where the user can configure different link categories and add items to each category.
Banners - allows a Joomla website to create and display banners for advertising purposes
3rd Party Components
Mafia Icons - a component which is used to turn favicons into ads.
Mafia Headlines - this component is used to give google XML sitemaps for Google News and Google Search Engine Crawler.
JoomlaCloner - allows you to backup and restore your Joomla website
Image Gallery Components - various image gallery components exist for Joomla
The Joomla Extensions site lists an extensive number of free and commercial templates. There are also reviews and voting mechanisms to help you decide exactly what extensions are best for your needs. Also the Components section of this site, describes a number of extensions which we have found to be very useful.
Warning: 3rd party extension may compromise your site's security. Always make sure that your code comes from a trusted source.
Some people want to call joomla out for components not being SEF but did you know, its not joomlas fault that the person who coded the component did not use the router that makes the component sef?
Routing - Joomla! Documentation - http://docs.joomla.org/Routing Joomla Routes and SEF - Joomla! Documentation - http://docs.joomla.org/Joomla_Routes_and_SEF
API Reference Project - Joomla! Documentation - http://docs.joomla.org/API_Reference_Project Using the installer API to support package installation - Joomla ... - http://docs.joomla.org/Using_the_installer_API_to_support_package_installation
How to use the database classes in your script - Joomla! Documentation - http://docs.joomla.org/How_to_use_the_database_classes_in_your_script Routing - Joomla! Documentation - http://docs.joomla.org/Routing
Joomla 1.5 API http://api.joomla.org/
You can find all the above at http://docs.joomla.org/Category:Development
Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present lots of data to the user, one often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface do not impact the data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller. It is common to split an application into separate layers: presentation (UI), domain, and data access. In MVC the presentation layer is further separated into view and controller. MVC encompasses more of the architecture of an application than is typical for a design pattern.
Available extension parameter types and how to use them When you create an extension (component, module, plugin or template) you can implement parameters in the .XML file. With this parameters you can set options, and use them in the main file, the .PHP file. There are 20 extension parameter types available in Joomla! 1.5. You can use them easily and in this document you will find a description for all of them. You can also add your own parameters, but this will not be described in this article.