Chapter 6. Extending Joomla!

As you will recall from Chapter 1, “Content Management Systems and an Introduction to Joomla,” it’s hard to find a Joomla-powered website that has not added functionality beyond the basics with some sort of extension. The word extension collectively describes components, modules, plugins, and languages.

There are several hundred extensions available both free and commercially from third-party providers. You can find out more about them at extensions.joomla.org and www.extensionprofessionals.com.

Currently, most extensions work with the 1.0.X version of Joomla. Because it is so new, there are currently not many third-party extensions that run natively on 1.5. As it goes though its roadmap cycle of Beta to Release Candidate to Stable, we will hopefully see third-party extensions upgraded to work on the new version.

In this Chapter

In this chapter we look at some examples of core and third-party Joomla extensions. We also examine how they are installed and managed in Joomla.

  • What are extensions?

  • How do I install Joomla extensions?

  • Where can I get third-party extensions?

  • What are components?

  • What are modules?

What Are Extensions?

Extensions are installable packages that extend the core functionality of Joomla in some way. There are five types of extensions:

  • Components—A component is the most complex type of extension. It is some sort of mini-application that usually renders content in the main body (large middle column) of the page. The core content component (com content), for example, is the mini-application that shows all your articles in some way. Another example might be a forum component that shows boards, threads, and so on. Not all components are about content; some handle a complex function. For example, the registration component (com registration) handles user registration.

  • Modules—Modules are usually much smaller and less complex than components. They also usually appear around the edges of the main body, in the header, side columns, or footer and are small extensions that do small tasks. For example, the Latest News module shows links to the most recent articles that have been added to the site. Often, a module will work with a particular component. For example, the login form module allows site visitors to log in to the site.

  • Plugins—A plugin (formerly called mambot) is a special piece of code that can be used across the site and runs when a page is loaded. An example is the email cloaking plugin, which hides email addresses with JavaScript so spam robots cannot see them.

  • Templates—Templates control the graphical look and feel of the site. They usually include colors, graphics, and typography.

  • Languages—By installing a language pack, it is possible to internationalize Joomla to a different language. All of the words that are part of Joomla (like where it says “Read More”) will be displayed in the chosen language.

Installing Extensions

All extensions will come in the form of compressed zip files and are installed via the same process. To install, you simply use the Extension Manager.

Go to Extensions>Install/Uninstall. This will show the Extension Manager, as shown in Figure 6.1.

Extension Manager

Figure 6.1. Extension Manager

On the first tab labeled Install, there is a tool to upload the installation package (the zip file of the extension). When you browse to the file and upload it, Joomla automatically detects what type of extension it is and installs it. You will then be shown a screen that tells you the installation has been successful. Often, depending on the third-party extension being installed, you will also be shown some more details about the extension, such as set-up instructions or where to seek support.

Note

Note

If you have an error in the installation, the most common problems are permissions and ownership of folders. Joomla can’t write or create a folder needed for the installation of the extension. The easiest way to solve this is to use the FTP layer. This is set up in the Global Configuration.

The Extension Manager is also used to uninstall components. In Figure 6.1 you see tabs for Components, Modules, Plugins, Languages and Templates. If you click Components (Figure 6.2), you see a list of components that can be uninstalled.

Component Extension Manager

Figure 6.2. Component Extension Manager

Notice in Figure 6.2 that many of the components are grayed out. These are core components of Joomla that cannot be uninstalled.

Managing Extensions

Each type of extension except components has its own manager in the Extensions menu. The drop-down of the Extensions menu is shown in Figure 6.3.

The Extension submenu

Figure 6.3. The Extension submenu

Components has its own menu because of the complexity of a component compared to, say, a module.

The Module and Plugin Managers follow the same format (similar to the Article Manager). The Module Manager is shown in Figure 6.4.

Module Manager

Figure 6.4. Module Manager

The Template and Language Managers are slightly different mainly because you can only have one active at any one time. The Template Manager is shown in Figure 6.5.

Template Manager

Figure 6.5. Template Manager

Components

A component is a specialized mini-application that runs in Joomla. If you flip back to Chapter 1, we described that anything that is shown in the main body of a Joomla site (usually the main center column) is generated from a component. It could be a forum, directory, gallery, etc. You could argue that content is the component at the center of Joomla, one that is able to present content articles in the form of a blog or a table. Regardless, there are several components that are part of the core of Joomla.

Note

Note

Some components make use of modules as well as the component itself to achieve full functionality.

Core Components

The core components of Joomla are

  • Banner—A tool to rotate advertising banners on your site. The component is made up of a Banner Manager and a Banner module.

  • Contacts—By using this component, you can present a list of contacts on the site. A manager also has the ability to set categories for contacts. When linking to the component, you can link to individual contacts or a whole category.

  • Newsfeeds—The newsfeed component is a great way to effortlessly build relevant content for your site. It makes use of RSS technology. If another website has an RSS feed, you can present that feed on a page of your site.

  • Polls—If you want to increase the site visitor interactivity, polls are an easy way to do so. Polls are created using the Poll Manager and then presented using the Poll module.

  • Search—Joomla has a powerful built-in search function. Along with its corresponding module, it allows visitors to search all the articles of the site with keywords.

  • Web Links—Any web page can have links to other sites. The web link component takes this a step further by storing the links and showing a count of how many times they have been clicked. Its most useful feature is that it allows site users to submit links by creating a corresponding menu item. This type of tool is commonly called a directory.

  • Massmail—This tool allows emails to be sent to all registered users. It is a very simple tool and does not approach the functionality of third-party email components. It is difficult to ensure that emails sent conform to the CAN-SPAM act, but it is useful for sending out a quick email to a user group, such as administrators.

Third-party Components

One of the exciting things about Joomla is the huge range of extensions available for it. Joomla is unique in the open source world where open source GPL advocates and commercial vendors work side by side to grow the project. The two main repositories for third-party extensions are extensions.joomla.org and www.extensionprofessionals.com.

With more than 2,000 extensions, it’s impossible to provide any generalities on how they work. Each one tends to have a slightly different admin structure in the backend based on the decisions of the creator.

The following sections comprise a short list of 1.0.X extensions that I have found and have used time and again for my own sites and our clients at Joomlashack. The descriptions are quoted directly from the extensions directory. At Joomlashack we have used every one of these extensions at least 10 times (that was my threshold for inclusion) for individual projects. We have tested each and found them all to be “best of class” and have come to depend on them for our own and client projects. Some of them are commercial, and some are GPL. If you find yourself using a GPL extension, visit the creator’s site and see if there is a donation feature to donate a pizza!

Jom Comment (Comments)—http://www.jom-comment.com

Jom Comment is the comment system chosen by the pros! A powerful, Ajax-based comment system for your Joomla website. Jom Comment ensures comments appear slick and smooth with Ajax while saving server bandwidth. Protect your website from unwanted spam with powerful Captcha image challenge. Templatize your entire comment module to look and feel like the rest of your website. Jom Comment is easy to use and install and has superb developer support. If you’ve got AkoComment or ComboMax data, just import them to Jom Comment. You’ll be up and running in no time.

joomlaXplorer is a file and FTP manager. It allows you to edit files, delete, copy, rename, archive, and unpack files/directories directly on your server. You can browse directories and files; edit, copy, move, and delete files; search, upload, and download files; create new files and directories, change file permissions (chmod), and more. This script is based on QuiXplorer 2.3.1.

Community Builder (User Management)—http://www.joomlapolis.com/

The Community Builder suite extends the Joomla user management system. Key features are extra fields in profile, enhanced registration workflows, user lists, connection paths between users, admin defined tabs and user profiles, image upload, frontend workflow management, and integration with other components like PMS, Newsletter, Forum, and Galleries. Release 1.0.2 stable is compatible with Joomla 1.0 and 1.5 Beta 1 and mambo 4.5.0-4.6.1. See announcement on home page.

SlideShowPro for Joomla (Gallery)—http://www.joomlashack.com

SlideShowPro is a popular Flash-generated image gallery, which can be loaded into Joomla by use of this module. The module allows users to control all the normal Flash component settings within the administration of Joomla The module may be duplicated to run more than one instance using the same SWF under a completely different set of parameters. This module requires Flash MX or greater to generate and requires the SlideShowPro Flash component from www.slideshowpro.net. FLA source help file and module is bundled with the module.

VirtueMart (Shopping Cart)—http://virtuemart.net/

VirtueMart is a complete shopping cart solution (formerly known as mambo-phpShop) for Joomla. It’s popular, widely used, and can also be used as a catalogue. With its powerful administration tool, you can handle an unlimited number of categories, products, orders, and customers.

Joomap is a sitemap component for Joomla that shows the normal Menu Structure, Content Categories, Sections, and Virtuemart Categories in a hierarchical list. A plugin system and translation support make it easy to expand the range of supported content and localization! The new version also supports the generation of a Google Sitemap conformant XML list.

Mosets Tree (Directory)—http://www.mosets.com/tree/

Mosets Tree is a directory extension for Joomla. This is the extension that powers the Joomla Extensions Directory at http://extensions.joomla.org. You can use Mosets Tree to run a complex Yahoo! style directory directly inside your Joomla website. Mosets Tree is designed to handle any data that requires a directory structure such as a Business Directory, Links Directory, and Scripts Directory.

perForms is the forms component for Joomla. perForms aims to be simple and fast: Create forms in seconds, capture data to your database, email data on submit, view captured data in administrator, full CAPTCHA support (with com_securityimages), file upload security, captured data can be downloaded in the form of a spreadsheet for analysis, utf-8 Native, and 14 languages. perForms includes a plugin (mambot) so you can embed your forms directly into Joomla content, and a Module showing response data in summary or report form.

Remository (File/document Manager)—http://www.remository.com/

A neat file remository with a good range of functions and an attractive user interface. Close to release of version 3.40 with a range of advanced facilities—Remository 3.40 RC2 is currently available from the Remository site.

JCal Pro (Calendar)—http://dev.anything-digital.com/

JCal Pro is a W3C-validated events calendar component with a gorgeous, CSS-based frontend display. Feature highlights include Event and Category import from ExtCalendar, native Joomla permissioning for event creation/management, WYSIWYG event descriptions, administrative theme installation and management, backend event management, native Joomla permissioning for event viewing (i.e. private categories), integrated search mambot, and feature-rich mini-calendar and latest events modules.

Modules

Modules can be thought of as the little brother of components. They are much smaller but still add some sort of functionality or interactivity to a page. As just discussed, a component might actually have several modules bundled with it. For example JCalPro, a calendar component, has a module that shows a small version of the calendar in a sidebar.

Module Display

All modules have some common options available for how they are presented (see Figure 6.6).

Module details and menu assignment options

Figure 6.6. Module details and menu assignment options

At the top left side are the module details:

  • the title

  • whether enabled/published

  • the position (as determined in the template)

  • the order among modules in that position

  • the access level

These are fairly self-explanatory. The one that is of particular note is access level. It is possible to create almost completely different versions of your website for different user groups, such as guests, registered users, and administrators.

The bottom left shows the menu assignment and is potentially harder to understand. Chapter 5, “Creating Menus and Navigation,” introduced this complex idea of assigning modules to menu items rather than pages.

This controls which pages the menu will appear on. Now remember that a “page” only exists if a link points to it. So the list here is really a list of menu links rather than pages. You can select All, None or Select from List. You can also CTRL+click to select multiple pages (I mean menu items!).

In Figure 6.6, the Main Menu module is presented on all of the pages of the site.

Obviously, figuring this out can quickly become confusing. I recommend actually resorting to pen and paper and mapping out what your main pages will look like and what modules will be located on those pages.

Usually modules are placed and controlled by the site administrator, considering they are site-wide.

Core Modules

Like components, a number of modules exist in the core default installation of Joomla. They can be split into several types: core content modules, core component-related modules, and core miscellaneous modules.

Core Content Modules

Joomla has a number of modules that are part of the default installation.

  • Archived Content—This module shows a list of months that link to all archive content on the site. As mentioned previously, archiving content on your site has advantages and drawbacks. The main drawback is that the URL is changed.

  • Latest News—The Latest News module is very useful. It displays a linked list of the most recent content items created on the site. Although called Latest News, which is one of the categories in a default install, it can be set to only take content from specific sections or categories. This is a great way to dynamically show recently added content on your home page.

  • Newsflash—Next in the series of modules that show content dynamically (Latest News and Most Read), the Newsflash module shows random content items. Slightly different from the other two, it can show the intro text of the content item as well as just the title. Again, it can show content from any section or category, not just the Newsflash category, one of the default categories of a Joomla install.

  • Random Image—Another content presentation module, it’s the equivalent of the Newsflash module but is for images.

    Tip

    Tip

    With some careful planning in the design of the template, it’s easy to have the Random Image module actually be the header of your site. This has the effect of showing randomly alternating images as your header.

  • Custom HTML—This module accepts XHTML content through an editor. This makes it one of the most flexible of all the modules. As well as text/graphics, you can insert web-based code, like JavaScript or XHTML.

  • Most Read Content—This is another useful module to easily show dynamic content; it shows a linked list of the most popular content currently on your site. As with the Latest News module, it can show content from specific sections and/or categories.

    Note

    Note

    There is currently no module in the core of Joomla that combines the ability to show intro text but not have it be random. There are third-party modules that achieve this, but they are not completely reliable.

  • Related Items—This module shows a linked list of all items related to the one currently being displayed. Joomla decides whether a content item is related based on what has been entered in the metatag keywords for that content item. Note it’s not possible to limit the number of items displayed as it is in other modules. We talk more about metatags at length in Chapter 8, “Getting Traffic to Your Site.”

  • Sections—Shows a linked list of all sections of your site. Unfortunately there is no equivalent to show categories.

Core Component-Related Modules

The default Joomla installation also includes a number of modules that work with core components.

  • Syndicate—The module counterpart to the syndication component. It is an RSS feed of the Frontpage component. This means that it does not matter where the syndicate module is; it will only provide a feed to content published by the FrontPage component.

    Tip

    Tip

    The Frontpage component doesn’t actually have to be on the front page of the site. Confusing, I know, but Joomla uses whatever link is first in the mainmenu as the home page. You could actually move the link to the Frontpage component deeper into the site. This is handy for blogs you don’t want to show on the home page.

  • Poll—A companion to the poll component, this module actually shows the poll questions.

Core Miscellaneous Modules

Last, there are a number of modules that provide other functionality to the site.

  • Login—A critical module for most Joomla sites. It displays a simple form for users to log in or to create a user name/retrieve password. Note that a log in form can also be linked to from a menu to display on the main body. The module is not used in this case.

  • Menu—Another vital module. The main menu module shows menus of the site.

  • Who’s Online—A simple module that shows the number of registered users and guests currently at the site.

  • Statistics—Shows simple visitor stats with the option of showing more technical server stats.

  • Feed Display—This module’s ability to show an RSS feed makes it the module equivalent of the Newsfeed component, which can show a feed in the main body.

  • Wrapper—This module will load an external page into a module, much as the wrapper component does for the mainbody. Its usefulness is limited in a module, as it can only load small amounts of content as modules are usually placed in columns and other smaller places of the page.

Third-party Modules

Like components, a diverse collection of third-party modules has been created for Joomla. As I described for components, we are still in a transition period, but here I have outlined some modules for 1.0.X that I have “tried and tested.”

JPG Flash Rotator 2 (Image Rotator)—http://www.joomlashack.com

JPG Flash Rotator 2 (X)HTML Flash module allows you to select from a series of images for use of a fading slideshow/banner on your Joomla site. Here are its features: Validates (X)HTML, Supports WMODE=Transparent, Displays up to 5 different Flash transitions (Circular, Fluid, Background Fade, Cross Fade, Flying Squares, Linear Blinds), Random display option, Individual frame linking, Fully integrated backend administration (no knowledge of Flash needed), Custom movie size, Customizable background color, and Tab navigation on/off feature.

Jumi is a universal multipurpose module and plugin for Joomla and Mambo. With Jumi you can include php html JavaScript scripts into the modules position and content articles, you can include thousands of your scripts into the modules and content articles with just one module and/or plugin installation, you can even include static html or txt pages into your pages without using wrapper component, and you can easily set up, change, and pass to the php script unlimited number of argument values and thus modify the behavior of the content.

AdSense Module—http://www.joomlaspan.com

The best simple solution for implementing Google AdSense ads in Joomla ADVANCED FEATURE: Option to block certain IP numbers from seeing Google Ads. Now you can block those “unsafe” clicks that could potentially disable you from Google AdSense! We suggest that you insert your own IP number there, to block your own accidental clicks, except when you want to test the appearance of the ads on your page. When an IP is blocked, you can assign some other ad to be shown there. It also has chameleon codes that can make the ad colors automatically.

As you can see, I tend to use far more components than modules. This is attributed partly to the fact that often the components are bundled with several modules that work with them.

Plugins

Plugins offer some form of site-wide functionality. Most Joomla users will find that they do not need to manage plugins as often as components or modules.

Core Plugins

  • Authentication—Joomla has several plugins that can be used to allow authentication (login) integration with different systems. Included are Gmail, OpenID, and LDAP.

  • Content-Code Highlighter—This plugin will highlight code in content (when you use the <cpre> tag) according to GeSHi standards.

  • Content-Email Cloaking—This plugin converts any email address written in an article to JavaScript. This makes it undetectable by spam email harvesters.

  • Content-Load Modules—This plugin allows you to load a module into a content article by putting [loadposition user1] where you want the module to load.

  • Button: Image, Pagebreak and Readmore—This plugin controls the images, readmore, and pagebreak buttons in the article editor.

  • Editors—There are three editors shipped with the Joomla core: No Editor, TinyMCE, and XStandard Lite. Other more advanced or commercial editors can be installed.

  • Search—This plugin controls the indexing and thus searching of content.

  • System–Legacy—This plugin will allow the possibility to run extensions (templates, components, and modules) that are coded for 1.0.X to run on 1.5. Note that an extension developer will have to have upgraded his code to run on 1.5 legacy from 1.0.X.

  • System–Cache—This plugin controls the new caching features of 1.5.

  • XML-RPC—These plugins allow for the administration of a Joomla site remotely.

Third-party Plugins

As with components and modules, many third-party plugins exist. The one I have used most consistently is an editor plugin. Although there are currently no editors available for 1.5, I have frequently used a commercial one for 1.0.X.

WysiwygPro (Editor)—http://www.wysiwyg-pro.com

WysiwygPro replaces the default editor. WysiwygPro is a commercially supported WYSIWYG editor with advanced features, such as an image and document manager and a link manager, so you can easily create links to pages and articles. You can control every aspect of WysiwygPro from the administrator panel where you can set which buttons and tools should be available, which fonts and classes can be used, etc.

Plugin (Mambot) for displaying one or more googlemaps within content-items of Joomla. You can set width, height, latitude, Longitude, zoomtype, initial zoom level, text displayed in a marker and of course the Google api key. These parameters can also be set as default in the administrator of Joomla at the plugin. Version 2.8 is available and has new features like show a kml-file, use mousewheel zooming, and let a user enter his address and show a route to/from your location in maps.google.com.

Templates

Chapter 1 examined how a template controls the look and feel of a Joomla site. In Chapter 9, “Creating a Pure CSS Template,” we look in much more at detail how to create your own template.

Core Templates

Joomla currently ships with three core templates:

  • Khepri—This is the administrator template in the backend. Yes, you can make new administrator templates to customize the look and feel of the administrative interface!

  • Milkyway—This is the default template.

  • Beez—This is a special proof of concept template that serves as an example of a template that uses the new template override feature in 1.5. We briefly discussed these features in Chapter 9.

Third-party Templates

There are thousands of templates available for Joomla 1.0.X. With the launch of 1.5 as a Release Candidate in the summer of 2007, more and more 1.5 templates are becoming available. Perhaps the easiest way to find a template for your site is to Google “Joomla 1.5 templates” or “free Joomla 1.5 templates.”

Third-party template providers are of two types, clubs and per template. Clubs charge an annual fee and are good if you like to frequently update your site design, considering templates are generally added monthly. Per template providers offer templates on an individual basis and are usually slightly cheaper.

Summary

Joomla has an extension for every possible need for a website. They are available from a variety of places, for a variety of prices. Many are licensed under the GPL and are available for free. Here are some recap points for this chapter:

  • Joomla is supported by a diverse community of developers that create the critical extensions needed to increase the basic functionality of Joomla.

  • Many of these extensions are available for free under a GPL license; others are commercial.

  • Specific details about the functionality of extensions can be found on the official help site at help.joomla.org.

  • A short list of extensions that have been tested and used by the author are available in this chapter.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.238.70