Ejemplo n.º 1
0
	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;
	}	
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
/**
 * 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);
    }
}
Ejemplo n.º 5
0
	/**
	 * 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 );
		}
	}
Ejemplo n.º 6
0
 /**
  * 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);
     }
 }