| Server IP : 54.36.91.62 / Your IP : 216.73.217.111 Web Server : Apache System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : coopiak ( 151928) PHP Version : 8.3.23 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/coopiak/newsite/plugins/system/cache/ |
Upload File : |
<?php
/**
* @package Joomla.Plugin
* @subpackage System.cache
*
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Joomla! Page Cache Plugin.
*
* @since 1.5
*/
class PlgSystemCache extends JPlugin
{
var $_cache = null;
var $_cache_key = null;
/**
* Constructor.
*
* @param object &$subject The object to observe.
* @param array $config An optional associative array of configuration settings.
*
* @since 1.5
*/
public function __construct(& $subject, $config)
{
parent::__construct($subject, $config);
// Set the language in the class.
$options = array(
'defaultgroup' => 'page',
'browsercache' => $this->params->get('browsercache', false),
'caching' => false,
);
$this->_cache = JCache::getInstance('page', $options);
$this->_cache_key = JUri::getInstance()->toString();
}
/**
* Converting the site URL to fit to the HTTP request.
*
* @return void
*
* @since 1.5
*/
public function onAfterInitialise()
{
global $_PROFILER;
$app = JFactory::getApplication();
$user = JFactory::getUser();
if ($app->isAdmin())
{
return;
}
if (count($app->getMessageQueue()))
{
return;
}
if ($user->get('guest') && $app->input->getMethod() == 'GET')
{
$this->_cache->setCaching(true);
}
$data = $this->_cache->get($this->_cache_key);
if ($data !== false)
{
// Set cached body.
$app->setBody($data);
echo $app->toString($app->get('gzip'));
if (JDEBUG)
{
$_PROFILER->mark('afterCache');
}
$app->close();
}
}
/**
* After render.
*
* @return void
*
* @since 1.5
*/
public function onAfterRender()
{
$app = JFactory::getApplication();
if ($app->isAdmin())
{
return;
}
if (count($app->getMessageQueue()))
{
return;
}
$user = JFactory::getUser();
if ($user->get('guest'))
{
// We need to check again here, because auto-login plugins have not been fired before the first aid check.
$this->_cache->store(null, $this->_cache_key);
}
}
}