File Manager

Current Directory: /home/astoriaah/www/old15/administrator/components/com_akeeba/controllers
Viewing File: /home/astoriaah/www/old15/administrator/components/com_akeeba/controllers/cpanel.php
<?php /** * @package AkeebaBackup * @copyright Copyright (c)2009-2014 Nicholas K. Dionysopoulos * @license GNU General Public License version 3, or later * * @since 1.3 */ // Protect from unauthorized access defined('_JEXEC') or die(); use Akeeba\Engine\Factory; use Akeeba\Engine\Platform; /** * The Control Panel controller class * */ class AkeebaControllerCpanel extends F0FController { public function execute($task) { if ( !in_array($task, array('switchprofile', 'disablephpwarning', 'updateinfo', 'fastcheck'))) { $task = 'browse'; } parent::execute($task); } public function onBeforeBrowse() { $result = parent::onBeforeBrowse(); if ($result) { $params = JComponentHelper::getParams('com_akeeba'); $model = $this->getThisModel(); $view = $this->getThisView(); /** @var AkeebaModelCpanels $model */ $view->setModel($model); $aeconfig = Factory::getConfiguration(); // Invalidate stale backups Factory::resetState(array( 'global' => true, 'log' => false, 'maxrun' => $params->get('failure_timeout', 180) )); // Just in case the reset() loaded a stale configuration... Platform::getInstance()->load_configuration(); // Let's make sure the temporary and output directories are set correctly and writable... $wizmodel = F0FModel::getAnInstance('Confwiz', 'AkeebaModel'); $wizmodel->autofixDirectories(); // Check if we need to toggle the settings encryption feature $model->checkSettingsEncryption(); // Update the magic component parameters $model->updateMagicParameters(); // Run the automatic database check $model->checkAndFixDatabase(); // Run the automatic update site refresh /** @var AkeebaModelUpdates $updateModel */ $updateModel = F0FModel::getTmpInstance('Updates', 'AkeebaModel'); $updateModel->refreshUpdateSite(); // Check the last installed version and show the post-setup page on Joomla! 3.1 or earlier if ( !version_compare(JVERSION, '3.2.0', 'ge')) { $versionLast = null; if (file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/akeeba.lastversion.php')) { include_once JPATH_COMPONENT_ADMINISTRATOR . '/akeeba.lastversion.php'; if (defined('AKEEBA_LASTVERSIONCHECK')) { $versionLast = AKEEBA_LASTVERSIONCHECK; } } if (is_null($versionLast)) { $component = JComponentHelper::getComponent('com_akeeba'); if (is_object($component->params) && ($component->params instanceof JRegistry)) { $params = $component->params; } else { $params = new JRegistry($component->params); } $versionLast = $params->get('lastversion', ''); } if (version_compare(AKEEBA_VERSION, $versionLast, 'ne') || empty($versionLast)) { $this->setRedirect('index.php?option=com_akeeba&view=postsetup'); return true; } } } return $result; } public function switchprofile() { // CSRF prevention if ($this->csrfProtection) { $this->_csrfProtection(); } $newProfile = $this->input->get('profileid', -10, 'int'); if ( !is_numeric($newProfile) || ($newProfile <= 0)) { $this->setRedirect(JUri::base() . 'index.php?option=com_akeeba', JText::_('PANEL_PROFILE_SWITCH_ERROR'), 'error'); return true; } $session = JFactory::getSession(); $session->set('profile', $newProfile, 'akeeba'); $url = ''; $returnurl = $this->input->get('returnurl', '', 'base64'); if ( !empty($returnurl)) { $url = base64_decode($returnurl); } if (empty($url)) { $url = JUri::base() . 'index.php?option=com_akeeba'; } $this->setRedirect($url, JText::_('PANEL_PROFILE_SWITCH_OK')); } public function disablephpwarning() { // CSRF prevention if ($this->csrfProtection) { $this->_csrfProtection(); } // Fetch the component parameters $db = JFactory::getDbo(); $sql = $db->getQuery(true) ->select($db->qn('params')) ->from($db->qn('#__extensions')) ->where($db->qn('type') . ' = ' . $db->q('component')) ->where($db->qn('element') . ' = ' . $db->q('com_akeeba')); $db->setQuery($sql); $rawparams = $db->loadResult(); $params = new JRegistry(); $params->loadString($rawparams, 'JSON'); // Set the displayphpwarning parameter to 0 $params->set('displayphpwarning', 0); // Save the component parameters $data = $params->toString('JSON'); $sql = $db->getQuery(true) ->update($db->qn('#__extensions')) ->set($db->qn('params') . ' = ' . $db->q($data)) ->where($db->qn('type') . ' = ' . $db->q('component')) ->where($db->qn('element') . ' = ' . $db->q('com_akeeba')); $db->setQuery($sql); $db->execute(); // Redirect back to the control panel $url = ''; $returnurl = $this->input->get('returnurl', '', 'base64'); if ( !empty($returnurl)) { $url = base64_decode($returnurl); } if (empty($url)) { $url = JUri::base() . 'index.php?option=com_akeeba'; } $this->setRedirect($url); } public function updateinfo() { /** @var AkeebaModelUpdates $updateModel */ $updateModel = F0FModel::getTmpInstance('Updates', 'AkeebaModel'); $updateInfo = (object)$updateModel->getUpdates(); $result = ''; if ($updateInfo->hasUpdate) { $strings = array( 'header' => JText::sprintf('COM_AKEEBA_CPANEL_MSG_UPDATEFOUND', $updateInfo->version), 'button' => JText::sprintf('COM_AKEEBA_CPANEL_MSG_UPDATENOW', $updateInfo->version), 'infourl' => $updateInfo->infoURL, 'infolbl' => JText::_('COM_AKEEBA_CPANEL_MSG_MOREINFO'), ); $result = <<<ENDRESULT <div class="alert alert-warning"> <h3> <span class="icon icon-exclamation-sign glyphicon glyphicon-exclamation-sign"></span> {$strings['header']} </h3> <p> <a href="index.php?option=com_installer&view=update" class="btn btn-primary"> {$strings['button']} </a> <a href="{$strings['infourl']}" target="_blank" class="btn btn-small btn-info"> {$strings['infolbl']} </a> </p> </div> ENDRESULT; } echo '###' . $result . '###'; // Cut the execution short JFactory::getApplication()->close(); } public function fastcheck() { /** @var AkeebaModelCpanels $model */ $model = $this->getThisModel(); $result = $model->fastCheckFiles(); echo '###' . ($result ? 'true' : 'false') . '###'; // Cut the execution short JFactory::getApplication()->close(); } }