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;
 }
示例#3
0
 private static final function getResult($data = array())
 {
     Status::injectRPCMsgs();
     return array('messages' => Status::getMessages(), 'success' => !Status::hasErrors(), 'data' => $data);
 }