Re: difference between module and component (completely clueless newbie) Only the tip of the iceberg...
The entire component / module naming scheme can get very confusing, especially for someone migrating over from another CMS. Mambo 5.0 appears to be taking the TYPO3 approach and calls eveything an element in the same way that TYPO3 calls everything an extension. The Nukes and XOOPS call everything a module, even though they support both core and module blocks which add some confusion to their own jargon.
Here are some other points to consider...
0) A frontend component usually appears on the page where the mainbody placeholder (API call) is positioned. A template designer has full control over where that placeholder is located on a page. It does not necessarily have to be positioned in the center of a template. It could be positioned on the left, right, center, top, bottom or whereever.
1) Most components have an administrative backend that accesses dynamic data (i.e., content of some sort stored in a database), although this is not always the case. For example, the Jinzora component has is a frontend component with some frontend administrative features. It's also possible to have components that are only accessible from the backend on Mambo.
2) Some components have a frontend and a backend component for maintaining and rendering data. A forum or store are good examples of these.
3) Some components have a backend component with a module as the frontend. In this case, the component is usually used to configure options associated with the module appearing on the front page. The Weather component and module are good examples.
4) Some components, called superpacks, consist of one or more components with or without a suite of modules. For example, the upcoming Mamcom component has a frontend component, backend components, and numerous frontend modules.
5) Saying that a module only resides on the side of a template is a bit vague because modules appear in a template based on the location of the API calls (placeholders) postioned on a template by its designer and also based on the assigned placeholder positions made with Module Manager. The API calls can be positioned independently anywhere on a template regardless of the name associated with the API call(placeholder).
The position within a template where API calls (placeholders) are inserted can really confuse a new user. These placeholders have names like left, right, center, top, bottom, user1, etc. However, a template designer can completely ignore the fixed naming scheme and do things like positioning the right column placeholder on the left next to the left column placeholder and place the center on the right or vice versa. For an example, take a look at David Doaust's neat Tangerinedream or CafeMambo designs. The top could appear on the bottom and the bottom could appear on the top. Or the top could appear on the bottom with the bottom placeholder and vice versa. Other placeholders can be positioned in other locations on the screen along with the above mix. Mambo templates are so fluid in this regard that it makes a lot of sense to call them and just about everything else on a page an 'element' of that template.
The Module Manager in admin determines which modules are assigned to which placeholder and when they should appear (based on the components currently displayed). Thus a module might be assigned to appear on the left side of the screen (left placeholder) only when a specific selection of component are displayed.
To further complicate all of this, PHP code can be inserted in a template to control where certain placeholders can appear conditionally based on other criterion.
Also, Mambo can support sub_templates using one of the many sub_template hacks. Thus, different sub_templates could have placeholders postioned in other locations that are not the same as the main template.
In the future, the names components, modules, superpacks, etc. may still exist but only as developer jargon. They need to be part of the technical intricaicies of Mambo that most users have little interest in knowing about.
The explanation above is all further reason for calling everything a element. The distinction between the objects appearing on a page and where those options appear on a page is extremely blurry because the template designer and webmaster have complete control of where those elements appear, when they can appear, under what conditions they can appear, etc. |