0 ){ $_SESSION['REFERER'] = $_GET['referer']; } $REFERER = &$_SESSION['REFERER']; // Die Session beenden, wenn sich die IP ändert oder // wenn die Zeit der Session abgelaufen ist // if ( isset($_SESSION['IP']) && $_SESSION['IP'] != $_GET['webiscoip'] ){ $AUTOMATIC_LOGOUT = true; session_regenerate_id(); } else if ( $KUNDE->exists() && isset($_SESSION['TIMEOUT']) && $_SESSION['TIMEOUT'] < time() ){ $AUTOMATIC_LOGOUT = true; } $_SESSION['IP'] = @$_GET['webiscoip']; $_SESSION['TIMEOUT'] = time() + $session_timeout_minuten*60; // Warenkorb inizialisieren if ( !isset($_SESSION['WARENKORB']) || !is_object($_SESSION['WARENKORB']) ){ $WARENKORB = new Warenkorb(); $_SESSION['WARENKORB'] = $WARENKORB; } $WARENKORB = &$_SESSION['WARENKORB']; // Konfiguration erzeugen if ( !isset($_SESSION['CONFIG']) || !is_object($_SESSION['CONFIG']) || $AUTOMATIC_LOGOUT ){ $CONFIG = Config::getNewInstance(); $_SESSION['CONFIG'] = $CONFIG; } $CONFIG = &$_SESSION['CONFIG']; //$CONFIG = Config::getNewInstance(); //$_SESSION['CONFIG'] = $CONFIG; // Fahrzeug inizialisieren if ( !isset($_SESSION['FAHRZEUG']) || !is_object($_SESSION['FAHRZEUG']) || !$CONFIG->isTecDoc() ){ // wenns kein TecDoc gibt, dann auch das evtl. ausgewählte Fahrzeug löschen $FAHRZEUG = new Fahrzeug(); $_SESSION['FAHRZEUG'] = $FAHRZEUG; $FAHRZEUGE = array(); $_SESSION['FAHRZEUGE'] = $FAHRZEUGE; } $FAHRZEUG = &$_SESSION['FAHRZEUG']; $FAHRZEUGE = &$_SESSION['FAHRZEUGE']; // wenns mehrere zur Auswahl gibt nach KBA-Nummer-Eingabe // Motor inizialisieren if ( !isset($_SESSION['MOTOR']) || !is_object($_SESSION['MOTOR']) || !$CONFIG->isTecDoc() ){ // wenns kein TecDoc gibt, dann auch den evtl. ausgewählten Motor löschen $MOTOR = new Motor(); $_SESSION['MOTOR'] = $MOTOR; $MOTOREN = array(); $_SESSION['MOTOREN'] = $MOTOREN; } $MOTOR = &$_SESSION['MOTOR']; $MOTOREN = &$_SESSION['MOTOREN']; // wenns mehrere zur Auswahl gibt nach Motorcode-Eingabe // Artikelcache inizialisieren if ( !isset($_SESSION['ARTIKELCACHE']) || !is_object($_SESSION['ARTIKELCACHE']) || $AUTOMATIC_LOGOUT ){ $ARTIKELCACHE = new ArtikelCache(); $_SESSION['ARTIKELCACHE'] = $ARTIKELCACHE; } $ARTIKELCACHE = &$_SESSION['ARTIKELCACHE']; //$ARTIKELCACHE->clear(); // wenn der Cache sich immer wieder cleared, gehen keine CSGs, da die zwingend beim Klick im cache sein müssen! // Artikelstamm erzeugen if ( !isset($_SESSION['ARTIKELSTAMM']) || !is_object($_SESSION['ARTIKELSTAMM']) ){ $ARTIKELSTAMM = Artikelstamm::instance(); $_SESSION['ARTIKELSTAMM'] = $ARTIKELSTAMM; } $ARTIKELSTAMM = &$_SESSION['ARTIKELSTAMM']; // TecDoc-Objekt erzeugen if ( !isset($_SESSION['TECDOC']) || !is_object($_SESSION['TECDOC']) ){ $TECDOC = new TecDoc(); $_SESSION['TECDOC'] = $TECDOC; } $TECDOC = &$_SESSION['TECDOC']; // das Bestellungsobjekt wenn es eins gibt if ( !isset($_SESSION['BESTELLUNG']) ){ $_SESSION['BESTELLUNG'] = null; } $BESTELLUNG = &$_SESSION['BESTELLUNG']; // den Sectionpfad wenns einen gibt, wird in doAction() evtl. neu gesetzt if ( !isset($_SESSION['SECTIONPATH']) || !is_array($_SESSION['SECTIONPATH']) ){ $_SESSION['SECTIONPATH'] = array(); } $SECTIONPATH = &$_SESSION['SECTIONPATH']; // den Baugruppenpfad wenns einen gibt, wird in doAction() evtl. neu gesetzt if ( !isset($_SESSION[SESSION_BAUGRUPPENPATH]) ){ $_SESSION[SESSION_BAUGRUPPENPATH] = array(); } $BAUGRUPPENPATH = &$_SESSION[SESSION_BAUGRUPPENPATH]; // die Webisco-Action in der Session merken für Widgetübergreifende abänderung in doAction() if ( !isset($_SESSION['WEBISCOACTION']) ){ $_SESSION['WEBISCOACTION'] = ''; } $WEBISCOACTION = &$_SESSION['WEBISCOACTION']; // die Webisco-Parameter auch in der Session merken if ( !isset($_SESSION['WEBISCOPARAMS']) ){ $_SESSION['WEBISCOPARAMS'] = array(); } $WEBISCOPARAMS = &$_SESSION['WEBISCOPARAMS']; $unserialize_no_classes = array('allowed_classes' => false); // jetzt die relevanten Webisco-Parameter aus den GET- // und POST-Parametern wiederherstellen $WEBISCOPARAMS = array(); if ( isset($_GET['webiscoparams']) ){ // wenns nicht base64 enkodiert is, muss man stripslashes(stripslashes($serialized)) machen! $phpserialized = base64_decode($_GET['webiscoparams']); $unzipped = @gzuncompress($phpserialized); if ( $unzipped != false ){ $phpserialized = $unzipped; } $WEBISCOPARAMS = @unserialize($phpserialized, $unserialize_no_classes); if ( !is_array($WEBISCOPARAMS) ) { // dann ist was schief gegangen, wieder ein Array herstellen! $WEBISCOPARAMS = array(); } } // Parameter von der webisco.inc, die mit "webisco..." beginnen $durchschleif_parameter = array(); $durchschleif_parameter['webiscopermalogin'] = WEBISCOPARAM_PERMALOGIN; $durchschleif_parameter['webiscopermapasswort'] = WEBISCOPARAM_PERMAPASSWORT; $durchschleif_parameter['webiscosearch'] = WEBISCOPARAM_WEBISCOSEARCH; $durchschleif_parameter['webiscosearchoption'] = WEBISCOPARAM_WEBISCOSEARCH_OPTION; $durchschleif_parameter['webiscopaymentcheck'] = WEBISCOPARAM_PAYMENT_CHECK; $durchschleif_parameter['webiscopaymentcancel'] = WEBISCOPARAM_PAYMENT_CANCEL; $durchschleif_parameter['webiscopaymentsystem'] = WEBISCOPARAM_PAYMENT_SYSTEM; $durchschleif_parameter['webiscoartikelid'] = WEBISCOPARAM_ARTIKELID; $durchschleif_parameter['webiscopaypaltoken'] = WEBISCOPARAM_PAYPALTOKEN; $durchschleif_parameter['webiscopaymentsessionid'] = WEBISCOPARAM_PAYMENTSESSIONID; foreach ( $durchschleif_parameter as $getparameter => $webiscoparam ){ if ( isset($_GET[$getparameter]) && (strlen($_GET[$getparameter]) > 0 || $webiscoparam == WEBISCOPARAM_WEBISCOSEARCH )){ $WEBISCOPARAMS[$webiscoparam] = $_GET[$getparameter]; switch ( $webiscoparam ){ case WEBISCOPARAM_PAYMENT_CHECK: case WEBISCOPARAM_PAYMENT_CANCEL: $WEBISCOPARAMS[WEBISCOPARAM_ACTION] = ACTION_ZAHLUNG; break; case WEBISCOPARAM_ARTIKELID: $WEBISCOPARAMS[WEBISCOPARAM_ACTION] = ACTION_SHOW_ARTIKEL; break; case WEBISCOPARAM_WEBISCOSEARCH: $WEBISCOPARAMS[WEBISCOPARAM_ACTION] = ACTION_SEARCH; break; } } } if ( !isset($_SESSION[SESSION_WEBISCOSTATISTIK]) ){ $_SESSION[SESSION_WEBISCOSTATISTIK] = false; } $WEBISCOSTATISTIK = &$_SESSION[SESSION_WEBISCOSTATISTIK]; if ( isset($_GET[WEBISCOPARAM_WEBISCOSTATISTIK]) ){ $WEBISCOSTATISTIK = ($_GET[WEBISCOPARAM_WEBISCOSTATISTIK] == 'true'); } // und noch alle POST-Variablen in die Websico-Params reinkopieren foreach($_POST as $name => $value){ $WEBISCOPARAMS[$name] = $value; } $REFERER = &$_SESSION['REFERER']; // Die Zeiten in Sekunden (muss auch in artikelcsv.php inizialisiert werden!) $ZEITEN['tecdoc'] = 0; $ZEITEN['cache'] = 0; $ZEITEN['daemon'] = 0; // Die aktuelle Action holen $WEBISCOACTION = @$WEBISCOPARAMS[WEBISCOPARAM_ACTION]; // jetzt die externen Webisco-Parameter wiederherstellen $webiscoextparams = array(); if ( isset($_GET['webiscoextparams']) ){ $webiscoextparams = stripslashes(stripslashes($_GET['webiscoextparams'])); $webiscoextparams = unserialize($webiscoextparams, $unserialize_no_classes); } $webiscoextscriptname = @$_GET['webiscoextscriptname']; // ist das BR-Debug-Flag gesetzt? // bei getWebiscoWidget() kann man im get-parameter-Array 'brdebug' => true mitgeben! if ( isset($webiscoextparams['brdebug']) ){ $brdebug = boolval($webiscoextparams['brdebug']); } if ( !isset($brdebug) ){ $brdebug = false; } //einen File erzeugen, der zeigt, was gerade von einem Client requested wurde if ( isset($_REQUEST['webiscowidget']) ){ $active_file = '/tmp/webisco_request_'.date('Y-m-d_H-i-s').'_'.$_SERVER['REMOTE_ADDR'].'_'.$kundennummer.'_'.$_REQUEST['webiscowidget'].'_'.rand(); } else if ( isset($_REQUEST['webiscowidgets']) ){ $active_file = '/tmp/webisco_request_'.date('Y-m-d_H-i-s').'_'.$_SERVER['REMOTE_ADDR'].'_'.$kundennummer.'_webiscowidgets_'.rand(); } else { print404(); die(); } $filehandle = fopen($active_file, 'w'); fwrite($filehandle, "action: $WEBISCOACTION\n"); foreach ( $WEBISCOPARAMS as $key => $value ){ //error_log("$key: $value"); fwrite($filehandle, "$key: $value\n"); } fclose($filehandle); $serialize_output = false; $webisco_widget_array = array(); $output_array = array(); // de Buffer-ethode um alle Widget-Anfragen in ein extra String-Array-Feld zu packen function saveOutput($buffer) { global $output_array; // Strings haben oft seltsame UTF-8-Zeichen, denn bei komischen Binärdaten (komische Whitespaces z.B. von TecDoc) gehen die Strings im Array kaputt sowohl bei serialize() als auch bei json_encode() // base64 ginge alternativ aber da wird ja alles länger // Unnötige Whitespaces, Zeilenumbrüche und Tabs entfernen $buffer = preg_replace(['/>\s+<', ' ', ''], $buffer); $output_array[] = $buffer; return ''; } class WebiscoWidget { public $name = ''; public $parameter = array(); } // wurde ein spezieller Widget angefragt? if ( isset($_REQUEST['webiscowidget']) ){ $widget = new WebiscoWidget(); $widget->name = strtolower(stripslashes(stripslashes($_REQUEST['webiscowidget']))); if ( isset($_REQUEST['webiscowidgetparams']) ){ $tmpwidgetparams = stripslashes(stripslashes($_REQUEST['webiscowidgetparams'])); $tmpwidgetparams = @unserialize($tmpwidgetparams, $unserialize_no_classes); if ( is_array($tmpwidgetparams) ){ foreach($tmpwidgetparams as $name => $value){ if ( is_string($value) ){ $widget->parameter[strtolower($name)] = strtolower($value); } else if ( is_array($value) ){ $widget->parameter[strtolower($name)] = $value; } else if ( is_int($value) ){ $widget->parameter[strtolower($name)] = $value; } } } } $webisco_widget_array[] = $widget; } else if ( isset($_REQUEST['webiscowidgets']) ){ $serialize_output = true; $tmp_array = @unserialize($_REQUEST['webiscowidgets'], array('allowed_classes' => array('WebiscoWidget'))); if ( is_array($tmp_array) ){ foreach ( $tmp_array as $widget ){ if ( !is_object($widget) || get_class($widget) != 'WebiscoWidget' ){ return 'Es muss ein Array von WebiscoWidget-Objekten übergeben werden.'; } else { $webisco_widget_array[] = $widget; } } } } // nun alle Widgets der Reihe nach generieren foreach ( $webisco_widget_array as $widget ){ if ( $serialize_output ){ ob_start('saveOutput'); } if ( strlen($widget->name) == 0 ){ print404(); } // Tabellen als oder
? $divtables = false; if ( isset($widget->parameter[WIDGETPARAM_GRIDELEMENT]) ){ $divtables = ($widget->parameter[WIDGETPARAM_GRIDELEMENT] == 'div'); } // wurde schon ein Fahrzeug übergeben? // Dann laden wir das von TecDoc, aber nur wenns // ein anderes ist als das aktuelle if ( isset($WEBISCOPARAMS[WEBISCOPARAM_FAHRZEUGID]) && $WEBISCOPARAMS[WEBISCOPARAM_FAHRZEUGID] > 0 && (!isset($FAHRZEUG) || $WEBISCOPARAMS[WEBISCOPARAM_FAHRZEUGID] != $FAHRZEUG->getID()) ){ $MOTOR = new Motor(); $FAHRZEUG = $TECDOC->getFahrzeugFromCarID($WEBISCOPARAMS[WEBISCOPARAM_FAHRZEUGID]); // dann stimmen eventuell die ArtikelZusätze nicht mehr -> Zusätze im Cache leeren } /* else if ( isset($WEBISCOPARAMS[WEBISCOPARAM_MOTORCODE]) && $WEBISCOPARAMS[WEBISCOPARAM_MOTORCODE] != $MOTOR->getMotorCode() ){ $MOTOR = $TECDOC->getMotorFromMotorCode($WEBISCOPARAMS[WEBISCOPARAM_MOTORCODE]); // dann stimmen eventuell die ArtikelZusätze nicht mehr -> Zusätze im Cache leeren } */ switch ( $widget->name ) { case WIDGET_INIT: doAction(); break; case WIDGET_SUCHE: $option_exaktsuche = false; if ( isset($widget->parameter[WIDGETPARAM_SUCHE_OPTION]) ){ $option_exaktsuche = ($widget->parameter[WIDGETPARAM_SUCHE_OPTION] == WIDGETPARAM_SUCHE_OPTION_EXAKTSUCHE); } printSuche($option_exaktsuche); break; case WIDGET_FAHRZEUG: $permanent = false; $details = false; if ( isset($widget->parameter[WIDGETPARAM_FAHRZEUGANZEIGE_TYP]) ){ switch ( $widget->parameter[WIDGETPARAM_FAHRZEUGAUSWAHL_TYP] ){ case WIDGETPARAM_FAHRZEUGANZEIGE_TYP_DETAIL: $details = true; break; case WIDGETPARAM_FAHRZEUGANZEIGE_TYP_NORMAL: default: $details = false; break; } } printFahrzeugInfo($permanent, $details); break; case WIDGET_FAHRZEUGAUSWAHL: $permanent = false; if ( isset($widget->parameter[WIDGETPARAM_FAHRZEUGAUSWAHL_TYP]) ){ switch ( $widget->parameter[WIDGETPARAM_FAHRZEUGAUSWAHL_TYP] ){ case WIDGETPARAM_FAHRZEUGAUSWAHL_TYP_PERMANENT: $permanent = true; break; case WIDGETPARAM_FAHRZEUGAUSWAHL_TYP_NORMAL: default: $permanent = false; break; } } printFahrzeugAuswahl($permanent); break; case WIDGET_LOGIN: printKundenBox(); break; case WIDGET_NAVIGATION: if ( isset($widget->parameter[WIDGETPARAM_NAVIGATION_LAYOUT]) ){ switch ( $widget->parameter[WIDGETPARAM_NAVIGATION_LAYOUT] ){ case WIDGETPARAM_NAVIGATION_LAYOUT_LINE: printRootLine(); break; case WIDGETPARAM_NAVIGATION_LAYOUT_TREE: $angebote = true; if ( isset($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_ANGEBOTE]) ){ $angebote = ($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_ANGEBOTE] == 'true'); } $baugruppen = true; if ( isset($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_BAUGRUPPEN]) ){ $baugruppen = ($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_BAUGRUPPEN] == 'true'); } printTreeNavigation($angebote, $baugruppen); break; case WIDGETPARAM_NAVIGATION_LAYOUT_STEPUP: printUpButton(); break; case WIDGETPARAM_NAVIGATION_LAYOUT_TEXTLINKS: printTextLinks(); break; } } break; case WIDGET_LINK: if ( isset($widget->parameter[WIDGETPARAM_LINK_TYP]) ){ $text = @$widget->parameter[WIDGETPARAM_LINK_TYP_TEXT]; // das ist der text, der im Link stehen soll if ( is_string($text) || $text == '' ){ $text = trim(strval($text)); $linktyp = strval($widget->parameter[WIDGETPARAM_LINK_TYP]); switch ( $linktyp ){ case WIDGETPARAM_LINK_TYP_AGB: printAGBButton($text); break; case WIDGETPARAM_LINK_TYP_ARTIKEL: printArtikelButton(intval($widget->parameter[WIDGETPARAM_LINK_TYP_ARTIKEL_ID]), $text); break; case WIDGETPARAM_LINK_TYP_ALTOELVERORDNUNG: printAltoelverordnungButton($text); break; case WIDGETPARAM_LINK_TYP_BARRIEREFREIHEIT: printBarriereFreiheitButton($text); break; case WIDGETPARAM_LINK_TYP_BATTERIEVERORDNUNG: printBatterieverordnungButton($text); break; case WIDGETPARAM_LINK_TYP_DATENSCHUTZ: printDatenschutzButton($text); break; case WIDGETPARAM_LINK_TYP_IMPRESSUM: printImpressumButton($text); break; case WIDGETPARAM_LINK_TYP_VERSANDBEDINGUNGEN: printVersandbedingungenButton($text); break; case WIDGETPARAM_LINK_TYP_WIDERRUFSBELEHRUNG: printWiderrufsbelehrungButton($text); break; case WIDGETPARAM_LINK_TYP_REKLAMATIONEN: printReklamationenButton($text); break; case WIDGETPARAM_LINK_TYP_ALTTEILPFAND: printAltteilpfandButton($text); break; case WIDGETPARAM_LINK_TYP_STARTSEITE: printStartseitenButton($text); break; case WIDGETPARAM_LINK_TYP_WARENKORB: printWarenkorbButton($text); break; case WIDGETPARAM_LINK_TYP_KUNDEANLEGEN: printKundeAnlegenButton($text); break; case WIDGETPARAM_LINK_TYP_KUNDEBEARBEITEN: printKundeBearbeitenButton($text); break; default: break; } } } break; case WIDGET_WARENKORB: printWarenkorbInfo(); break; case WIDGET_COPYRIGHT: printCopyright(); break; case WIDGET_HAUPTBEREICH: showAction(); break; case WIDGET_ARTIKELDATEN: $format = WIDGETPARAM_FORMAT_TEXT; if ( isset($widget->parameter[WIDGETPARAM_FORMAT]) && $widget->parameter[WIDGETPARAM_FORMAT] == WIDGETPARAM_FORMAT_JSON ){ $format = WIDGETPARAM_FORMAT_JSON; } printAktuelleArtikelDaten($format); break; case WIDGET_FAHRZEUGDATEN: $format = WIDGETPARAM_FORMAT_TEXT; if ( isset($widget->parameter[WIDGETPARAM_FORMAT]) && $widget->parameter[WIDGETPARAM_FORMAT] == WIDGETPARAM_FORMAT_JSON ){ $format = WIDGETPARAM_FORMAT_JSON; } printAktuelleFahrzeugDaten($format); break; case WIDGET_KATEGORIEPFAD: $format = WIDGETPARAM_FORMAT_TEXT; if ( isset($widget->parameter[WIDGETPARAM_FORMAT]) && $widget->parameter[WIDGETPARAM_FORMAT] == WIDGETPARAM_FORMAT_JSON ){ $format = WIDGETPARAM_FORMAT_JSON; } printKategoriePfad($format); break; case WIDGET_KATEGORIEBAUM: $angebote = true; if ( isset($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_ANGEBOTE]) ){ $angebote = ($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_ANGEBOTE] == 'true'); } $baugruppen = true; if ( isset($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_BAUGRUPPEN]) ){ $baugruppen = ($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_BAUGRUPPEN] == 'true'); } printKategorieBaum($angebote,$baugruppen); break; case WIDGET_SPRACHWAHL: if ( isset($widget->parameter[WIDGETPARAM_SPRACHWAHL_SPRACHEN]) ){ $sprachen = $widget->parameter[WIDGETPARAM_SPRACHWAHL_SPRACHEN]; if ( is_array($sprachen) ){ printSprachwahl($sprachen); } } break; case WIDGET_ARTIKEL: if ( isset($widget->parameter[WIDGETPARAM_ARTIKEL_ID]) ){ $artikelid = intval($widget->parameter[WIDGETPARAM_ARTIKEL_ID]); if ( $artikelid > 0 ){ printArtikelFromID($artikelid); } } break; case WIDGET_KUNDEBEARBEITEN:{ include(includeDir().'kunde.inc.php'); editKunde(true); } break; case WIDGET_SHOP: { doAction(); ?>


0 ){ //error_log("server count = ".count($output_array)); //error_log(serialize($output_array)); //print(serialize($output_array)); print(json_encode($output_array)); } } @unlink($active_file); ?> Webisco Shop Demo
L A D E N

0 ){ $_SESSION['REFERER'] = $_GET['referer']; } $REFERER = &$_SESSION['REFERER']; // Die Session beenden, wenn sich die IP ändert oder // wenn die Zeit der Session abgelaufen ist // if ( isset($_SESSION['IP']) && $_SESSION['IP'] != $_GET['webiscoip'] ){ $AUTOMATIC_LOGOUT = true; session_regenerate_id(); } else if ( $KUNDE->exists() && isset($_SESSION['TIMEOUT']) && $_SESSION['TIMEOUT'] < time() ){ $AUTOMATIC_LOGOUT = true; } $_SESSION['IP'] = @$_GET['webiscoip']; $_SESSION['TIMEOUT'] = time() + $session_timeout_minuten*60; // Warenkorb inizialisieren if ( !isset($_SESSION['WARENKORB']) || !is_object($_SESSION['WARENKORB']) ){ $WARENKORB = new Warenkorb(); $_SESSION['WARENKORB'] = $WARENKORB; } $WARENKORB = &$_SESSION['WARENKORB']; // Konfiguration erzeugen if ( !isset($_SESSION['CONFIG']) || !is_object($_SESSION['CONFIG']) || $AUTOMATIC_LOGOUT ){ $CONFIG = Config::getNewInstance(); $_SESSION['CONFIG'] = $CONFIG; } $CONFIG = &$_SESSION['CONFIG']; //$CONFIG = Config::getNewInstance(); //$_SESSION['CONFIG'] = $CONFIG; // Fahrzeug inizialisieren if ( !isset($_SESSION['FAHRZEUG']) || !is_object($_SESSION['FAHRZEUG']) || !$CONFIG->isTecDoc() ){ // wenns kein TecDoc gibt, dann auch das evtl. ausgewählte Fahrzeug löschen $FAHRZEUG = new Fahrzeug(); $_SESSION['FAHRZEUG'] = $FAHRZEUG; $FAHRZEUGE = array(); $_SESSION['FAHRZEUGE'] = $FAHRZEUGE; } $FAHRZEUG = &$_SESSION['FAHRZEUG']; $FAHRZEUGE = &$_SESSION['FAHRZEUGE']; // wenns mehrere zur Auswahl gibt nach KBA-Nummer-Eingabe // Motor inizialisieren if ( !isset($_SESSION['MOTOR']) || !is_object($_SESSION['MOTOR']) || !$CONFIG->isTecDoc() ){ // wenns kein TecDoc gibt, dann auch den evtl. ausgewählten Motor löschen $MOTOR = new Motor(); $_SESSION['MOTOR'] = $MOTOR; $MOTOREN = array(); $_SESSION['MOTOREN'] = $MOTOREN; } $MOTOR = &$_SESSION['MOTOR']; $MOTOREN = &$_SESSION['MOTOREN']; // wenns mehrere zur Auswahl gibt nach Motorcode-Eingabe // Artikelcache inizialisieren if ( !isset($_SESSION['ARTIKELCACHE']) || !is_object($_SESSION['ARTIKELCACHE']) || $AUTOMATIC_LOGOUT ){ $ARTIKELCACHE = new ArtikelCache(); $_SESSION['ARTIKELCACHE'] = $ARTIKELCACHE; } $ARTIKELCACHE = &$_SESSION['ARTIKELCACHE']; //$ARTIKELCACHE->clear(); // wenn der Cache sich immer wieder cleared, gehen keine CSGs, da die zwingend beim Klick im cache sein müssen! // Artikelstamm erzeugen if ( !isset($_SESSION['ARTIKELSTAMM']) || !is_object($_SESSION['ARTIKELSTAMM']) ){ $ARTIKELSTAMM = Artikelstamm::instance(); $_SESSION['ARTIKELSTAMM'] = $ARTIKELSTAMM; } $ARTIKELSTAMM = &$_SESSION['ARTIKELSTAMM']; // TecDoc-Objekt erzeugen if ( !isset($_SESSION['TECDOC']) || !is_object($_SESSION['TECDOC']) ){ $TECDOC = new TecDoc(); $_SESSION['TECDOC'] = $TECDOC; } $TECDOC = &$_SESSION['TECDOC']; // das Bestellungsobjekt wenn es eins gibt if ( !isset($_SESSION['BESTELLUNG']) ){ $_SESSION['BESTELLUNG'] = null; } $BESTELLUNG = &$_SESSION['BESTELLUNG']; // den Sectionpfad wenns einen gibt, wird in doAction() evtl. neu gesetzt if ( !isset($_SESSION['SECTIONPATH']) || !is_array($_SESSION['SECTIONPATH']) ){ $_SESSION['SECTIONPATH'] = array(); } $SECTIONPATH = &$_SESSION['SECTIONPATH']; // den Baugruppenpfad wenns einen gibt, wird in doAction() evtl. neu gesetzt if ( !isset($_SESSION[SESSION_BAUGRUPPENPATH]) ){ $_SESSION[SESSION_BAUGRUPPENPATH] = array(); } $BAUGRUPPENPATH = &$_SESSION[SESSION_BAUGRUPPENPATH]; // die Webisco-Action in der Session merken für Widgetübergreifende abänderung in doAction() if ( !isset($_SESSION['WEBISCOACTION']) ){ $_SESSION['WEBISCOACTION'] = ''; } $WEBISCOACTION = &$_SESSION['WEBISCOACTION']; // die Webisco-Parameter auch in der Session merken if ( !isset($_SESSION['WEBISCOPARAMS']) ){ $_SESSION['WEBISCOPARAMS'] = array(); } $WEBISCOPARAMS = &$_SESSION['WEBISCOPARAMS']; $unserialize_no_classes = array('allowed_classes' => false); // jetzt die relevanten Webisco-Parameter aus den GET- // und POST-Parametern wiederherstellen $WEBISCOPARAMS = array(); if ( isset($_GET['webiscoparams']) ){ // wenns nicht base64 enkodiert is, muss man stripslashes(stripslashes($serialized)) machen! $phpserialized = base64_decode($_GET['webiscoparams']); $unzipped = @gzuncompress($phpserialized); if ( $unzipped != false ){ $phpserialized = $unzipped; } $WEBISCOPARAMS = @unserialize($phpserialized, $unserialize_no_classes); if ( !is_array($WEBISCOPARAMS) ) { // dann ist was schief gegangen, wieder ein Array herstellen! $WEBISCOPARAMS = array(); } } // Parameter von der webisco.inc, die mit "webisco..." beginnen $durchschleif_parameter = array(); $durchschleif_parameter['webiscopermalogin'] = WEBISCOPARAM_PERMALOGIN; $durchschleif_parameter['webiscopermapasswort'] = WEBISCOPARAM_PERMAPASSWORT; $durchschleif_parameter['webiscosearch'] = WEBISCOPARAM_WEBISCOSEARCH; $durchschleif_parameter['webiscosearchoption'] = WEBISCOPARAM_WEBISCOSEARCH_OPTION; $durchschleif_parameter['webiscopaymentcheck'] = WEBISCOPARAM_PAYMENT_CHECK; $durchschleif_parameter['webiscopaymentcancel'] = WEBISCOPARAM_PAYMENT_CANCEL; $durchschleif_parameter['webiscopaymentsystem'] = WEBISCOPARAM_PAYMENT_SYSTEM; $durchschleif_parameter['webiscoartikelid'] = WEBISCOPARAM_ARTIKELID; $durchschleif_parameter['webiscopaypaltoken'] = WEBISCOPARAM_PAYPALTOKEN; $durchschleif_parameter['webiscopaymentsessionid'] = WEBISCOPARAM_PAYMENTSESSIONID; foreach ( $durchschleif_parameter as $getparameter => $webiscoparam ){ if ( isset($_GET[$getparameter]) && (strlen($_GET[$getparameter]) > 0 || $webiscoparam == WEBISCOPARAM_WEBISCOSEARCH )){ $WEBISCOPARAMS[$webiscoparam] = $_GET[$getparameter]; switch ( $webiscoparam ){ case WEBISCOPARAM_PAYMENT_CHECK: case WEBISCOPARAM_PAYMENT_CANCEL: $WEBISCOPARAMS[WEBISCOPARAM_ACTION] = ACTION_ZAHLUNG; break; case WEBISCOPARAM_ARTIKELID: $WEBISCOPARAMS[WEBISCOPARAM_ACTION] = ACTION_SHOW_ARTIKEL; break; case WEBISCOPARAM_WEBISCOSEARCH: $WEBISCOPARAMS[WEBISCOPARAM_ACTION] = ACTION_SEARCH; break; } } } if ( !isset($_SESSION[SESSION_WEBISCOSTATISTIK]) ){ $_SESSION[SESSION_WEBISCOSTATISTIK] = false; } $WEBISCOSTATISTIK = &$_SESSION[SESSION_WEBISCOSTATISTIK]; if ( isset($_GET[WEBISCOPARAM_WEBISCOSTATISTIK]) ){ $WEBISCOSTATISTIK = ($_GET[WEBISCOPARAM_WEBISCOSTATISTIK] == 'true'); } // und noch alle POST-Variablen in die Websico-Params reinkopieren foreach($_POST as $name => $value){ $WEBISCOPARAMS[$name] = $value; } $REFERER = &$_SESSION['REFERER']; // Die Zeiten in Sekunden (muss auch in artikelcsv.php inizialisiert werden!) $ZEITEN['tecdoc'] = 0; $ZEITEN['cache'] = 0; $ZEITEN['daemon'] = 0; // Die aktuelle Action holen $WEBISCOACTION = @$WEBISCOPARAMS[WEBISCOPARAM_ACTION]; // jetzt die externen Webisco-Parameter wiederherstellen $webiscoextparams = array(); if ( isset($_GET['webiscoextparams']) ){ $webiscoextparams = stripslashes(stripslashes($_GET['webiscoextparams'])); $webiscoextparams = unserialize($webiscoextparams, $unserialize_no_classes); } $webiscoextscriptname = @$_GET['webiscoextscriptname']; // ist das BR-Debug-Flag gesetzt? // bei getWebiscoWidget() kann man im get-parameter-Array 'brdebug' => true mitgeben! if ( isset($webiscoextparams['brdebug']) ){ $brdebug = boolval($webiscoextparams['brdebug']); } if ( !isset($brdebug) ){ $brdebug = false; } //einen File erzeugen, der zeigt, was gerade von einem Client requested wurde if ( isset($_REQUEST['webiscowidget']) ){ $active_file = '/tmp/webisco_request_'.date('Y-m-d_H-i-s').'_'.$_SERVER['REMOTE_ADDR'].'_'.$kundennummer.'_'.$_REQUEST['webiscowidget'].'_'.rand(); } else if ( isset($_REQUEST['webiscowidgets']) ){ $active_file = '/tmp/webisco_request_'.date('Y-m-d_H-i-s').'_'.$_SERVER['REMOTE_ADDR'].'_'.$kundennummer.'_webiscowidgets_'.rand(); } else { print404(); die(); } $filehandle = fopen($active_file, 'w'); fwrite($filehandle, "action: $WEBISCOACTION\n"); foreach ( $WEBISCOPARAMS as $key => $value ){ //error_log("$key: $value"); fwrite($filehandle, "$key: $value\n"); } fclose($filehandle); $serialize_output = false; $webisco_widget_array = array(); $output_array = array(); // de Buffer-ethode um alle Widget-Anfragen in ein extra String-Array-Feld zu packen function saveOutput($buffer) { global $output_array; // Strings haben oft seltsame UTF-8-Zeichen, denn bei komischen Binärdaten (komische Whitespaces z.B. von TecDoc) gehen die Strings im Array kaputt sowohl bei serialize() als auch bei json_encode() // base64 ginge alternativ aber da wird ja alles länger // Unnötige Whitespaces, Zeilenumbrüche und Tabs entfernen $buffer = preg_replace(['/>\s+', '/\s{2,}/', '/\n|\r/'], ['><', ' ', ''], $buffer); $output_array[] = $buffer; return ''; } class WebiscoWidget { public $name = ''; public $parameter = array(); } // wurde ein spezieller Widget angefragt? if ( isset($_REQUEST['webiscowidget']) ){ $widget = new WebiscoWidget(); $widget->name = strtolower(stripslashes(stripslashes($_REQUEST['webiscowidget']))); if ( isset($_REQUEST['webiscowidgetparams']) ){ $tmpwidgetparams = stripslashes(stripslashes($_REQUEST['webiscowidgetparams'])); $tmpwidgetparams = @unserialize($tmpwidgetparams, $unserialize_no_classes); if ( is_array($tmpwidgetparams) ){ foreach($tmpwidgetparams as $name => $value){ if ( is_string($value) ){ $widget->parameter[strtolower($name)] = strtolower($value); } else if ( is_array($value) ){ $widget->parameter[strtolower($name)] = $value; } else if ( is_int($value) ){ $widget->parameter[strtolower($name)] = $value; } } } } $webisco_widget_array[] = $widget; } else if ( isset($_REQUEST['webiscowidgets']) ){ $serialize_output = true; $tmp_array = @unserialize($_REQUEST['webiscowidgets'], array('allowed_classes' => array('WebiscoWidget'))); if ( is_array($tmp_array) ){ foreach ( $tmp_array as $widget ){ if ( !is_object($widget) || get_class($widget) != 'WebiscoWidget' ){ return 'Es muss ein Array von WebiscoWidget-Objekten übergeben werden.'; } else { $webisco_widget_array[] = $widget; } } } } // nun alle Widgets der Reihe nach generieren foreach ( $webisco_widget_array as $widget ){ if ( $serialize_output ){ ob_start('saveOutput'); } if ( strlen($widget->name) == 0 ){ print404(); } // Tabellen als

oder
? $divtables = false; if ( isset($widget->parameter[WIDGETPARAM_GRIDELEMENT]) ){ $divtables = ($widget->parameter[WIDGETPARAM_GRIDELEMENT] == 'div'); } // wurde schon ein Fahrzeug übergeben? // Dann laden wir das von TecDoc, aber nur wenns // ein anderes ist als das aktuelle if ( isset($WEBISCOPARAMS[WEBISCOPARAM_FAHRZEUGID]) && $WEBISCOPARAMS[WEBISCOPARAM_FAHRZEUGID] > 0 && (!isset($FAHRZEUG) || $WEBISCOPARAMS[WEBISCOPARAM_FAHRZEUGID] != $FAHRZEUG->getID()) ){ $MOTOR = new Motor(); $FAHRZEUG = $TECDOC->getFahrzeugFromCarID($WEBISCOPARAMS[WEBISCOPARAM_FAHRZEUGID]); // dann stimmen eventuell die ArtikelZusätze nicht mehr -> Zusätze im Cache leeren } /* else if ( isset($WEBISCOPARAMS[WEBISCOPARAM_MOTORCODE]) && $WEBISCOPARAMS[WEBISCOPARAM_MOTORCODE] != $MOTOR->getMotorCode() ){ $MOTOR = $TECDOC->getMotorFromMotorCode($WEBISCOPARAMS[WEBISCOPARAM_MOTORCODE]); // dann stimmen eventuell die ArtikelZusätze nicht mehr -> Zusätze im Cache leeren } */ switch ( $widget->name ) { case WIDGET_INIT: doAction(); break; case WIDGET_SUCHE: $option_exaktsuche = false; if ( isset($widget->parameter[WIDGETPARAM_SUCHE_OPTION]) ){ $option_exaktsuche = ($widget->parameter[WIDGETPARAM_SUCHE_OPTION] == WIDGETPARAM_SUCHE_OPTION_EXAKTSUCHE); } printSuche($option_exaktsuche); break; case WIDGET_FAHRZEUG: $permanent = false; $details = false; if ( isset($widget->parameter[WIDGETPARAM_FAHRZEUGANZEIGE_TYP]) ){ switch ( $widget->parameter[WIDGETPARAM_FAHRZEUGAUSWAHL_TYP] ){ case WIDGETPARAM_FAHRZEUGANZEIGE_TYP_DETAIL: $details = true; break; case WIDGETPARAM_FAHRZEUGANZEIGE_TYP_NORMAL: default: $details = false; break; } } printFahrzeugInfo($permanent, $details); break; case WIDGET_FAHRZEUGAUSWAHL: $permanent = false; if ( isset($widget->parameter[WIDGETPARAM_FAHRZEUGAUSWAHL_TYP]) ){ switch ( $widget->parameter[WIDGETPARAM_FAHRZEUGAUSWAHL_TYP] ){ case WIDGETPARAM_FAHRZEUGAUSWAHL_TYP_PERMANENT: $permanent = true; break; case WIDGETPARAM_FAHRZEUGAUSWAHL_TYP_NORMAL: default: $permanent = false; break; } } printFahrzeugAuswahl($permanent); break; case WIDGET_LOGIN: printKundenBox(); break; case WIDGET_NAVIGATION: if ( isset($widget->parameter[WIDGETPARAM_NAVIGATION_LAYOUT]) ){ switch ( $widget->parameter[WIDGETPARAM_NAVIGATION_LAYOUT] ){ case WIDGETPARAM_NAVIGATION_LAYOUT_LINE: printRootLine(); break; case WIDGETPARAM_NAVIGATION_LAYOUT_TREE: $angebote = true; if ( isset($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_ANGEBOTE]) ){ $angebote = ($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_ANGEBOTE] == 'true'); } $baugruppen = true; if ( isset($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_BAUGRUPPEN]) ){ $baugruppen = ($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_BAUGRUPPEN] == 'true'); } printTreeNavigation($angebote, $baugruppen); break; case WIDGETPARAM_NAVIGATION_LAYOUT_STEPUP: printUpButton(); break; case WIDGETPARAM_NAVIGATION_LAYOUT_TEXTLINKS: printTextLinks(); break; } } break; case WIDGET_LINK: if ( isset($widget->parameter[WIDGETPARAM_LINK_TYP]) ){ $text = @$widget->parameter[WIDGETPARAM_LINK_TYP_TEXT]; // das ist der text, der im Link stehen soll if ( is_string($text) || $text == '' ){ $text = trim(strval($text)); $linktyp = strval($widget->parameter[WIDGETPARAM_LINK_TYP]); switch ( $linktyp ){ case WIDGETPARAM_LINK_TYP_AGB: printAGBButton($text); break; case WIDGETPARAM_LINK_TYP_ARTIKEL: printArtikelButton(intval($widget->parameter[WIDGETPARAM_LINK_TYP_ARTIKEL_ID]), $text); break; case WIDGETPARAM_LINK_TYP_ALTOELVERORDNUNG: printAltoelverordnungButton($text); break; case WIDGETPARAM_LINK_TYP_BARRIEREFREIHEIT: printBarriereFreiheitButton($text); break; case WIDGETPARAM_LINK_TYP_BATTERIEVERORDNUNG: printBatterieverordnungButton($text); break; case WIDGETPARAM_LINK_TYP_DATENSCHUTZ: printDatenschutzButton($text); break; case WIDGETPARAM_LINK_TYP_IMPRESSUM: printImpressumButton($text); break; case WIDGETPARAM_LINK_TYP_VERSANDBEDINGUNGEN: printVersandbedingungenButton($text); break; case WIDGETPARAM_LINK_TYP_WIDERRUFSBELEHRUNG: printWiderrufsbelehrungButton($text); break; case WIDGETPARAM_LINK_TYP_REKLAMATIONEN: printReklamationenButton($text); break; case WIDGETPARAM_LINK_TYP_ALTTEILPFAND: printAltteilpfandButton($text); break; case WIDGETPARAM_LINK_TYP_STARTSEITE: printStartseitenButton($text); break; case WIDGETPARAM_LINK_TYP_WARENKORB: printWarenkorbButton($text); break; case WIDGETPARAM_LINK_TYP_KUNDEANLEGEN: printKundeAnlegenButton($text); break; case WIDGETPARAM_LINK_TYP_KUNDEBEARBEITEN: printKundeBearbeitenButton($text); break; default: break; } } } break; case WIDGET_WARENKORB: printWarenkorbInfo(); break; case WIDGET_COPYRIGHT: printCopyright(); break; case WIDGET_HAUPTBEREICH: showAction(); break; case WIDGET_ARTIKELDATEN: $format = WIDGETPARAM_FORMAT_TEXT; if ( isset($widget->parameter[WIDGETPARAM_FORMAT]) && $widget->parameter[WIDGETPARAM_FORMAT] == WIDGETPARAM_FORMAT_JSON ){ $format = WIDGETPARAM_FORMAT_JSON; } printAktuelleArtikelDaten($format); break; case WIDGET_FAHRZEUGDATEN: $format = WIDGETPARAM_FORMAT_TEXT; if ( isset($widget->parameter[WIDGETPARAM_FORMAT]) && $widget->parameter[WIDGETPARAM_FORMAT] == WIDGETPARAM_FORMAT_JSON ){ $format = WIDGETPARAM_FORMAT_JSON; } printAktuelleFahrzeugDaten($format); break; case WIDGET_KATEGORIEPFAD: $format = WIDGETPARAM_FORMAT_TEXT; if ( isset($widget->parameter[WIDGETPARAM_FORMAT]) && $widget->parameter[WIDGETPARAM_FORMAT] == WIDGETPARAM_FORMAT_JSON ){ $format = WIDGETPARAM_FORMAT_JSON; } printKategoriePfad($format); break; case WIDGET_KATEGORIEBAUM: $angebote = true; if ( isset($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_ANGEBOTE]) ){ $angebote = ($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_ANGEBOTE] == 'true'); } $baugruppen = true; if ( isset($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_BAUGRUPPEN]) ){ $baugruppen = ($widget->parameter[WIDGETPARAM_NAVIGATION_TREE_BAUGRUPPEN] == 'true'); } printKategorieBaum($angebote,$baugruppen); break; case WIDGET_SPRACHWAHL: if ( isset($widget->parameter[WIDGETPARAM_SPRACHWAHL_SPRACHEN]) ){ $sprachen = $widget->parameter[WIDGETPARAM_SPRACHWAHL_SPRACHEN]; if ( is_array($sprachen) ){ printSprachwahl($sprachen); } } break; case WIDGET_ARTIKEL: if ( isset($widget->parameter[WIDGETPARAM_ARTIKEL_ID]) ){ $artikelid = intval($widget->parameter[WIDGETPARAM_ARTIKEL_ID]); if ( $artikelid > 0 ){ printArtikelFromID($artikelid); } } break; case WIDGET_KUNDEBEARBEITEN:{ include(includeDir().'kunde.inc.php'); editKunde(true); } break; case WIDGET_SHOP: { doAction(); ?>


0 ){ //error_log("server count = ".count($output_array)); //error_log(serialize($output_array)); //print(serialize($output_array)); print(json_encode($output_array)); } } @unlink($active_file); ?>
Wähle Kategorie

Login

Sie sind bereits Kunde? Dann melden Sie sich mit Ihrem Benutzer und Passwort an.

Es ist folgender Fehler beim Aufruf des Webshop-Servers aufgetreten: Failed to connect to www.webisco.de port 443 after 20 ms: Couldn't connect to server

Es ist folgender Fehler beim Aufruf des Webshop-Servers aufgetreten: Failed to connect to www.webisco.de port 443 after 21 ms: Couldn't connect to server