%PDF- %PDF-
| Direktori : /home1/lightco1/public_html/plugins/system/cachecleaner/ |
| Current File : //home1/lightco1/public_html/plugins/system/cachecleaner/cachecleaner.php |
<?php
/**
* @package Cache Cleaner
* @version 5.0.0
*
* @author Peter van Westen <info@regularlabs.com>
* @link http://www.regularlabs.com
* @copyright Copyright © 2016 Regular Labs All Rights Reserved
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*/
defined('_JEXEC') or die;
/**
* Plugin that cleans cache
*/
class PlgSystemCacheCleaner extends JPlugin
{
private $_alias = 'cachecleaner';
private $_title = 'CACHE_CLEANER';
private $_lang_prefix = 'CC';
private $_init = false;
private $_helper = null;
public function onAfterRoute()
{
if (!$this->getHelper())
{
return;
}
$this->_helper->clean();
}
/*
* Below methods are general functions used in most of the Regular Labs extensions
* The reason these are not placed in the Regular Labs Library files is that they also
* need to be used when the Regular Labs Library 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;
// only in html or raw (for ajax save order stuff)
if (!in_array(JFactory::getDocument()->getType(), array('html', 'raw')))
{
return false;
}
if (!$this->isFrameworkEnabled())
{
return false;
}
require_once JPATH_LIBRARIES . '/regularlabs/helpers/protect.php';
if (RLProtect::isProtectedPage($this->_alias))
{
return false;
}
require_once JPATH_LIBRARIES . '/regularlabs/helpers/helper.php';
$this->_helper = RLHelper::getPluginHelper($this);
return $this->_helper;
}
/**
* Check if the Regular Labs Library is enabled
*
* @return bool
*/
private function isFrameworkEnabled()
{
// Return false if Regular Labs Library is not installed
if (!$this->isFrameworkInstalled())
{
return false;
}
$regularlabs = JPluginHelper::getPlugin('system', 'regularlabs');
if (!isset($regularlabs->name))
{
$this->throwError($this->_lang_prefix . '_REGULAR_LABS_LIBRARY_NOT_ENABLED');
return false;
}
return true;
}
/**
* Check if the Regular Labs Library is installed
*
* @return bool
*/
private function isFrameworkInstalled()
{
jimport('joomla.filesystem.file');
if (!JFile::exists(JPATH_PLUGINS . '/system/regularlabs/regularlabs.php'))
{
$this->throwError($this->_lang_prefix . '_REGULAR_LABS_LIBRARY_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_PLUGINS . '/' . $this->_type . '/' . $this->_name);
$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');
}
}