One of the strengths of Joomla is the many third-party extensions available for it. But with thousands of extensions available, it usually takes me longer to choose an extension than it does to install and learn it.
When selecting an extension, I look for:
- Open source license and unobfuscated code
- Actively maintained
- Active support, whether by developers or users
- A means of notification of security issues (e.g. feed, security mailing list, live update of extension)
- Integration with Joomfish or Community Builder if appropriate
- Localized into any required languages
- Good security record
Apropos the last point, perform a web search for “(extension name) security” and see what the security record is for the extension you are considering. Do the same for the extension’s developer. In my opinion, a good security record is just as important as functionality in an extension, and more important than ease of use or attractiveness.
Check the Vulnerable Extensions List for the extensions you are considering.
Once I have narrowed my choices down to one or two promising extensions, I install them on my local workstation and try them there. That way the production server is not at risk of things blowing up. Naturally you’ll want to be running something similar to what your remote host has, beginning with the same operating system (usually Linux or BSD) and ending with the same Joomla version.
Before I install an extension on my local workstation, I perform a manual backup to help me roll back in case of disaster.
Most extensions are installed in Joomla’s Extension Manager. This is found (in Joomla 1.5) at Extensions – Install/Uninstall – Install, or (for 1.7+) at Extensions – Extension Manager – Install. Use the first option, “Upload Package File”.
A few extensions have nonstandard installation instructions, so read any installation documentation before beginning. Such instructions might be on the project site, in the relevant entry in the Joomla Extensions Directory, or packed inside the downloaded zip as a README file.
If the extension provides a Joomfish content element plugin, it would be installed at Components – Joomfish – Content Elements – Install.
If the extension has a feed for security issues, add it to your preferred feed reader or Joomla’s control panel, even if it also appears in the extension’s own control panel: best to have all security announcements for all components in a centralized place. If the extension has a live update feature, enable it.
Document the process of installation and configuration so you won’t have to reinvent the wheel next time.
As always, ensure you have a recent backup before updating an extension.
A growing number of extensions can be updated by simply installing the latest version on top of the existing old version. Not all extensions allow this, so read the documentation before trying this.
Sometimes an updated extension will be disabled and you will have to enable it, in for example Extensions – Plug-in Manager.
One attempted update failed, leaving a broken extension. I uninstalled it and then reinstalled. The original configuration was lost, but since I had documented its configuration on initial installation, it was easy enough to reconfigure.
TROUBLESHOOTING AN EXTENSION THAT WON’T INSTALL
There was an error uploading this file to the server
Sometimes installing an extension will fail with an error message similar to “There was an error uploading this file to the server”. I see this most often when installing large extensions on shared hosting when the network is slow, so your first step should be to limit or disable anything on your end that uses a lot of bandwidth (Bittorrent clients, audio or video streams, etc.).
Failing that, install the extension manually. Upload the extension’s installer to Joomla’s temporary directory and unzip the extension there (unzip extension.zip). SCP and SSH are good for this. Unzipping the installer will create a directory, usually com_extension. Note its name and full path. Use the second option in Joomla’s Extension Manager, “Install from Directory”, providing the full path to the directory created when you unzipped the extension. Once installed, remember to delete the temporary directory.
See OS Training’s excellent article How to Upload Large Joomla Extensions for more tricks.
Missing admin menu entry
Joomla 1.7 sometimes fails to build the admin menu for a newly installed extension. You have this problem if:
- Upon installation you see both an error message such as “Error building Admin Menus” and a message indicating successful installation, and
- The extension does not appear in Joomla’s admin menu, but appending “&option=com_extension” to the base backend URL (e.g. http://example.com/administrator/index.php&option=com_extension) takes you to the extension’s administration page (naturally, replacing com_extension with the extension’s title)
If you have this problem, see this example of how to fix it.
Infinite loop detected
One attempted installation failed with the error message “JFolder::create: Infinite loop detected – Unable to create destination”. After wasting too much time I finally noticed that the extension I was trying to install was corrupted. Installing an uncorrupted copy worked.
EXTENSIONS I’VE FOUND INTERESTING
Everyone has a list of favorite extensions; mine are:
- Admin Tools is a security extension I add to all my Joomla installations
- Akeeba Backup is a backup and cloning component I add to all my Joomla installations
- JCE Editor is a superior replacement for the default TinyMCE editor
- Joomfish is a localization extension, allowing your site to appear in multiple languages
These notes refer to Joomla 1.5 through 2.5 and were last updated 21 February 2013.