File Manager

Current Directory: /home/astoriaah/www/old15/plugins/sh404sefcore/sh404sefofflinecode
Viewing File: /home/astoriaah/www/old15/plugins/sh404sefcore/sh404sefofflinecode/sh404sefofflinecode.php
<?php /** * sh404SEF - SEO extension for Joomla! * * @author Yannick Gaultier * @copyright (c) Yannick Gaultier 2014 * @package sh404SEF * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @version 4.4.4.1791 * @date 2014-07-01 */ defined('_JEXEC') or die('Direct Access to this location is not allowed.'); $app = JFactory::getApplication(); if (!$app->isAdmin()) { $app->registerEvent('onAfterRoute', 'plgSh404sefofflinecode'); } /** * Output a correct response code when site is offline * to let know search engines that site data * should not be discarded or discounted */ function plgSh404sefofflinecode() { $app = JFactory::getApplication(); // are we in the backend, or not offline ? if (!defined('SH404SEF_IS_RUNNING') || $app->isAdmin() || !$app->getCfg('offline')) { return; } // get plugin params $plugin = JPluginHelper::getPlugin('sh404sefcore', 'sh404sefofflinecode'); $pluginParams = new JRegistry; $pluginParams->loadString($plugin->params); $disallowAdminAccess = $pluginParams->get('disallowAdminAccess', 0); if (!$disallowAdminAccess) { // admins are allowed, lets check if current user // is an admin, or if user is trying to log in $user = JFactory::getUser(); $option = $app->input->getCmd('option'); $task = $app->input->getCmd('task'); if (!empty($user->id)) { $loggingIn = true; } else if ($option == 'com_users' && $task == 'user.login') { // Check for request forgeries JRequest::checkToken() or jexit('Invalid Token'); $loggingIn = true; } // provide bypass for Akeeba, to allow backup while in offline mode // not as secure, but I surrender else if ($option == 'com_akeeba') { $loggingIn = true; } else { $loggingIn = false; } // if already logged inadmin, or admin logging in, let it go if ($loggingIn) { return true; } } // need to render offline screen if ($disallowAdminAccess) { // admins not allowed, use our own // simplified template. Most likely being hacked so // close doors as much as possible $template = ''; $file = 'sh404sef_offline_template.php'; $directory = JPATH_ROOT . '/plugins/sh404sefcore'; } else { // admin can access, use Joomla! offline template, // that includes a login form $template = $app->getTemplate(); $file = 'offline.php'; $directory = JPATH_THEMES; } $params = array('template' => $template, 'file' => $file, 'directory' => $directory); $document = JFactory::getDocument(); $data = $document->render($app->getCfg('caching'), $params); // header : service unavailable JResponse::setHeader('HTTP/1.0 503', true); // give it some time $retryAfter = $pluginParams->get('retry_after_delay', 7400); // set header Jresponse::setheader('Retry-After', gmdate('D, d M Y H:i:s', time() + $retryAfter) . ' GMT'); // echo document JResponse::setBody($data); echo JResponse::toString($app->getCfg('gzip')); // and terminate $app->close(); }