if ($sBaseUrl) { $sBaseDir = parse_url($sBaseUrl, PHP_URL_PATH); if ($sBaseDir) { session_set_cookie_params(COOKIE_LIFETIME, $sBaseDir); } else { session_set_cookie_params(COOKIE_LIFETIME); } unset($sBaseDir); } unset($sBaseUrl); session_start(); // Neue Sitzung erstellen if (!$_SESSION['rpc_sid']) { // Am RP-System mit Gast-Token anmelden if (bbRpc::auth() === NULL) { if (Renderer::DEBUG) { Status::injectRPCMsgs(); Renderer::assign('_msgs', Status::getMessages()); } Renderer::renderFatal('Verbindung zum Shop-System konnte nicht hergestellt werden.'); } // Vom RP verwendete Sitzungs-ID für nächste Seitenaufrufe speichern $_SESSION['rpc_sid'] = bbRpc::getSid(); // Bestehende Sitzung wiederherstellen } else { // RP-Sitzung wiederverwenden bbRpc::setSid($_SESSION['rpc_sid']); } // Werte der Sitzung speichern // Nach diesem Aufruf steht das $_SESSION-Array dem Skript nicht mehr bereit session_write_close();
/** * Template rendern * * @param string $sTemplate Pfad zum Template (vom Basistemplate aus) * @param string $sSiteConfig Einstellungen einer Datei * @return bool */ public static function render($sTemplate, $sSiteConfig = SETTINGS_FILE) { // Renderer initialisieren static::init(); // Statusmeldungen der Seiten und des RP-Systems dem Template zuweisen Status::injectRPCMsgs(); static::assign('_msgs', Status::getMessages()); try { // Versuchen, die Inhalte zu rendern $ret = static::$twig->render($sTemplate, array_merge(array('site' => Settings::getValue(SETTINGS_FILE), 'master' => shopSettings::read(array('file' => 'master.ini'))), static::$assigns)); // Fehler des Renderers } catch (Twig_Error $e) { // Nur HTML-Elemente bereitstellen $ret = "<h1>Fehler bei der Bereitstellung dieser Seite</h1>" . "<h3>" . $e->getMessage() . "</h3>"; // Auf Wunsch Debug-Meldungen ausgeben if (static::DEBUG) { $ret .= "<pre><code>" . $e->getTraceAsString() . "</code></pre>"; } } // Assigns für weitere Aufrufe zurücksetzen static::$assigns = array(); // Gerenderte Inhalte zurückgeben return $ret; }
private static final function getResult($data = array()) { Status::injectRPCMsgs(); return array('messages' => Status::getMessages(), 'success' => !Status::hasErrors(), 'data' => $data); }