![]() | ||||||||
![]() |
Karte | Kalender | Suche | Bookmarks | Experte | FAQ |
ModuleDownloadSMFinder_XML_exportWird verwendet von:SMFinder_Admin_exportXML SMFinder_Main Keine Erläuterungen gefunden. <?php /* published under GPL www.gnu.org/licenses/gpl.html */ $xml="<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"; $xml.="<sm-finder version=\"1.0\" prodid=\"sm-finder/1.0\">\n"; $xml.=SMFinder_XML_exportAddress($address,$link,$NoLink,$adrA,$NoAdr,$pers,$NoPers); $xml.="</sm-finder>"; $xml.="<?/xml?>"; function SMFinder_XML_exportEvent($event,$link,$NoLink){ include_once('SMFinder_Query_readAddress.php'); include_once('SMFinder_Query_readAdr.php'); include_once('SMFinder_Query_readPers.php'); include_once('SMFinder_Query_readLink.php'); if ($event['status']=="delete" OR $event['summary']==""){ $eventXML = "<event uid=\"".$event['UID']."\" "; $eventXML .= "created=\"".$event['created']."\" "; $eventXML .= "last-mod=\"".$event['lastmod']."\">\n"; $eventXML .= "<summary></summary>\n"; $eventXML .= "</event>\n"; }else{ $eventXML = "<event uid=\"".$event['UID']."\" "; $eventXML .= "created=\"".$event['created']."\" "; $eventXML .= "last-mod=\"".$event['lastmod']."\">\n"; $eventXML .= "<summary>".$event['summary']."</summary>\n"; $eventXML .= "<desc>".$event['desc']."</desc>\n"; $eventXML .= "<status></status>\n"; $eventXML .= "<dtstart>".$event['dtstart']."</dtstart>\n"; $eventXML .= "<dtend>".$event['dtend']."</dtend>\n"; $linkXML = SMFinder_XML_exportLink($link,$NoLink); $eventXML .= $linkXML; $organizerXML = "<organizer>\n"; $organizer = SMFinder_Query_readAddress($event['organizer']); if ($organizer['status']=="organizer"){ list($adr,$NoAdr) = SMFinder_Query_readAdr($organizer['UID']); list($pers,$NoPers) = SMFinder_Query_readPers($organizer['UID']); list($link,$NoLink) = SMFinder_Query_readLink($organizer['UID']); $organizerXML .= SMFinder_XML_exportAddress($organizer,$link,$NoLink,$adr,$NoAdr,$pers,$NoPers); }else{ $organizerXML .= "<ref>".$event['organizer']."</ref>\n"; } $organizerXML .= "</organizer>\n"; $eventXML .= $organizerXML; $locationXML = "<location>\n"; $location = SMFinder_Query_readAddress($event['location']); if ($location['status']=="location"){ list($adr,$NoAdr) = SMFinder_Query_readAdr($location['UID']); list($pers,$NoPers) = SMFinder_Query_readPers($location['UID']); list($link,$NoLink) = SMFinder_Query_readLink($location['UID']); $locationXML .= SMFinder_XML_exportAddress($location,$link,$NoLink,$adr,$NoAdr,$pers,$NoPers); }else{ $locationXML .= "<ref>".$event['location']."</ref>\n"; } $locationXML .= "</location>\n"; $eventXML .= $locationXML; $contactUIDs=explode(",",$event['contact']); $contactXML = "<contact>\n"; for ($n=0;$n<count($contactUIDs);$n++){ $contact=SMFinder_Query_readAddress($contactUIDs[$n]); if ($contact['status']=="contact"){ list($adr,$NoAdr) = SMFinder_Query_readAdr($contact['UID']); list($pers,$NoPers) = SMFinder_Query_readPers($contact['UID']); list($link,$NoLink) = SMFinder_Query_readLink($contact['UID']); $contactXML .= SMFinder_XML_exportAddress($contact,$link,$NoLink,$adr,$NoAdr,$pers,$NoPers); }else{ $contactXML .= "<ref>".$event['contact']."</ref>\n"; } } #n $contactXML .= "</contact>\n"; if (strlen($contactXML)>34){$eventXML .= $contactXML;} $cats=explode(",",$event['cats']); for ($i=0;$i<count($cats);$i++){ if (!empty($cats[$i]) AND $cats[$i]!=","){ $eventXML .= "<keyword cat=\"GRUPPENTYP\">".$cats[$i]."</keyword>\n"; } } #i $atrs=explode(",",$event['atrs']); for ($i=0;$i<count($atrs);$i++){ if (!empty($atrs[$i])){ $eventXML .= "<keyword cat=\"ANGEBOT\">".$atrs[$i]."</keyword>\n"; } } #i if (!empty($event['freq']) OR !empty($event['rdate'])){ $eventXML .= "<rrule>"; if (!empty($event['until'])){$eventXML .= "<until>".$event['until']."</until>\n";} if (!empty($event['count'])){$eventXML .= "<count>".$event['until']."</count>\n";} $eventXML .= "<interval>".$event['interval']."</interval>\n"; $eventXML .= "<freq>".$event['freq']."</freq>\n"; if (!empty($event['wday'])){$eventXML .= "<wday>".$event['wday']."</wday>\n";} if (!empty($event['mday'])){$eventXML .= "<mday>".$event['mday']."</mday>\n";} if (!empty($event['yrday'])){$eventXML .= "<yrday>".$event['yrday']."</yrday>\n";} if (!empty($event['wkno'])){$eventXML .= "<wkno>".$event['wkno']."</wkno>\n";} if (!empty($event['mon'])){$eventXML .= "<mon>".$event['mon']."</mon>\n";} $eventXML .= "</rrule>\n"; } if (!empty($event['exdate'])){$eventXML .= "<exdate>".$event['exdate']."</exdate>\n";} #exrule #rdate $eventXML .= "</event>\n"; } return $eventXML; } /* ====================================== */ function SMFinder_XML_exportAddress($address,$link,$NoLink,$adr,$NoAdr,$pers,$NoPers){ $linkXML=SMFinder_XML_exportLink($link,$NoLink); $adrXML=SMFinder_XML_exportAdr($adr,$NoAdr); $persXML=SMFinder_XML_exportPers($pers,$NoPers); $address['desc'] =str_replace("<crlf>", "<crlf />", $address['desc']); if ($address['status']=="delete" OR $address['fn']==""){ $addressXML = "<address uid=\"".$address['UID']."\" "; $addressXML .= "created=\"".$address['created']."\" "; $addressXML .= "last-mod=\"".$address['lastmod']."\">\n"; $addressXML .= "<fn></fn>\n"; $addressXML .= "</address>\n"; }else{ $addressXML = "<address uid=\"".$address['UID']."\" "; $addressXML .= "created=\"".$address['created']."\" "; $addressXML .= "last-mod=\"".$address['lastmod']."\">\n"; $addressXML .= "<fn>".$address['fn']."</fn>\n"; $addressXML .= "<desc>".$address['desc']."</desc>\n"; if (!empty($address['orgnam'])){$addressXML .= "<orgnam>".$address['orgnam']."</orgnam>\n";} if (!empty($address['orgunit'])){$addressXML .= "<orgunit>".$address['orgunit']."</orgunit>\n";} if (!empty($address['ref'])){$addressXML .= "<ref>".$address['ref']."</ref>\n";} $cats=explode(",",$address['cats']); $atrs=explode(",",$address['atrs']); /* Bizarre-Medien: export only cats, atrs which are known to SM-Finder */ if ($GLOBALS['sitename']=="Bizarre-Medien"){ $doExport=false; $cats_ok=array('Gruppe','Projekt','Online-Community','Dienstleister','Beratungsstelle','Veranstaltungsort','Geschaeft'); $atrs_ok=array('Stammtisch','Gespraechsgruppe','Verein','Safer-SM','Kommerziell','News','Brunch','Beratung','Gesundheit','Bastelanleitungen','Chat','Forum','Mailingliste','Party','Gastronomie','Urlaub','SM-Finder','Lack','Leder','Latex','HighHeels','Korsetts','Fesseln','Metall','Schlaginstrumente','Moebel','Lovetoys','Petplay','Klinik'); $catsOkString=implode(",",$cats_ok); $atrsOkString=implode(",",$atrs_ok); $catsApproved=array(); $atrsApproved=array(); for ($i=0;$i<count($cats);$i++){ #print_r($cats);echo $catsOkString;exit(1); if (strlen($cats[$i])>1 AND eregi($cats[$i],$catsOkString)){ $doExport=true; array_push($catsApproved,$cats[$i]); } } #i for ($i=0;$i<count($atrs);$i++){ if (strlen($atrs[$i])>1 AND eregi($atrs[$i],$atrsOkString)){ # $doExport=true; array_push($atrsApproved,$atrs[$i]); } } #i $cats=$catsApproved; $atrs=$atrsApproved; if (!$doExport){return "";} } /* End Bizarre-Medien */ for ($i=0;$i<count($cats);$i++){ if (!empty($cats[$i]) AND $cats[$i]!=","){ $addressXML .= "<keyword cat=\"GRUPPENTYP\">".$cats[$i]."</keyword>\n"; } } #i for ($i=0;$i<count($atrs);$i++){ if (!empty($atrs[$i])){ $addressXML .= "<keyword cat=\"ANGEBOT\">".$atrs[$i]."</keyword>\n"; } } #i $addressXML .= $linkXML; $addressXML .= $adrXML; $addressXML .= $persXML; $addressXML .= "</address>\n"; return $addressXML; } } function SMFinder_XML_exportLink($link,$NoLink){ for ($n=0;$n<$NoLink;$n++){ $linkXML .= "<link url=\"".$link[$n]['URL']."\""; $linkXML .= " last-checked=\"".$link[$n]['lastchecked']."\""; $linkXML .= " status=\"".$link[$n]['status']."\">\n"; $linkXML .= "<desc>".$link[$n]['desc']."</desc>\n"; $cats=explode(",",$link[$n]['cats']); for ($i=0;$i<count($cats);$i++){ if (!empty($cats[$i]) AND $cats[$i]!=","){ $linkXML .= "<keyword cat=\"GRUPPENTYP\">".$cats[$i]."</keyword>\n"; } } #i $atrs=explode(",",$link[$n]['atrs']); for ($i=0;$i<count($atrs);$i++){ if (!empty($atrs[$i])){ $linkXML .= "<keyword cat=\"ANGEBOT\">".$atrs[$i]."</keyword>\n"; } } #i $linkXML .= "</link>\n"; } #n return $linkXML; } function SMFinder_XML_exportAdr($adr,$NoAdr){ include_once("SMFinder_Geo_getGeo.php"); for ($n=0;$n<$NoAdr;$n++){ $adrXML .= "<adr>\n"; if(!empty($adr[$n]['desc'])){$adrXML .= "<desc>".$adr[$n]['desc']."</desc>\n";} if(!empty($adr[$n]['pobox'])){$adrXML .= "<pobox>".$adr[$n]['pobox']."</pobox>\n";} if(!empty($adr[$n]['street'])){$adrXML .= "<street>".$adr[$n]['street']."</street>\n";} if(!empty($adr[$n]['city'])){$adrXML .= "<city>".$adr[$n]['city']."</city>\n";} if(!empty($adr[$n]['region'])){$adrXML .= "<region>".$adr[$n]['region']."</region>\n";} if(!empty($adr[$n]['pcode'])){$adrXML .= "<pcode>".$adr[$n]['pcode']."</pcode>\n";} if(!empty($adr[$n]['country'])){$adrXML .= "<country>".$adr[$n]['country']."</country>\n";} if(empty($adr[$n]['geoLat']) OR empty($adr[$n]['geoLon'])){ list($adr[$n]['geoLat'],$adr[$n]['geoLon']) = SMFinder_Geo_getGeo($adr[$n]['pcode'],$adr[$n]['city']); } $adrXML .= "<geo><lat>".$adr[$n]['geoLat']."</lat><lon>".$adr[$n]['geoLon']."</lon></geo>\n"; for ($i=0;$i<count($adr[$n]['fon']);$i++){ if(!empty($adr[$n]['fon'][$i])){ $adrXML .= "<tel tel.type=\"PHONE\">".$adr[$n]['fon'][$i]."</tel>\n"; } } #i for ($i=0;$i<count($adr[$n]['fax']);$i++){ if(!empty($adr[$n]['fax'][$i])){ $adrXML .= "<tel tel.type=\"FAX\">".$adr[$n]['fax'][$i]."</tel>\n"; } } #i for ($i=0;$i<count($adr[$n]['email']);$i++){ if(!empty($adr[$n]['email'][$i])){ $adrXML .= "<email>".$adr[$n]['email'][$i]."</email>\n"; } } #i $adrXML .= "</adr>\n"; } #n return $adrXML; } function SMFinder_XML_exportPers($pers,$NoPers){ for ($n=0;$n<$NoPers;$n++){ $persXML .= "<person>\n"; if(!empty($pers[$n]['family'])){$persXML .= "<family>".$pers[$n]['family']."</family>\n";} if(!empty($pers[$n]['given'])){$persXML .= "<given>".$pers[$n]['given']."</given>\n";} if(!empty($pers[$n]['middle'])){$persXML .= "<middle>".$pers[$n]['middle']."</middle>\n";} if(!empty($pers[$n]['prefix'])){$persXML .= "<prefix>".$pers[$n]['prefix']."</prefix>\n";} if(!empty($pers[$n]['suffix'])){$persXML .= "<suffix>".$pers[$n]['suffix']."</suffix>\n";} if(!empty($pers[$n]['role'])){$persXML .= "<role>".$pers[$n]['role']."</role>\n";} for ($i=0;$i<count($pers[$n]['fon']);$i++){ if(!empty($pers[$n]['fon'][$i])){ $persXML .= "<tel tel.type=\"PHONE\">".$pers[$n]['fon'][$i]."</tel>\n"; } } #i for ($i=0;$i<count($pers[$n]['fax']);$i++){ if(!empty($pers[$n]['fax'][$i])){ $persXML .= "<tel tel.type=\"FAX\">".$pers[$n]['fax'][$i]."</tel>\n"; } } #i for ($i=0;$i<count($pers[$n]['email']);$i++){ if(!empty($pers[$n]['email'][$i])){ $persXML .= "<email>".$pers[$n]['email'][$i]."</email>\n"; } } #i $persXML .= "</person>\n"; } #n if (strlen($persXML)>17){return $persXML;}else{return "";} } ?> IndexFür die Funktionalität des SM-Finders sind viele kleine Tools notwendig. Alle Funktionen beginnen mit SMFinder_ um deren Ursprung zu kennzeichnen. Dem schließt sich die Funktionsgruppe, z.B. Geo_ an, gefolgt vom eigentlichen Namen, der die Aufgabe der Funktion widerspiegeln soll, z.B. PLZ2DB. Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden. |
![]() |
Die hier zur Verfügung gestellten Informationen basieren auf dem Austauschnetzwerk des SM-Finders.
Änderungen an eurem Datensatz könnt ihr z.B. beim Arbeitskreis SM-Finder vornehmen.
Bei Fragen und Problemen schreibt bitte an: sm-finderki-co.org
Der AK-SM-Finder ist korporatives Mitglied der BVSM e.V.
Für Aktualität und Richtigkeit der dargebotenen Infomationen kann keine Gewähr übernommen werden!