Server IP : 195.201.23.43 / Your IP : 3.128.202.38 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/kdecoratie/public_html/installation2/controller/ |
Upload File : |
<?php /** * @package Joomla.Installation * @subpackage Controller * * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Controller class to set the FTP data for the Joomla Installer. * * @since 3.1 */ class InstallationControllerRemovefolder extends JControllerBase { /** * Execute the controller. * * @return void * * @since 3.1 */ public function execute() { // Get the application. /* @var InstallationApplicationWeb $app */ $app = $this->getApplication(); // Check for request forgeries. JSession::checkToken() or $app->sendJsonResponse(new Exception(JText::_('JINVALID_TOKEN'), 403)); $path = JPATH_INSTALLATION; // Check whether the folder still exists. if (!file_exists($path)) { $app->sendJsonResponse(new Exception(JText::sprintf('INSTL_COMPLETE_ERROR_FOLDER_ALREADY_REMOVED'), 500)); } // Check whether we need to use FTP. $useFTP = false; if ((file_exists($path) && !is_writable($path))) { $useFTP = true; } // Check for safe mode. if (ini_get('safe_mode')) { $useFTP = true; } // Enable/Disable override. if (!isset($options->ftpEnable) || ($options->ftpEnable != 1)) { $useFTP = false; } if ($useFTP == true) { // Connect the FTP client. $ftp = JClientFtp::getInstance($options->ftp_host, $options->ftp_port); $ftp->login($options->ftp_user, $options->ftp_pass); // Translate path for the FTP account. $file = JPath::clean(str_replace(JPATH_CONFIGURATION, $options->ftp_root, $path), '/'); $return = $ftp->delete($file); // Delete the extra XML file while we're at it. if ($return) { $file = JPath::clean($options->ftp_root . '/joomla.xml'); if (file_exists($file)) { $return = $ftp->delete($file); } } // Rename the robots.txt.dist file to robots.txt. if ($return) { $robotsFile = JPath::clean($options->ftp_root . '/robots.txt'); $distFile = JPath::clean($options->ftp_root . '/robots.txt.dist'); if (!file_exists($robotsFile) && file_exists($distFile)) { $return = $ftp->rename($distFile, $robotsFile); } } $ftp->quit(); } else { /* * Try to delete the folder. * We use output buffering so that any error message echoed JFolder::delete * doesn't land in our JSON output. */ ob_start(); $return = JFolder::delete($path) && (!file_exists(JPATH_ROOT . '/joomla.xml') || JFile::delete(JPATH_ROOT . '/joomla.xml')); // Rename the robots.txt.dist file if robots.txt doesn't exist if ($return && !file_exists(JPATH_ROOT . '/robots.txt') && file_exists(JPATH_ROOT . '/robots.txt.dist')) { $return = JFile::move(JPATH_ROOT . '/robots.txt.dist', JPATH_ROOT . '/robots.txt'); } ob_end_clean(); } // If an error was encountered return an error. if (!$return) { $app->sendJsonResponse(new Exception(JText::_('INSTL_COMPLETE_ERROR_FOLDER_DELETE'), 500)); } // Create a response body. $r = new stdClass; $r->text = JText::_('INSTL_COMPLETE_FOLDER_REMOVED'); /* * Send the response. * This is a hack since by now, the rest of the folder is deleted and we can't make a new request */ $this->sendJsonResponse($r); } /** * Method to send a JSON response. The data parameter * can be an Exception object for when an error has occurred or * a stdClass for a good response. * * @param mixed $response stdClass on success, Exception on failure. * * @return void * * @since 3.1 */ public function sendJsonResponse($response) { // Check if we need to send an error code. if ($response instanceof Exception) { // Send the appropriate error code response. $this->setHeader('status', $response->getCode()); $this->setHeader('Content-Type', 'application/json; charset=utf-8'); $this->sendHeaders(); } // Send the JSON response. JLoader::register('InstallationResponseJson', __FILE__); echo json_encode(new InstallationResponseJson($response)); // Close the application. exit; } } /** * JSON Response class for the Joomla Installer. * * @since 3.1 */ class InstallationResponseJson { /** * Constructor for the JSON response * * @param mixed $data Exception if there is an error, otherwise, the session data * * @since 3.1 */ public function __construct($data) { // The old token is invalid so send a new one. $this->token = JSession::getFormToken(true); // Get the language and send it's tag along. $this->lang = JFactory::getLanguage()->getTag(); // Get the message queue $messages = JFactory::getApplication()->getMessageQueue(); // Build the sorted message list. if (is_array($messages) && count($messages)) { foreach ($messages as $msg) { if (isset($msg['type']) && isset($msg['message'])) { $lists[$msg['type']][] = $msg['message']; } } } // If messages exist add them to the output. if (isset($lists) && is_array($lists)) { $this->messages = $lists; } // Check if we are dealing with an error. if ($data instanceof Exception) { // Prepare the error response. $this->error = true; $this->header = JText::_('INSTL_HEADER_ERROR'); $this->message = $data->getMessage(); } else { // Prepare the response data. $this->error = false; $this->data = $data; } } }Private