I recently had to dig up how to add a custom admin Quickicon (the icon links on the left side of the Administrator section’s control panel) in Joomla 2.5. In previous versions, I’d just built a custom admin module for each icon. Now, there seems to be a somewhat easier way.Adding an icon to the main list is a bit less straightforward. If you look in the default module:


…you’ll see that the whole list is being generated and wrapped in a div with class=”cpanel”. What we want to do is add our own custom icon to the list before this happens. In the helper.php file, see the modQuickIconHelper::getButtons() method for details.

Instead of creating a new admin module, we need to build a custom plug-in that adds additional icons to that list before it is output. Joomla is already doing this in recent versions, and you can find examples here:


Chances are, these examples are more complicated than you need since they’re using Ajax to check the version/update status of Joomla or your installed extensions. Here is a simplified example plugin:

Download mycustomicon.zip Example Plugin »

Inside the zip archive, see the main plugin file “mycustomicon.php”:

<?php defined('_JEXEC') or die;

class plgQuickiconMycustomicon extends JPlugin
    public function onGetIcons($context)
        if (
            $context == $this->params->get('context', 'mod_quickicon')
            return array(array(
                'link' => 'index.php?option=com_content',
                'image' => 'header/icon-48-component.png',
                'text' => 'Quickicon Example',
                'id' => 'plg_quickicon_mycustomicon'
        } else return;

We’re hooking to the onGetIcons event, and:

  • Check the context and permissions (lines 7 – 9)
  • Add our own icon to the list (lines 11 – 16)
  • Return null

The “id” value will need to be unique for each icon. For the “image” value, use the relative path from:


(or whichever admin template you’re using). If you’d like to use a custom icon image, enter the absolute path to that image, including “http://” …my first guess was that I could just start the path with a / and Joomla would know that the image path was absolute, but that did not appear to work without the fully qualified http:// address.

See Joomla’s update icons for better examples that make use of language files and what-not.