/** * 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)); // Get the setup model. $model = new InstallationModelSetup(); // Get the data $data = $app->input->post->get('jform', array(), 'array'); // Store the options in the session. $vars = $model->storeOptions($data); // Get the database model. $ftp = new InstallationModelFtp(); // Attempt to detect the Joomla root from the ftp account. $return = $ftp->verifyFtpSettings($vars); // Build the response object $r = new stdClass(); $r->view = 'ftp'; // If we got a FTP root, add it to the response object if ($return) { $r->valid = $return; } $app->sendJsonResponse($r); }
/** * 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)); // Very crude workaround to give an error message when JSON is disabled if (!function_exists('json_encode') || !function_exists('json_decode')) { $app->setHeader('status', 500); $app->setHeader('Content-Type', 'application/json; charset=utf-8'); $app->sendHeaders(); echo '{"token":"' . JSession::getFormToken(true) . '","lang":"' . JFactory::getLanguage()->getTag() . '","error":true,"header":"' . JText::_('INSTL_HEADER_ERROR') . '","message":"' . JText::_('INSTL_WARNJSON') . '"}'; $app->close(); } // Check for potentially unwritable session $session = JFactory::getSession(); if ($session->isNew()) { $this->sendResponse(new Exception(JText::_('INSTL_COOKIES_NOT_ENABLED'), 500)); } // Get the setup model. $model = new InstallationModelSetup(); // Get the posted values from the request and validate them. $data = $this->input->post->get('jform', array(), 'array'); $return = $model->validate($data, 'preinstall'); $r = new stdClass(); // Check for validation errors. if ($return === false) { /* * The validate method enqueued all messages for us, so we just need to * redirect back to the site setup screen. */ $r->view = $this->input->getWord('view', 'site'); $app->sendJsonResponse($r); } // Store the options in the session. $model->storeOptions($return); // Setup language $language = JFactory::getLanguage(); $language->setLanguage($return['language']); // Redirect to the page. $r->view = $this->input->getWord('view', 'site'); $app->sendJsonResponse($r); }