Ejemplo n.º 1
0
// Unerwuenschte Ausgaben puffern, damit vor dem XML-Dokument nichts steht.
require 'elmar_config.inc.php';
require ELMAR_PATH . 'elmar.inc.php';
if (headers_sent($filename, $linenum)) {
    ob_end_flush();
    exit('HTTP-Header wurden bereits gesendet von der Datei ' . $filename . ' Zeile ' . $linenum . ".\nEs muss ein Fehler aufgetreten sein, der erst zu beheben ist, bevor die Shopdatei ordnungsgemaess erzeugt werden kann.\n" . '(Abbruch in Datei ' . __FILE__ . ' Zeile ' . __LINE__ . '.)');
}
if (defined('POWEREDBY')) {
    header('X-Powered-By: ' . POWEREDBY, FALSE);
}
// Dieses Skript wird nur benoetigt, wenn keine shopinfo.xml existiert bzw. geschrieben werden kann.
// Das Skript kann nicht im elmar-Verzeichnis stehen, weil das Verzeichnis fuer Zugriffe von aussen gesperrt wird!
$force = isset($_REQUEST['force']) && $_REQUEST['force'] == 'yes';
if (!$force && defined('DIR_WS_SHOPINFO_XML') && DIR_WS_SHOPINFO_XML != '' && defined('DIR_FS_SHOPINFO_XML') && DIR_FS_SHOPINFO_XML != '' && file_exists(DIR_FS_SHOPINFO_XML)) {
    // Sobald eine shopinfo.xml existiert bzw. der Shop bei Elm@r registriert ist,
    // Umleitung auf die vorhandene Shopdatei.
    ob_end_clean();
    header('Location: ' . DIR_WS_SHOPINFO_XML);
    exit;
}
header('Content-Type: text/xml');
header('Content-Disposition: attachment; filename=' . SHOPINFO_XML);
if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') > 0) {
    // Fuer den Internet Explorer werden die beiden folgenden Header benoetigt.
    header('Pragma: public');
    header('Cache-Control: public');
}
ob_end_clean();
// Falls schon Zeichen geschrieben wurden, diese verwerfen, damit nur das XML-Dokument geschrieben wird.
echo generate_shopinfo();
Ejemplo n.º 2
0
function try_shopinfo($sif, $siu)
{
    // Wenn noch keine shopinfo.xml existiert, eine anlegen und entsprechende Konstanten setzen.
    if (!file_exists($sif) || filesize($sif) == 0) {
        $fh = @fopen($sif, 'wb');
        if ($fh) {
            flock($fh, LOCK_EX);
            $content = generate_shopinfo();
            fwrite($fh, $content);
            flock($fh, LOCK_UN);
            fclose($fh);
            set_shopinfo($sif, $siu, md5($content));
            return TRUE;
        }
        return FALSE;
    }
    return TRUE;
}