SM-Finder-Logo        
herz Karte Kalender Suche Bookmarks Experte FAQ

Module

Download

SMFinder_XML_export

Wird 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 "";}
}
?>

Index

Fü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.

1Makefile
2SMFinder_Admin
3SMFinder_Admin_addCategories
4SMFinder_Admin_checkAllLinks
5SMFinder_Admin_clean
6SMFinder_Admin_exportXML
7SMFinder_Admin_genMap
8SMFinder_Admin_getTimefInt
9SMFinder_Admin_importGeo
10SMFinder_Admin_sendXML2user
11SMFinder_Admin_uploadXML
12SMFinder_Config
13SMFinder_DTD
14SMFinder_Datenbanken
15SMFinder_Edit
16SMFinder_Edit_AddressFields
17SMFinder_Edit_AdrFields
18SMFinder_Edit_CatsAtrs
19SMFinder_Edit_EventFields
20SMFinder_Edit_LinkFields
21SMFinder_Edit_Modus
22SMFinder_Edit_POST
23SMFinder_Edit_PersFields
24SMFinder_Edit_genUID
25SMFinder_Elementdefinitions
26SMFinder_Geo
27SMFinder_Geo_PLZ2DB
28SMFinder_Geo_Umkreis
29SMFinder_Geo_getGeo
30SMFinder_Help
31SMFinder_Help_Download
32SMFinder_Help_FAQ
33SMFinder_Help_KategorienInfo
34SMFinder_Help_editAddress
35SMFinder_Help_editEvent
36SMFinder_Main
37SMFinder_MapDACH
38SMFinder_Menu
39SMFinder_Modules
40SMFinder_ModulesIndex
41SMFinder_Pagelayout
42SMFinder_Query_ABC
43SMFinder_Query_Calendar
44SMFinder_Query_CheckCatsAtrs
45SMFinder_Query_Map
46SMFinder_Query_Mask
47SMFinder_Query_SearchEngine
48SMFinder_Query_analyzeSearch
49SMFinder_Query_composeDates4UIDs
50SMFinder_Query_dateFormat
51SMFinder_Query_dmoz
52SMFinder_Query_expandSeries
53SMFinder_Query_find
54SMFinder_Query_getAllUID
55SMFinder_Query_getUID4CatsAtrsGeo
56SMFinder_Query_getUID4Geo
57SMFinder_Query_getUID4adr
58SMFinder_Query_getUID4fn
59SMFinder_Query_readAddress
60SMFinder_Query_readAdr
61SMFinder_Query_readBookmark
62SMFinder_Query_readEvent
63SMFinder_Query_readLink
64SMFinder_Query_readPers
65SMFinder_Query_showAddress
66SMFinder_Query_showAdr
67SMFinder_Query_showCalendar
68SMFinder_Query_showCalendarDynamic
69SMFinder_Query_showEvent
70SMFinder_Query_showEventList
71SMFinder_Query_showEventsChronological
72SMFinder_Query_showLink
73SMFinder_Query_showPers
74SMFinder_Query_showResult
75SMFinder_Query_validDate
76SMFinder_Style
77SMFinder_Write_Address
78SMFinder_Write_Adr
79SMFinder_Write_Event
80SMFinder_Write_Link
81SMFinder_Write_Pers
82SMFinder_Write_deleteEntry
83SMFinder_XML_checkType
84SMFinder_XML_export
85SMFinder_XML_extractAttribute
86SMFinder_XML_extractTag
87SMFinder_XML_findAllElements
88SMFinder_XML_import
89SMFinder_XML_importParseAddress
90SMFinder_XML_importParseAdr
91SMFinder_XML_importParseCatsAtrs
92SMFinder_XML_importParseEvent
93SMFinder_XML_importParseLink
94SMFinder_XML_importParsePerson
95SMFinder_XML_readFile
96SMallGiessen_SMFinder
97ShowCatsAtrsNice
98index
99php2txt.pl
100sm-finder-02.dtd
101testGeo
102sm-finder-02.dtd
103

Datenbanken

 

SM-Finder-Logo

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-finderATki-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!

blank

blank