File Manager

Current Directory: /home/astoriaah/www/old15/administrator/components/com_akeeba
Viewing File: /home/astoriaah/www/old15/administrator/components/com_akeeba/dispatcher.php
<?php /** * @package AkeebaBackup * @copyright Copyright (c)2009-2014 Nicholas K. Dionysopoulos * @license GNU General Public License version 3, or later * @since 3.5 */ // Protect from unauthorized access defined('_JEXEC') or die(); use Akeeba\Engine\Factory; use Akeeba\Engine\Platform; class AkeebaDispatcher extends F0FDispatcher { public function onBeforeDispatch() { $result = parent::onBeforeDispatch(); if ($result) { // Load Akeeba Strapper include_once JPATH_ROOT . '/media/akeeba_strapper/strapper.php'; AkeebaStrapper::$tag = AKEEBAMEDIATAG; AkeebaStrapper::bootstrap(); AkeebaStrapper::jQueryUI(); AkeebaStrapper::addJSfile('media://com_akeeba/js/gui-helpers.js'); AkeebaStrapper::addJSfile('media://com_akeeba/js/akeebaui.js'); AkeebaStrapper::addJSfile('media://com_akeeba/js/piecon.min.js'); jimport('joomla.filesystem.file'); if (JFile::exists(F0FTemplateUtils::parsePath('media://com_akeeba/js/akeebauipro.js', true))) { AkeebaStrapper::addJSfile('media://com_akeeba/js/akeebauipro.js'); } AkeebaStrapper::addCSSfile('media://com_akeeba/theme/akeebaui.css'); // Control Check $view = F0FInflector::singularize($this->input->getCmd('view', $this->defaultView)); if ($view == 'liveupdate') { $url = JUri::base() . 'index.php?option=com_akeeba'; JFactory::getApplication()->redirect($url); return; } } return $result; } public function dispatch() { if ( !class_exists('AkeebaControllerDefault')) { require_once JPATH_ADMINISTRATOR . '/components/com_akeeba/controllers/default.php'; } // Merge the language overrides $paths = array(JPATH_ROOT, JPATH_ADMINISTRATOR); $jlang = JFactory::getLanguage(); $jlang->load($this->component, $paths[0], 'en-GB', true); $jlang->load($this->component, $paths[0], null, true); $jlang->load($this->component, $paths[1], 'en-GB', true); $jlang->load($this->component, $paths[1], null, true); $jlang->load($this->component . '.override', $paths[0], 'en-GB', true); $jlang->load($this->component . '.override', $paths[0], null, true); $jlang->load($this->component . '.override', $paths[1], 'en-GB', true); $jlang->load($this->component . '.override', $paths[1], null, true); F0FInflector::addWord('alice', 'alices'); // Timezone fix; avoids errors printed out by PHP 5.3.3+ (thanks Yannick!) if (function_exists('date_default_timezone_get') && function_exists('date_default_timezone_set')) { if (function_exists('error_reporting')) { $oldLevel = error_reporting(0); } $serverTimezone = @date_default_timezone_get(); if (empty($serverTimezone) || !is_string($serverTimezone)) { $serverTimezone = 'UTC'; } if (function_exists('error_reporting')) { error_reporting($oldLevel); } @date_default_timezone_set($serverTimezone); } // Necessary defines for Akeeba Engine if ( !defined('AKEEBAENGINE')) { define('AKEEBAENGINE', 1); // Required for accessing Akeeba Engine's factory class define('AKEEBAROOT', dirname(__FILE__) . '/akeeba'); define('ALICEROOT', dirname(__FILE__) . '/alice'); } // Setup Akeeba's ACLs, honoring laxed permissions in component's parameters, if set // Access check, Joomla! 1.6 style. $user = JFactory::getUser(); if ( !$user->authorise('core.manage', 'com_akeeba')) { return JError::raiseError(403, JText::_('JERROR_ALERTNOAUTHOR')); } // Make sure we have a profile set throughout the component's lifetime $session = JFactory::getSession(); $profile_id = $session->get('profile', null, 'akeeba'); if (is_null($profile_id)) { // No profile is set in the session; use default profile $session->set('profile', 1, 'akeeba'); } // Load Akeeba Engine and ALICE require_once JPATH_COMPONENT_ADMINISTRATOR . '/engine/Factory.php'; if (@file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/alice/factory.php')) { require_once JPATH_COMPONENT_ADMINISTRATOR . '/alice/factory.php'; } // Load the Akeeba Engine configuration Platform::addPlatform('joomla25', JPATH_COMPONENT_ADMINISTRATOR . '/platform/joomla25'); $akeebaEngineConfig = Factory::getConfiguration(); Platform::getInstance()->load_configuration(); $jDbo = JFactory::getDbo(); if ($jDbo->name == 'pdomysql') { // Prevents the "SQLSTATE[HY000]: General error: 2014" due to resource sharing with Akeeba Engine @JFactory::getDbo()->disconnect(); } unset($akeebaEngineConfig); // Preload helpers require_once JPATH_COMPONENT_ADMINISTRATOR . '/helpers/includes.php'; require_once JPATH_COMPONENT_ADMINISTRATOR . '/helpers/escape.php'; // Load the utils helper library Platform::getInstance()->load_version_defines(); // Create a versioning tag for our static files $staticFilesVersioningTag = md5(AKEEBA_VERSION . AKEEBA_DATE); define('AKEEBAMEDIATAG', $staticFilesVersioningTag); // If JSON functions don't exist, load our compatibility layer if (( !function_exists('json_encode')) || ( !function_exists('json_decode'))) { require_once JPATH_COMPONENT_ADMINISTRATOR . '/helpers/jsonlib.php'; } $this->input->set('view', $this->view); parent::dispatch(); } }