Current Directory: /home/astoriaah/www/old15/plugins/system/advancedmodules
Viewing File: /home/astoriaah/www/old15/plugins/system/advancedmodules/advancedmodules.php
<?php
/**
* Main Plugin File
*
* @package Advanced Module Manager
* @version 4.22.6
*
* @author Peter van Westen <peter@nonumber.nl>
* @link http://www.nonumber.nl
* @copyright Copyright © 2015 NoNumber All Rights Reserved
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*/
defined('_JEXEC') or die;
jimport('joomla.filesystem.file');
/**
* Plugin that shows active modules in menu item edit view
*/
class plgSystemAdvancedModules extends JPlugin
{
private $_alias = 'advancedmodules';
private $_title = 'ADVANCED_MODULE_MANAGER';
private $_lang_prefix = 'AMM';
private $_init = false;
private $_helper = null;
public function __construct(&$subject, $config)
{
parent::__construct($subject, $config);
if (!$this->getHelper())
{
return;
}
if (!JFactory::getApplication()->isSite())
{
return;
}
$this->_helper->loadModuleHelper();
$this->_helper->registerEvents();
}
/*
* Replace links to com_modules with com_advancedmodules
*/
public function onAfterRender()
{
if (!$this->getHelper())
{
return;
}
// only in html
if (JFactory::getDocument()->getType() != 'html')
{
return;
}
$this->_helper->replaceLinks();
}
/*
* Below methods are general functions used in most of the NoNumber extensions
* The reason these are not placed in the NoNumber Framework files is that they also
* need to be used when the NoNumber Framework is not installed
*/
/**
* Create the helper object
*
* @return object The plugins helper object
*/
private function getHelper()
{
// Already initialized, so return
if ($this->_init)
{
return $this->_helper;
}
$this->_init = true;
if (!$this->isFrameworkEnabled())
{
return false;
}
require_once JPATH_PLUGINS . '/system/nnframework/helpers/protect.php';
if (!nnProtect::isComponentInstalled($this->_alias))
{
return false;
}
if (nnProtect::isProtectedPage($this->_alias))
{
return false;
}
require_once JPATH_PLUGINS . '/system/nnframework/helpers/helper.php';
$this->_helper = nnFrameworkHelper::getPluginHelper($this);
return $this->_helper;
}
/**
* Check if the NoNumber Framework is enabled
*
* @return bool
*/
private function isFrameworkEnabled()
{
// Return false if NoNumber Framework is not installed
if (!$this->isFrameworkInstalled())
{
return false;
}
$nnframework = JPluginHelper::getPlugin('system', 'nnframework');
if (!isset($nnframework->name))
{
$this->throwError($this->_lang_prefix . '_NONUMBER_FRAMEWORK_NOT_ENABLED');
return false;
}
return true;
}
/**
* Check if the NoNumber Framework is installed
*
* @return bool
*/
private function isFrameworkInstalled()
{
jimport('joomla.filesystem.file');
if (!JFile::exists(JPATH_PLUGINS . '/system/nnframework/nnframework.php'))
{
$this->throwError($this->_lang_prefix . '_NONUMBER_FRAMEWORK_NOT_INSTALLED');
return false;
}
return true;
}
/**
* Place an error in the message queue
*/
private function throwError($text)
{
// Return if page is not an admin page or the admin login page
if (
!JFactory::getApplication()->isAdmin()
|| JFactory::getUser()->get('guest')
)
{
return;
}
// load the admin language file
JFactory::getLanguage()->load('plg_' . $this->_type . '_' . $this->_name, JPATH_ADMINISTRATOR);
$text = JText::_($text) . ' ' . JText::sprintf($this->_lang_prefix . '_EXTENSION_CAN_NOT_FUNCTION', JText::_($this->_title));
// Check if message is not already in queue
$messagequeue = JFactory::getApplication()->getMessageQueue();
foreach ($messagequeue as $message)
{
if ($message['message'] == $text)
{
return;
}
}
JFactory::getApplication()->enqueueMessage($text, 'error');
}
}