예제 #1
0
 /**
  * Prüft ob Update verfügbar sind
  * @return string|null
  */
 public function checkForUpdates()
 {
     $data = array('version' => $this->getSysVersion(), 'language' => $this->getSysLanguage(), 'phpvers' => PHP_VERSION, 'isauto' => (int) \base_config::canConnect());
     $url = \base_config::$updateServer . 'noauto.php?data=' . base64_encode(json_encode($data));
     if (!\base_config::canConnect()) {
         return $url;
     }
     if (file_exists(\base_config::$updateCache)) {
         $updateCache = json_decode(file_get_contents(\base_config::$updateCache), true);
         if ($updateCache['expire'] >= time()) {
             if (!empty($updateCache['message'])) {
                 \messages::registerNotice($updateCache['message'], true);
             }
             return;
         }
     }
     try {
         $url = \base_config::$updateServer . 'newver.php?data=' . base64_encode(json_encode($data));
         $updateData = fopen($url, 'r');
         $updateData = fgets($updateData);
         $updateData = json_decode(base64_decode($updateData), true);
         $updateMessage = '';
         if (version_compare($updateData['newversion'], $this->getSysVersion(), '>')) {
             if (isset($updateData['forceupdate']) && $updateData['forceupdate']) {
                 header("Location: ?module=system/update&file=" . $updateData['updatefile']);
             }
             $updateMessage = \language::replaceLanguageConstant(\language::returnLanguageConstant('UPDATE_NEWVERSION'), array('{{versionlink}}' => '?module=system/update&file=' . $updateData['updatefile']));
             \messages::registerNotice($updateMessage, true);
         }
         $cacheTmp = array('expire' => time() + 43200, 'message' => $updateMessage);
         file_put_contents(\base_config::$updateCache, json_encode($cacheTmp));
     } catch (\Exception $ex) {
         \messages::registerError($ex->getMessage(), true);
     }
     return null;
 }
예제 #2
0
 private function checkRequirements()
 {
     if (!class_exists('PDO')) {
         \messages::registerError('PHP PDO extension not found! Unable to proceed. Contact your host!', true);
         die;
     }
     foreach ($this->checkFolders as $checkFolder) {
         if (!is_writable(\base_config::$baseDir . '/' . $checkFolder)) {
             \messages::registerError("Unable to write in folder <b>/{$checkFolder}</b>!", true);
         }
     }
     if (!\base_config::canConnect()) {
         \messages::registerNotice('PHP setting <b>allow_url_fopen</b> is diabled. This is not required, but recommended.', true);
     }
 }