Out of the box, Joomla! does a great job of managing the content needed to make your Web site live. But for many people, the true power of Joomla! lies in the application framework that makes it possible for developers all around the world to create powerful add-ons that are called Extensions. An Extension is used to add capabilities to Joomla! that do not exist in the base core code. Here are just some examples of the hundreds of available Extensions:
- Dynamic form builders
- Business or organisational directories
- Document management
- Image and multimedia galleries
- E-commerce and shopping cart engines
- Forums and chat software
- E-mail newsletters
- Data collection and reporting tools
- Banner advertising systems
- Paid subscription services
- and many, many, more
You can find more examples over at our ever growing Joomla! Extensions Directory. Prepare to be amazed at the amount of exciting work produced by our active developer community!
Types of Extensions
There are five types of extensions:
A Component is the largest and most complex of the Extension types. Components are like mini-applications that render the main body of the page. An analogy that might make the relationship easier to understand would be that Joomla! is a book and all the Components are chapters in the book. The core Article Component (com_content), for example, is the mini-application that handles all core Article rendering just as the core registration Component (com_user) is the mini-application that handles User registration.
Many of Joomla!’s core features are provided by the use of default Components such as:
The “Banner” component allows the user to manage banners by Categories and Clients. The “Banners Manager” has three tabs, “Banners,” “Clients,” and “Categories.” Each banner is managed individually with various parameters for essential information such as “Impressions Purchased” and “Click URL.”
The “Contacts” component allows the user to manage a Contacts directory with regard to the contacts within the web site.
The “Newsfeeds” component enables the most recent articles from external web sites feeds (e.g. RSS) to be linked to for further reading.
The “Polls” component displays a list of all active (published or unpublished) polls on your site. “Polls” are easily managed with parameters such as “Lag” (time between votes) and “Options” for which visitors may vote.
The “Search” component provides statistics on searches performed using the Joomla! Search Plugin. The component provides the statistics as a simple list containing “Search Text” compared to “Times Requested,” and by default sorted by “Times Requested.”
The “Weblink” component lists and provides management controls for controlling Web Links displayed in the Front-end of the web site.
A Component will manage data, set displays, provide functions, and in general can perform any operation that does not fall under the general functions of the core code.
Components work hand in hand with Modules and Plugins to provide a rich variety of content display and functionality aside from the standard Article and content display. They make it possible to completely transform Joomla! and greatly expand its capabilities.
A more lightweight and flexible Extension used for page rendering is a Module. Modules are used for small bits of the page that are generally less complex and able to be seen across different Components. To continue in our book analogy, a Module can be looked at as a footnote or header block, or perhaps an image/caption block that can be rendered on a particular page. Obviously you can have a footnote on any page but not all pages will have them. Footnotes also might appear regardless of which chapter you are reading. Similarly Modules can be rendered regardless of which Component you have loaded.
Modules are like little mini-applets that can be placed anywhere on your site. They work in conjunction with Components in some cases and in others are complete stand alone snippets of code used to display some data from the database such as Articles (Newsflash) Modules are usually used to output data but they can also be interactive form items to input data for example the Login Module or Polls.
Modules can be assigned to Module positions which are defined in your Template and in the back-end using the Module Manager and editing the Module Position settings. For example, “left” and “right” are common for a 3 column layout.
Each Module is assigned to a Module position on your site. If you wish it to display in two different locations you must copy the Module and assign the copy to display at the new location. You can also set which Menu Items (and thus pages) a Module will display on, you can select all Menu Items or you can pick and choose by holding down the control key and selecting multiple locations one by one in the Modules [Edit] screen
Note: Your Main Menu is a Module! When you create a new Menu in the Menu Manager you are actually copying the Main Menu Module (mod_mainmenu) code and giving it the name of your new Menu. When you copy a Module you do not copy all of its parameters, you simply allow Joomla! to use the same code with two separate settings.
The “Archived Content” module allows the positioning of a display of Content Items that have been Archived by a Publisher or above. The Content Items are available behind a Month/Year directory list.
Banners and Feed
Both the “Banners” and “Feed” modules are the front-end display mechanism for their
respective components. Both can be configured to display specific items on specific pages.
The “Custom HTML” module allows the creation of a custom module. “Custom HTML” modules may contain any HTML based content, including text, images and links.
The “Breadcrumbs” module allows the addition of breadcrumbs to the websites front-end.
Breadcrumbs are a navigation aid commonly used in user interfaces. The breadcrumbs give users a way to keep track of their location within the web site.
The “Footer” module shows the Joomla! Copyright information in the following form.
“Copyright © YYYY [Site Name Here]. All Rights Reserved.”
“Joomla! is Free Software released under the GNU/GPL License.”
The “Login” module displays the required fields to login, without navigating to a new page. Default visible fields include “Username,” “Password,” and “Remember Me.”
The “Menu” module displays a menu that is defined from within the Menu Manager. All Joomla! web sites have a “Main Menu” which cannot be deleted. The “Menu” module allows new menus to be displayed in other positions.
Most Read&Latest News
Both the “Most Read” and “Latest News” modules display a list of links to either the most read articles or the most recently added articles.
The “Newsflash” module displays Content Items from a specific Section/Category list. Standard module parameters such as “Menu Assignment” and “Details” are available.
The “Polls” module is the front-end display mechanism for the “Polls” component. Together, the “Polls” module and component can be configured to show specific polls on specific pages.
The “Random Image” module displays a random image from the contents of a specific image folder. This folder is set via the parameters dialogue. Standard module parameters such as “Menu Assignment” and “Details” are available in addition to certain “Advanced Parameters.”
The “Related Items” module utilises the meta-data associated with each piece of content. The module will display content items with the same keywords, and therefore of a similar subject, giving the user added value to the amount of detail that are able to obtain from a web site.
The “Search” module provides the user with the ability to instantly perform a basic search from their current location and to be taken directly to the results. This removes the need to navigate to a search dialogue.
The “Sections” module shows a list of all Article Sections configured in the your web sites
database. If the parameter “Show Unauthorised Links” is set to No, the list will be limited to the Sections the User’s access level permits them to see.
The “Statistics” module displays a basic list of information about the server and Joomla!
Installation. Information displayed includes Server OS, PHP Version, MySQL Version, Time, Caching, GZIP, Members, Content, Weblinks, and Content View Hits.
The “Syndicate” module displays a pictorial list of all the Feed types that are available for the web site. The module works in conjunction with the Syndicate Component where the actual feed details are configured.
The “Who’s Online” module provides a basic display of the number of Guests (Unregistered Visitors) and how many members (registered users that are logged in) are connected to the web site at the time the web page was queried.
The module can be set to display the names of the Members who are logged in.
The “Wrapper” module wraps another web page directly into the website at a specific location determined by the module position. The web page is inserted as an inline frame into the web site layout template.
One of the more advanced Extensions for Joomla! is the Plugins. In previous versions of Joomla! Plugins were known as Mambots. Aside from changing their name their functionality has been expanded. A Plugin is a section of code that runs when a pre-defined event happens within Joomla!. Editors are Plugins, for example, that execute when the Joomla! event onGetEditorArea occurs. Using a Plugin allows a developer to change the way their code behaves depending upon which Plugins are installed to react to an event.
Authentication (Joomla!, LDAP, OpenID, GMail)
The “Authentication” plugins add different form of user authentication to your site.
The Joomla! Authentication plugin involves initially registering at the web site and then
confirming your identity through a confirmation email.
The OpenID and GMail Authentication plugins use pre-existing databases to authenticate the user. By signing in with a GMail or OpenID account, steps will be eliminated from the registration process.
By default, only the Joomla! Authentication plugin is enabled.
The “Cache” Plugin provides page caching functionality. This reduces server load and lag.
Code Highlighter (GeSHi)
Editors (TinyMCE 2.1&XStandard Lite for Joomla!)
Both the TinyMCE 2.1 and the Xstandard Lite for Joomla! plugins are WYSIWYG (What You See Is What You Get) editors. They allow for the creation of Content Items and editing descriptions among other tasks.
The “Legacy” Plugin adds Legacy support for Joomla! 1.0. This Plugin allows existing
components, mambots, templates and modules to function in Joomla! 1.5.
By default, the “Legacy” Plugin is disabled, but can be enabled if required.
Editors-XTD (Image, Page break, Read more)
These Plugins add important functionality to the front-end for viewing content and the back-end for enabling and configuring this functionality.
The Image Editor-XTD Plugin displays a button to make it possible to insert images into an Article. The button causes a popup to be displayed allowing you to configure the image’s properties, and to upload new image files.
The Page break Editor-XTD Plugin provides a button to enable a page break to be inserted into an Article. A popup allows you to configure the settings to be used, such as “Title.”
The Read more Editor-XTD Plugin enables a button to be available that allows you to easily insert the “Read more…” link into an Article.
The “Search” Plugin adds the functionality of a reader rating system to the Content Items in the Front-end of the web site. This is the sequence of 5 image objects that are “lit up” in accordance with the selections made by the Users in the Front-end.
By default, this Plugin is not enabled.
Search (Categories, Newsfeeds, Sections, Contacts, Content, Web links)
The various “Search” Plugins enable the Search component to search all types of content on your website. The different plugins are for each type of content, allowing the enabling and disabling of searching the different types of content.
The “SEF” Plugin adds Search Engine Friendly functionality to the URL links of content items. It operates automatically once published and enabled in the Global Configuration. The plugin operates directly on the HTML code and does not require special tagging to be added by a user.
XML-RPC (Blogger API&Joomla! API)
The “XML-RPC” (Extensible Markup Language – Remote Procedure Call) Plugin adds XML-RPC functionality to Joomla!
The “XML-RPC Blogger API” allows third party applications, such as w.bloggar, to talk to Joomla!, giving the user the ability to remotely edit, add, delete and publish content items.
The “XML-RPC Joomla! API” adds further Joomla! specific functionality through compliant third party applications.
New to Joomla! 1.5 and perhaps the most basic and critical Extension is a Language. Joomla! is released with multiple Installation Languages but the base Site and Administrator are packaged in just the one Language en-GB – being English with GB spelling for example. To include all the translations currently available would bloat the core package and make it unmanageable for uploading purposes. The Language files enable the entire User interfaces both Front-end and Back-end to be presented in the local preferred language. Note these packs do not have any impact on the actual content such as Articles.
More information on languages is available from the Joomla! help site: Language Packs and Localised Releases http://help.joomla.org/content/view/1651/243/
A RHUK Milkyway
The “RHUK Milkyway” template is the default template for a Joomla! Installation. The clean
design of this template makes it very lightweight and fast.
The template has three parameters for setting the “Colour Variation,” “Background Variation,” and “Template Width.”
The “Beez” template is a template that has been designed with particular attention to the
standard conformable code, accessibility and flexibility.
This template is an example to demonstrate the new accessibility features in Joomla! 1.5. It
serves as a basis and can be modified and extended as much as you wish.
The next article will discuss about Joomla Administration.