Module Concept
I guess the best way to think of a module is as a mini application. There is no easy way of doing this lets get it out of the way now. People get very confused about Module Naming terminology.
A Module is a piece of code that isa mini application in Joomla the mini application has a name. example: banner module. Which shows ads for the component banner.
 
Now modules also depend on a grid type system that assigns the mini application AKA "Module" to a position on the grid. The above picture on the right shows the grid and the Banners module with its name. Modules in Joomla are assigned what's called a "Position Name" on the grid.
 Many modules can be assigned to the same position name. On the above image you see that the Footer position name is used by the Banner module and the Footer module. Have you notice that module Footer and the position name it was assigned? Yes there both called "Footer".
Now why do I bring this up? To be clear. The code tags used to render modules in Joomla templates look like this.

There are three parameters to Joomla module tags.
- Type
- Name
- Style
The parameter Name="footer" is the name of the position not the Module Name AKA mini application. Most first time designers at first think that the above tag "parameter Name=footer" is calling the Footer Module but its not. It's the position that there calling. Modules are assigned to the position names. Once you assign a position name to a module you can add the Module code tag to the template your designing and it will render.
Now I mention that you can assign many modules to one module position name. The module position name has a stacking order of assigned modules
 and its controlled via the module manager in Joomla's Back-end. I have not seen a limit to number of modules that can be assigned to a Module Position Name at this time.
A Module's Anatomy

A Module itself is made up of HTML PHP code etc. and it can have many parameters. Below are are some defaults but most modules also have custom or module specific parameters.
Type of Module: can almost be anything. Position Name: Its assigned a location on the grid. Data: the information output to the template and or back into a component an example would be a login module. Parameter: each module can have default and or module specific parameters configuration options. Assignment: to show and hide a module based on the Joomla menu system. Access Levels: show if the user is part of a group. Ordering: stacking order on a position name.
|