controller.php

来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 107 行

PHP
107
字号
<?phprequire_once "Updater.php";require_once "Version.php";class Piwik_CoreUpdater_Controller {	private $componentsWithUpdateFile = array();	private $coreError = false;	private $warningMessages = array();	private $errorMessages = array();	private $deactivatedPlugins = array();		public function checkForCoreAndPluginsUpdates()	{		$this->updater = new Piwik_Updater();		$this->updater->addComponentToCheck('core', Piwik_Version::VERSION);				$plugins = Piwik_PluginsManager::getInstance()->getInstalledPlugins();		foreach($plugins as $pluginName => $plugin)		{			$this->updater->addComponentToCheck($pluginName, $plugin->getVersion());		}				$this->componentsWithUpdateFile = $this->updater->getComponentsWithUpdateFile();		if(count($this->componentsWithUpdateFile) == 0)		{			return;		}				$this->runUpdaterAndExit();	}		private function runUpdaterAndExit()	{		if(Piwik_Common::getRequestVar('updateCorePlugins', 0, 'integer') == 1)		{			$this->doExecuteUpdates();		}		else		{			$this->doWelcomeUpdates();		}		exit;	}		private function doWelcomeUpdates()	{		$view = new Piwik_View('CoreUpdater/templates/update_welcome.tpl');		$view->piwik_version = Piwik_Version::VERSION;			$pluginNamesToUpdate = array();		$coreToUpdate = false;		foreach($this->componentsWithUpdateFile as $name => $filenames)		{			if($name == 'core')			{				$coreToUpdate = true;			}			else			{				$pluginNamesToUpdate[] = $name;			}		}		$view->pluginNamesToUpdate = $pluginNamesToUpdate;		$view->coreToUpdate = $coreToUpdate; 		echo $view->render();	}	private function doExecuteUpdates()	{		$this->loadAndExecuteUpdateFiles();				$view = new Piwik_View('CoreUpdater/templates/update_done.tpl');		$view->coreError = $this->coreError;		$view->warningMessages = $this->warningMessages;		$view->errorMessages = $this->errorMessages;		$view->deactivatedPlugins = $this->deactivatedPlugins;		echo $view->render();	}	private function loadAndExecuteUpdateFiles()	{		// if error in any core update, show message + help message + EXIT		// if errors in any plugins updates, show them on screen, disable plugins that errored + CONTINUE		// if warning in any core update or in any plugins update, show message + CONTINUE		// if no error or warning, success message + CONTINUE		foreach($this->componentsWithUpdateFile as $name => $filenames)		{			try {				$this->warningMessages = array_merge($this->warningMessages, $this->updater->update($name));			} catch (UpdateErrorException $e) {				$this->errorMessages[] = $e->getMessage();				if($name == 'core') 				{					$this->coreError = true;					break;				}				else				{					Piwik_PluginsManager::getInstance()->deactivatePlugin($name);					$this->deactivatedPlugins[] = $name;				}			}		}	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?