195 lines
5.5 KiB
PHP
195 lines
5.5 KiB
PHP
<?php
|
|
/**
|
|
* @package Joomla.Administrator
|
|
* @subpackage mod_quickicon
|
|
*
|
|
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
|
*/
|
|
|
|
defined('_JEXEC') or die;
|
|
|
|
/**
|
|
* Helper for mod_quickicon
|
|
*
|
|
* @package Joomla.Administrator
|
|
* @subpackage mod_quickicon
|
|
* @since 1.6
|
|
*/
|
|
abstract class ModQuickIconHelper
|
|
{
|
|
/**
|
|
* Stack to hold buttons
|
|
*
|
|
* @since 1.6
|
|
*/
|
|
protected static $buttons = array();
|
|
|
|
/**
|
|
* Helper method to return button list.
|
|
*
|
|
* This method returns the array by reference so it can be
|
|
* used to add custom buttons or remove default ones.
|
|
*
|
|
* @param JObject $params The module parameters.
|
|
*
|
|
* @return array An array of buttons
|
|
*
|
|
* @since 1.6
|
|
*/
|
|
public static function &getButtons($params)
|
|
{
|
|
$key = (string) $params;
|
|
|
|
if (!isset(self::$buttons[$key]))
|
|
{
|
|
$context = $params->get('context', 'mod_quickicon');
|
|
|
|
if ($context == 'mod_quickicon')
|
|
{
|
|
// Load mod_quickicon language file in case this method is called before rendering the module
|
|
JFactory::getLanguage()->load('mod_quickicon');
|
|
|
|
self::$buttons[$key] = array(
|
|
array(
|
|
'link' => JRoute::_('index.php?option=com_content&task=article.add'),
|
|
'image' => 'file-add',
|
|
'icon' => 'header/icon-48-article-add.png',
|
|
'text' => JText::_('MOD_QUICKICON_ADD_NEW_ARTICLE'),
|
|
'access' => array('core.manage', 'com_content', 'core.create', 'com_content', )
|
|
),
|
|
array(
|
|
'link' => JRoute::_('index.php?option=com_content'),
|
|
'image' => 'pencil-2',
|
|
'icon' => 'header/icon-48-article.png',
|
|
'text' => JText::_('MOD_QUICKICON_ARTICLE_MANAGER'),
|
|
'access' => array('core.manage', 'com_content')
|
|
),
|
|
array(
|
|
'link' => JRoute::_('index.php?option=com_categories&extension=com_content'),
|
|
'image' => 'folder',
|
|
'icon' => 'header/icon-48-category.png',
|
|
'text' => JText::_('MOD_QUICKICON_CATEGORY_MANAGER'),
|
|
'access' => array('core.manage', 'com_content')
|
|
),
|
|
array(
|
|
'link' => JRoute::_('index.php?option=com_media'),
|
|
'image' => 'pictures',
|
|
'icon' => 'header/icon-48-media.png',
|
|
'text' => JText::_('MOD_QUICKICON_MEDIA_MANAGER'),
|
|
'access' => array('core.manage', 'com_media')
|
|
),
|
|
array(
|
|
'link' => JRoute::_('index.php?option=com_menus'),
|
|
'image' => 'list-view',
|
|
'icon' => 'header/icon-48-menumgr.png',
|
|
'text' => JText::_('MOD_QUICKICON_MENU_MANAGER'),
|
|
'access' => array('core.manage', 'com_menus')
|
|
),
|
|
array(
|
|
'link' => JRoute::_('index.php?option=com_users'),
|
|
'image' => 'address',
|
|
'icon' => 'header/icon-48-user.png',
|
|
'text' => JText::_('MOD_QUICKICON_USER_MANAGER'),
|
|
'access' => array('core.manage', 'com_users')
|
|
),
|
|
array(
|
|
'link' => JRoute::_('index.php?option=com_modules'),
|
|
'image' => 'cube',
|
|
'icon' => 'header/icon-48-module.png',
|
|
'text' => JText::_('MOD_QUICKICON_MODULE_MANAGER'),
|
|
'access' => array('core.manage', 'com_modules')
|
|
),
|
|
array(
|
|
'link' => JRoute::_('index.php?option=com_installer'),
|
|
'image' => 'puzzle',
|
|
'icon' => 'header/icon-48-extension.png',
|
|
'text' => JText::_('MOD_QUICKICON_EXTENSION_MANAGER'),
|
|
'access' => array('core.manage', 'com_installer')
|
|
),
|
|
array(
|
|
'link' => JRoute::_('index.php?option=com_languages'),
|
|
'image' => 'comments-2',
|
|
'icon' => 'header/icon-48-language.png',
|
|
'text' => JText::_('MOD_QUICKICON_LANGUAGE_MANAGER'),
|
|
'access' => array('core.manage', 'com_languages')
|
|
),
|
|
array(
|
|
'link' => JRoute::_('index.php?option=com_config'),
|
|
'image' => 'cog',
|
|
'icon' => 'header/icon-48-config.png',
|
|
'text' => JText::_('MOD_QUICKICON_GLOBAL_CONFIGURATION'),
|
|
'access' => array('core.manage', 'com_config', 'core.admin', 'com_config')
|
|
),
|
|
array(
|
|
'link' => JRoute::_('index.php?option=com_templates'),
|
|
'image' => 'eye',
|
|
'icon' => 'header/icon-48-themes.png',
|
|
'text' => JText::_('MOD_QUICKICON_TEMPLATE_MANAGER'),
|
|
'access' => array('core.manage', 'com_templates')
|
|
),
|
|
array(
|
|
'link' => JRoute::_('index.php?option=com_admin&task=profile.edit&id=' . JFactory::getUser()->id),
|
|
'image' => 'vcard',
|
|
'icon' => 'header/icon-48-user-profile.png',
|
|
'text' => JText::_('MOD_QUICKICON_PROFILE'),
|
|
'access' => true
|
|
),
|
|
);
|
|
}
|
|
else
|
|
{
|
|
self::$buttons[$key] = array();
|
|
}
|
|
|
|
// Include buttons defined by published quickicon plugins
|
|
JPluginHelper::importPlugin('quickicon');
|
|
$app = JFactory::getApplication();
|
|
$arrays = (array) $app->triggerEvent('onGetIcons', array($context));
|
|
|
|
foreach ($arrays as $response)
|
|
{
|
|
foreach ($response as $icon)
|
|
{
|
|
$default = array(
|
|
'link' => null,
|
|
'image' => 'cog',
|
|
'text' => null,
|
|
'access' => true
|
|
);
|
|
$icon = array_merge($default, $icon);
|
|
|
|
if (!is_null($icon['link']) && !is_null($icon['text']))
|
|
{
|
|
self::$buttons[$key][] = $icon;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return self::$buttons[$key];
|
|
}
|
|
|
|
/**
|
|
* Get the alternate title for the module
|
|
*
|
|
* @param JObject $params The module parameters.
|
|
* @param JObject $module The module.
|
|
*
|
|
* @return string The alternate title for the module.
|
|
*/
|
|
public static function getTitle($params, $module)
|
|
{
|
|
$key = $params->get('context', 'mod_quickicon') . '_title';
|
|
|
|
if (JFactory::getLanguage()->hasKey($key))
|
|
{
|
|
return JText::_($key);
|
|
}
|
|
else
|
|
{
|
|
return $module->title;
|
|
}
|
|
}
|
|
}
|