$vals[$i]['tag'], 'attributes' => isset($vals[$i]['attributes'])? $vals[$i]['attributes'] : null, 'value' => $vals[$i]['value'] ); break; case 'open': $children[] = array( 'tag' => $vals[$i]['tag'], 'attributes' => isset($vals[$i]['attributes'])? $vals[$i]['attributes'] : null, 'children' => xml_get_children($vals, $i) ); break; case 'close': return $children; } } } function xml_get_tree($file) { $data = join('', file($file)); $parser = xml_parser_create(); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); xml_parse_into_struct($parser, $data, $vals, $index); xml_parser_free($parser); return array( 'tag' => $vals[0]['tag'], 'attributes' => isset($vals[0]['attributes'])? $vals[0]['attributes'] : null, 'children' => xml_get_children($vals, $i = 0) ); } /********** Anzeigen eines Events *********************************************/ if( !empty($eventid) ) { // mostrare un evento specifico // echo "EVENT-Details: $eventid
\n"; // $XMLSERVER = "http://data.tourist.info"; $XMLSERVER = "http://tourist.bz.it"; $URLXDATEN = $XMLSERVER."/data/CDBData.asmx/SendDataXmlOut?sInput="; $URLXTICKET = $XMLSERVER."/data/CDBData.asmx/GetTicket?sInput="; // zuert die SessionID ermitteln: $XMLSTRING = "%3CSendData%20Function='GetTicket'%20User='info@valgardena.it'%20Pwd='AB54DD9B9E'%20Version='1.0'%20PrefUserID='64E09593F49E486DA8339D4B34BE7461'%20/%3E"; $FILEURL = "$URLXTICKET$XMLSTRING"; $xmlticket = file_get_contents($FILEURL); $xmlpart = strtok($xmlticket, " \n\t"); while ($xmlpart !== false) { $sess = strstr( $xmlpart, "SessionID=" ); // ritorna la parte dopo sessionid= if( $sess ) $sessionid = str_replace("'","",strstr($sess, "'")); $xmlpart = strtok(" \n\t"); } $FILEURL = $URLXDATEN."%3CSendData%20UserID='64E09593F49E486DA8339D4B34BE7461'%20SessionID='".$sessionid."'%20Function='GetEventData'%20Version='1.0'%20EvRID='".$eventid."'%20/%3E"; $tree = xml_get_tree($FILEURL); $ticks = $tree["attributes"]["Ticks"]; $subtree = $tree["children"][0]; foreach($subtree["children"] as $stc) { $tag = $stc["tag"]; switch( $tag ) { case "EventDefinition": $zip = $stc["attributes"]["Zip"]; foreach($stc["children"] as $sstc) { if( strcasecmp($sstc["attributes"]["LngID"],$la)==0 ) { $eventtitle = htmlentities($sstc["attributes"]["Title"],ENT_QUOTES,"utf-8"); $eventlocation = $sstc["attributes"]["Location"]; } } break; case "EventDate": $zip = $stc["attributes"]["Zip"]; foreach($stc["children"] as $sstc) { $eventdates[] = substr($sstc["attributes"]["Date"],0,10); } break; case "EventPublicity": if( strcasecmp($stc["attributes"]["LngID"],$la)==0 ) { $eventdesc = htmlentities($stc["attributes"]["Desc"],ENT_QUOTES,"utf-8"); // OK // $eventdesc = htmlentities(html_entity_decode($stc["attributes"]["Desc"],ENT_COMPAT,"iso-8859-15"),ENT_COMPAT,"utf-8"); // OK } break; case "EventTime": $eventtime = substr($stc["attributes"]["Start"],0,5); break; case "EventFoto": $eventpicture = $stc["attributes"]["Picture"]; break; } } $estart = min($eventdates); $eend = max($eventdates); $eventstart = substr($estart,8,2).".".substr($estart,5,2).".".substr($estart,2,2); $eventend = substr($eend,8,2).".".substr($eend,5,2).".".substr($eend,2,2); $eventdate = ($eventstart != $eventend) ? "$eventstart - $eventend" : "$eventstart"; $etime = ($eventtime != "00:00") ? ", ".$eventtime : ""; echo "
\n"; echo "
$eventtitle
\n"; if( !empty($eventpicture) && strlen($eventpicture)>3 ) echo "\n"; echo "
$eventdate$etime
\n"; echo "
$ecityname
\n"; echo "
$eventlocation
\n"; echo "
$eventdesc
\n"; echo "
\n"; echo "".$str_allevents[$lang]."\n"; } else { /********** Anzeigen einer Liste von Events ***********************************/ // Sprachabhaengig: $filename = str_replace("XX",strtoupper($la),$event_filename); include $filename; echo "\n"; echo "\n"; echo "".$str_allevents[$lang]."\n"; } ?>