client = new SoapClient(null,array('location'=>$client."/index.php",'uri'=>$client)); } catch (Exception $e) { echo $e->getMessage(); } $this->authkey = $authkey; $this->mandant = $mandant; $this->mandantenart = $mandantenart; $this->language = $language; $this->xml = ' '.$this->authkey.' '.$this->mandant.' '.$this->mandantenart.' '.$this->language.' Detail {id}'; $this->xml .= (implode("",$_KRITERIEN)!="" ? "\n".implode("\n",$_KRITERIEN)."\n" : ""); $this->xml .= ''; } public function __destruct() {} public function detailansicht($gfz) { // XML holen # echo str_replace("{id}",$gfz,$this->xml); $xml = $this->client->aktion(str_replace("{id}",$gfz,$this->xml)); # echo $xml; preg_match_all("//",$xml,$matches); $pkw['fahrzeugid'] = $matches[1][0]; preg_match_all("/<(.*)>(.*)<\/(.*)>/",$xml,$matches); /// Ausstattungen foreach($matches[1] AS $k => $v) if(strpos($v,"Ausstattung")!==false) $ausst[] = $matches[2][$k]; $pkw['ausstattung'] = (isset($ausst) ? implode("
",$ausst) : ""); foreach($matches[1] AS $k => $v) if(strpos($v,"Merkmal")!==false) $merkm[] = $matches[2][$k]; $pkw['merkmale'] = implode("
",$merkm); // Bilder foreach($matches[1] AS $k => $v) { if(strpos($v,"Size_200")!==false) $pics_200[] = $matches[2][$k]; if(strpos($v,"Size_640")!==false) $pics_640[] = $matches[2][$k]; } $pkw['pics_200'] = $pics_200; $pkw['pics_640'] = $pics_640; // Standort foreach($matches[1] AS $k => $v) if((strpos($v,"Name")!==false)||(strpos($v,"Strasse")!==false)||(strpos($v,"Hausnummer")!==false)||(strpos($v,"PLZ")!==false)||(strpos($v,"Ort")!==false)||(strpos($v,"Land")!==false)||(strpos($v,"Telefon")!==false)||(strpos($v,"Fax")!==false)||(strpos($v,"Land")!==false)||(strpos($v,"kuerzel")!==false)) $pkw[$v] = $matches[2][$k]; // Land preg_match_all("/(.*)<\/Land>/",$xml,$matches); foreach($matches[1] AS $k => $v) { if($v!="") { $pkw['Land'] = $matches[2][$k]; $pkw['kuerzel'] = $v; } } // Standardfelder $felder = array('gfz'=>'Fahrzeugnummer', 'marke'=>'Marke', 'modell'=>'Modell', 'typ'=>'Typ', 'fahrzeugart'=>'Fahrzeugart', 'karosserie'=>'Karosserie', 'getriebe'=>'Getriebe', 'kw'=>'Leistung', 'km'=>'Kilometer', 'hubraum'=>'Hubraum', 'ez'=>'Erstzulassung', 'kraftstoff'=>'Kraftstoff', 'farbe'=>'Farbe', 'polster'=>'Polster', 'vorbesitzer'=>'Vorbesitzer', 'nutzlast'=>'Nutzlast', 'verbrauch'=>'Verbrauch', 'verbrauch_inner'=>'VerbrauchInner', 'verbrauch_ausser'=>'VerbrauchAusser', 'emission'=>'Emission', 'mwst'=>'MwStAusweisbar', 'mwst_satz'=>'MwStSatz', 'preis'=>'Bruttopreis', 'nettopreis'=>'Nettopreis', 'neupreis'=>'Neupreis', 'haendlerpreis'=>'Haendlerpreis', 'exportpreis'=>'Exportpreis', 'aktionspreis'=>'Aktionspreis', 'sonderangebot'=>'Sonderangebotspreis', 'monatsrate'=>'Monatsrate', 'zinssatz'=>'Zinssatz', 'laufzeit'=>'Laufzeit', 'anzahlungprozent'=>'AnzahlungProzent', 'schlussrate'=>'Schlussrate', 'sonderrate'=>'Finanzierungssonderrate', 'bank'=>'Anbieterbank', 'jahreslaufleistung'=>'Laufleistung', 'schlussrate_prozent'=>'SchlussrateProzent', 'sollzins'=>'Sollzins', 'anzahlung'=>'AnzahlungBetrag', 'gesamtkreditbetrag'=>'Gesamtkreditbetrag', 'gesamtbetrag'=>'Gesamtbetrag', 'mietpreis_woche_netto'=>'MietpreisWocheNetto', 'mietpreis_monat_netto'=>'MietpreisMonatNetto', 'mietpreis_aktion_woche_netto'=>'MietpreisAktionWocheNetto', 'mietpreis_aktion_monat_netto'=>'MietpreisAktionMonatNetto', 'mietpreis_haendler_woche_netto'=>'MietpreisHaendlerWocheNetto', 'mietpreis_haendler_monat_netto'=>'MietpreisHaendlerMonatNetto', 'mietpreis_sonder_woche_netto'=>'MietpreisSonderangebotWocheNetto', 'mietpreis_sonder_monat_netto'=>'MietpreisSonderangebotMonatNetto' ); foreach($felder AS $k=>$v) { preg_match_all("/<".$v."(.*)>(.*)<\/".$v.">/",$xml,$matches); $pkw[$k] = $matches[2][0]; } #print_r($pkw); $ret[] = $pkw; return $ret; } // Link zur Detailansicht private function linkreplace($link) { return urlencode(str_replace(array('"'),array(''),$link)); } public function detaillink($vehicle) { $r = new safeURL(); return _ROOT."/".$this->language."/".$this->linkreplace($r->d($vehicle['marke']))."/".$this->linkreplace($r->d($vehicle['typ']))."/".$vehicle['gfz']; } // Sonderausstattungen public function sonderausstattung_komma($vehicle) { if(!is_array($vehicle['ausstattung'])) return ""; return implode(", ",$vehicle['ausstattung']); } public function sonderausstattung_gruppe($vehicle) { return ""; } public function merkmale($vehicle) { return ""; } // Bilder zurückgeben private function pictures($vehicle,$size=200,$anzahl=20,$liste=1,$zusatzid="") { $i = 0; foreach($vehicle['pics_'.$size] AS $i => $pic) { $i++; if($i>$anzahl) continue; $ret[] = ($liste ? '
  • ' : '').''.$vehicle['marke'].' '.$vehicle['typ'].''.($liste ? '
  • ' : ''); } if(!is_array($ret)) $ret[] = ($liste ? '
  • ' : '').''.$vehicle['marke'].' '.$vehicle['typ'].''.($liste ? '
  • ' : ''); return implode('',$ret); } // Anzahl Bilder zurückgeben private function countpics($vehicle,$text=0,$scrollnav=0) { $count=count($vehicle['pics_200']); if($text) if($count==0) return "{lang@Leider_kein_Bild_vorhanden}"; else $return = $count." {lang@Bilder}"; else $return = $count; return ($scrollnav ? '{lang@vorheriges_Bild}' : '').$return.($scrollnav ? '{lang@naechstes_Bild}' : ''); } public function film($vehicle){ return file_get_contents("./videos/".$_GET['gfz'].".php"); } // alle Premiumfahrzeug ausgeben public function allVehicles(){ $ret = ""; $gfz = array(); if($handle = opendir('./videos')){ while($file = readdir($handle)){ if($file != "." && $file != ".." && strpos($file, ".php")){ $gfz[] = str_replace(".php", "", $file); } } sort($gfz); } if(count($gfz) > 0){ foreach($gfz as $g){ foreach($this->detailansicht($g) AS $p){ if($p['fahrzeugid']==NULL)continue; $link = $this->detaillink($p); $bild = $this->pictures($p,200,1,0); $ret .= '
  • '.$bild.'
  • '; } } } return $ret; } // Fahrzeugstatus public function getFzgStatus($gfz){ $ret = 0; foreach($this->detailansicht($gfz) AS $p){ if($p['fahrzeugid']!=NULL)$ret = 1; } return $ret; } // Ersetzt Platzhalter mit DB Inhalten public function replace($template,$vehicle) { preg_match_all("/\{pkw@([a-zA-Z0-9_]{1,})\}/",$template,$matches); foreach($matches[1] AS $m) { if((!isset($vehicle[$m]))||($vehicle[$m]=="")||($vehicle[$m]=="0")||($vehicle[$m]=="0,00")) { $template = str_replace("{pkw@".$m."}","",$template); $this->emptyfields[$m] = $m; } else $template = str_replace("{pkw@".$m."}",$vehicle[$m],$template); } return $template; } // Ersetzt den Quelltext durch die übergebenen Funktionen, die überhalb dieses Kommentars definiert sind public function split($template,$vehicle) { preg_match_all("/\{feld@([a-zA-Z0-9_\|\/]{1,})\}/",$template,$matches); foreach($matches[1] AS $m) { $teil = explode("|",$m); if(array_key_exists("4",$teil)) $template = str_replace("{feld@".$teil[0]."|".$teil[1]."|".$teil[2]."|".$teil[3]."|".$teil[4]."}",$this->$teil[0]($vehicle,$teil[1],$teil[2],$teil[3],$teil[4]),$template); elseif(array_key_exists("3",$teil)) $template = str_replace("{feld@".$teil[0]."|".$teil[1]."|".$teil[2]."|".$teil[3]."}",$this->$teil[0]($vehicle,$teil[1],$teil[2],$teil[3]),$template); elseif(array_key_exists("2",$teil)) $template = str_replace("{feld@".$teil[0]."|".$teil[1]."|".$teil[2]."}",$this->$teil[0]($vehicle,$teil[1],$teil[2]),$template); elseif(array_key_exists("1",$teil)) $template = str_replace("{feld@".$teil[0]."|".$teil[1]."}",$this->$teil[0]($vehicle,$teil[1]),$template); else $template = str_replace("{feld@".$m."}",$this->$m($vehicle),$template); } if(!empty($this->emptyfields)) { foreach($this->emptyfields AS $e) $ret[] = '$("#'.$e.'").hide();'; return str_replace("",implode('',$ret),$template); } return $template; } } ?>