function dispatch($notification = null) { if($notification) { $exception = $notification->getNotificationObject(); $message = $exception->getMessage(); } else { $message = ''; } Piwik_Translate::getInstance()->loadCoreTranslation(); Piwik_PostEvent('Installation.startInstallation', $this); $step = Piwik_Common::getRequestVar('action', 'welcome', 'string'); $controller = $this->getInstallationController(); if(in_array($step, array_keys($controller->getInstallationSteps())) || $step == 'saveLanguage') { $controller->$step($message); } else { Piwik::exitWithErrorMessage(Piwik_Translate('Installation_NoConfigFound')); } exit; }
function startInstallation() { Piwik_PostEvent('Installation.startInstallation', $this); $step = Piwik_Common::getRequestVar('action', 'welcome', 'string'); $controller = $this->getInstallationController(); if (in_array($step, $controller->getInstallationSteps())) { $controller->{$step}(); } else { Piwik::exitWithErrorMessage(Piwik_Translate('Installation_NoConfigFound')); } exit; }
function dispatch() { Piwik_Translate::getInstance()->loadUserTranslation(); Piwik_PostEvent('Installation.startInstallation', $this); $step = Piwik_Common::getRequestVar('action', 'welcome', 'string'); $controller = $this->getInstallationController(); if (in_array($step, array_keys($controller->getInstallationSteps())) || $step == 'saveLanguage') { $controller->{$step}(); } else { Piwik::exitWithErrorMessage(Piwik_Translate('Installation_NoConfigFound')); } exit; }
/** * Exception handler used to display nicely exceptions in Piwik * * @param Exception $exception */ function Piwik_ExceptionHandler(Exception $exception) { try { Zend_Registry::get('logger_exception')->logEvent($exception); } catch (Exception $e) { // case when the exception is raised before the logger being ready // we handle the exception a la mano, but using the Logger formatting properties $event = array(); $event['errno'] = $exception->getCode(); $event['message'] = $exception->getMessage(); $event['errfile'] = $exception->getFile(); $event['errline'] = $exception->getLine(); $event['backtrace'] = $exception->getTraceAsString(); $formatter = new Piwik_Log_Exception_Formatter_ScreenFormatter(); $message = $formatter->format($event); $message .= "<br><br>And this exception raised another exception \"" . $e->getMessage() . "\""; Piwik::exitWithErrorMessage($message); } }
/** * The previous step is valid if it is either * - any step before (OK to go back) * - the current step (case when validating a form) * If step is invalid, then exit. * * @param string $currentStep Current step */ protected function checkPreviousStepIsValid( $currentStep ) { $error = false; if(empty($this->session->currentStepDone)) { $error = true; } else if($currentStep == 'finished' && $this->session->currentStepDone == 'finished') { // ok to refresh this page or use language selector } else { if(file_exists(Piwik_Config::getDefaultUserConfigPath())) { $error = true; } $steps = array_keys($this->steps); // the currentStep $currentStepId = array_search($currentStep, $steps); // the step before $previousStepId = array_search($this->session->currentStepDone, $steps); // not OK if currentStepId > previous+1 if( $currentStepId > $previousStepId + 1 ) { $error = true; } } if($error) { Piwik_Login_Controller::clearSession(); $message = Piwik_Translate('Installation_ErrorInvalidState', array( '<br /><b>', '</b>', '<a href=\''.Piwik_Common::sanitizeInputValue(Piwik_Url::getCurrentUrlWithoutFileName()).'\'>', '</a>') ); Piwik::exitWithErrorMessage( $message ); } }
/** * The previous step is valid if it is either * - any step before (OK to go back) * - the current step (case when validating a form) */ protected function checkPreviousStepIsValid($currentStep) { $error = false; // first we make sure that the config file is not present, ie. Installation state is expected try { $config = new Piwik_Config(); $config->init(); $error = true; } catch (Exception $e) { } if (empty($this->session->currentStepDone)) { $error = true; } else { // the currentStep $currentStepId = array_search($currentStep, $this->steps); // the step before $previousStepId = array_search($this->session->currentStepDone, $this->steps); // not OK if currentStepId > previous+1 if ($currentStepId > $previousStepId + 1) { $error = true; } } if ($error) { $message = Piwik_Translate('Installation_ErrorInvalidState', array('<br /><b>', '</b>', '<a href=\'' . Piwik_Url::getCurrentUrlWithoutFileName() . '\'>', '</a>')); Piwik::exitWithErrorMessage($message); } }