Current Path : /var/www/html/clients/kampol.e-nk.ru/components/com_joomlapack/controllers/ |
Current File : /var/www/html/clients/kampol.e-nk.ru/components/com_joomlapack/controllers/json.php |
<?php /** * @package JoomlaPack * @copyright Copyright (c)2006-2009 JoomlaPack Developers * @license GNU General Public License version 2, or later * @version $id$ * @since 1.3 */ // Protect from unauthorized access defined('_JEXEC') or die('Restricted Access'); // Load framework base classes jimport('joomla.application.component.controller'); class JoomlapackControllerJson extends JController { /** * Starts a backup * @return */ function display() { // Check permissions $this->_checkPermissions(); // Set the profile $this->_setProfile(); // Force the output to be of the raw format type JRequest::setVar('format', 'raw'); $document =& JFactory::getDocument(); $document->setType('raw'); // Get the description, if present; otherwise use the default description jimport('joomla.utilities.date'); $user =& JFactory::getUser(); $userTZ = $user->getParam('timezone',0); $dateNow = new JDate(); $dateNow->setOffset($userTZ); $default_description = JText::_('BACKUP_DEFAULT_DESCRIPTION').' '.$dateNow->toFormat(JText::_('DATE_FORMAT_LC2')); $description = JRequest::getString('description', $default_description); // Start the backup (CUBE Operation) jpimport('core.cube'); JoomlapackCUBE::reset(); $cube =& JoomlapackCUBE::getInstance(); $cube->start($description,''); $cube->save(); // Return the JSON output parent::display(false); } /** * task=start is an alias for task=display or lack of task definition altogether */ function start() { $this->display(); } /** * Step through the backup * @return */ function step() { // Check permissions $this->_checkPermissions(); // Set the profile $this->_setProfile(); jpimport('core.cube'); $cube =& JoomlapackCUBE::getInstance(); $array = $cube->getCUBEArray(); if( ($array['Error'] == '') && ($array['HasRun'] != 1) ) { $cube->tick(); $cube->save(); } // Return the JSON output parent::display(false); } /** * Return the absolute path to the output directory * @return */ function getdirectory() { // Check permissions $this->_checkPermissions(); parent::display(false); } /** * Check that the user has sufficient permissions, or die in error * */ function _checkPermissions() { jpimport('models.registry', true); $registry =& JoomlapackModelRegistry::getInstance(); // Is frontend backup enabled? $febEnabled = $registry->get('enableFrontend'); if(!$febEnabled) { die('403 '.JText::_('ERROR_NOT_ENABLED')); } // Is the key good? Check using 'keyhash'. $keyhash = JRequest::getVar('keyhash'); $hashparts = explode(':', $keyhash, 2); $validKey=$registry->get('secretWord'); $hash_to_check = $hashparts[0]; $salt= $hashparts[1]; $valid_hash = md5($validKey.$salt); if($hash_to_check != $valid_hash) { die('403 '.JText::_('ERROR_INVALID_KEY')); } } function _setProfile() { // Set profile $profile = JRequest::getInt('profile',1); if(!JPSPECIALEDITION) $profile = 1; if(!is_numeric($profile)) $profile = 1; $session =& JFactory::getSession(); $session->set('profile', $profile, 'joomlapack'); } }