コード例 #1
0
ファイル: 20150106.php プロジェクト: Sywooch/forums
 public function run()
 {
     if (!isset(self::$_checkForUpdates)) {
         self::$_checkForUpdates = true;
         $lastXMLUploadDate = $this->_getLastXmlUploadDate();
         $addOns = array();
         try {
             $installDataDir = XenForo_Application::getInstance()->getRootDir() . '/install/data/';
             if (is_dir($installDataDir)) {
                 /* @var $dir Directory */
                 $dir = dir($installDataDir);
                 if (XenForo_Application::$versionId >= 1020000) {
                     $allAddOns = XenForo_Application::get('addOns');
                 }
                 while ($entry = $dir->read()) {
                     if (strlen($entry) > strlen('addon-.xml') && substr($entry, 0, strlen('addon-')) == 'addon-') {
                         $addOnId = substr($entry, strlen('addon-'), strlen($entry) - strlen('addon-.xml'));
                         if (XenForo_Application::$versionId >= 1020000) {
                             if (empty($allAddOns[$addOnId])) {
                                 continue;
                             }
                         }
                         if (filemtime(XenForo_Application::getInstance()->getRootDir() . '/install/data/' . $entry) > $lastXMLUploadDate) {
                             $addOns[] = $addOnId;
                         }
                     }
                 }
             }
         } catch (Exception $e) {
             // do nothing
         }
         $addOnsNeedUpgrading = $this->_checkAddOnsNeedUpgrading($addOns);
         if (is_subclass_of(self::$_controller, 'XenForo_ControllerAdmin_Abstract')) {
             $controllerName = self::$_controller->getRequest()->getParam('_controllerName');
             $action = self::$_controller->getRequest()->getParam('_action');
             if ($controllerName == 'XenForo_ControllerAdmin_AddOn' && $action == 'UpgradeAllFromXml') {
                 $this->_upgradeAddOns();
             }
         } elseif ($addOnsNeedUpgrading) {
             $upgradeAddOns = $this->getUpgradeAddOns();
             if (!empty($upgradeAddOns)) {
                 XenForo_Application::get('options')->set('boardActive', false);
                 if (!XenForo_Visitor::getInstance()->get('is_admin')) {
                     try {
                         self::$_controller->preDispatch(self::$_action, self::$_controllerName);
                     } catch (XenForo_ControllerResponse_Exception $exception) {
                         $controllerResponse = $exception->getControllerResponse();
                         if ($controllerResponse instanceof XenForo_ControllerResponse_Message) {
                             $controllerResponse->message = new XenForo_Phrase('board_currently_being_upgraded');
                         }
                         throw $exception;
                     }
                 }
             }
         }
     }
     $this->_run();
 }
コード例 #2
0
ファイル: 20150212.php プロジェクト: darkearl/projectT122015
 public function run()
 {
     if (is_subclass_of(self::$_controller, 'XenForo_ControllerAdmin_Abstract')) {
         if (!isset(self::$_checkForUpdates)) {
             self::$_checkForUpdates = true;
             $lastXMLUploadDate = $this->_getLastXmlUploadDate();
             $addOns = array();
             try {
                 $installDataDir = XenForo_Application::getInstance()->getRootDir() . '/install/data/';
                 if (is_dir($installDataDir)) {
                     /* @var $dir Directory */
                     $dir = dir($installDataDir);
                     if (XenForo_Application::$versionId >= 1020000) {
                         $allAddOns = XenForo_Application::get('addOns');
                     }
                     while ($entry = $dir->read()) {
                         if (strlen($entry) > strlen('addon-.xml') && substr($entry, 0, strlen('addon-')) == 'addon-') {
                             $addOnId = substr($entry, strlen('addon-'), strlen($entry) - strlen('addon-.xml'));
                             if (XenForo_Application::$versionId >= 1020000) {
                                 if (empty($allAddOns[$addOnId])) {
                                     continue;
                                 }
                             }
                             if (filemtime(XenForo_Application::getInstance()->getRootDir() . '/install/data/' . $entry) > $lastXMLUploadDate) {
                                 $addOns[] = $addOnId;
                             }
                         }
                     }
                 }
             } catch (Exception $e) {
                 // do nothing
             }
             $addOnsNeedUpgrading = $this->_checkAddOnsNeedUpgrading($addOns);
             $controllerName = self::$_controller->getRequest()->getParam('_controllerName');
             $action = self::$_controller->getRequest()->getParam('_action');
             if ($controllerName == 'XenForo_ControllerAdmin_AddOn' && $action == 'UpgradeAllFromXml') {
                 $this->_upgradeAddOns();
             }
         }
     }
     $this->_run();
 }
コード例 #3
0
ファイル: 20140326.php プロジェクト: Sywooch/forums
 protected function _runOnceInLastListener()
 {
     if (!$this->_isLastListenerToBeCalled()) {
         return;
     }
     if (!isset(self::$_checkForCopyright)) {
         self::$_checkForCopyright = true;
         $this->_removeUnwantedCopyrightNotice();
     }
 }