/** * 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; }
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); } }