00001 <?php
00009 class GenieGate_View_VCard extends GenieGate_View {
00010
00011 var $UID;
00012 var $UA;
00013 var $PM;
00014
00021 function GenieGate_View_VCard($uid,$ua,$pm){
00022 $this->UID = $uid;
00023 $this->UA = $ua;
00024 $this->PM = $pm;
00025 $this->tran = array("\n" => sprintf("=%02X",ord("\n")),
00026 "\r" => sprintf("=%02X",ord("\r")),
00027 "\t" => sprintf("=%02X",ord("\t")),
00028 "=" => sprintf("=%02X",ord("=")),
00029 ";" => sprintf("=%02X",ord(";"))
00030 );
00031
00032 }
00033
00034 function display(){
00035 $this->send_vcard($this->UID);
00036 }
00037
00045 function send_vcard($uid){
00046 $user = $this->UA->lookupUid($uid);
00047 if(! $user){
00048 return;
00049 }
00050 $public = $this->PM->getSection("genie.form.Public",$uid);
00051 $private = $this->PM->getSection("genie.form.Private",$uid);
00052 $name = $user[name];
00053 $email = $user[email];
00054 $phone = $public->getProperty("tel");
00055
00056
00057 $adr = "ADR;HOME:POSTAL;DOM;";
00058 $adr .= $public->getProperty("street") . ";";
00059 $adr .= $public->getProperty("city") . ";";
00060 $adr .= $public->getProperty("state") . ";";
00061 $adr .= $public->getProperty("postalCode") . ";";
00062 $adr .= $public->getProperty("country") . "\n";
00063 echo "BEGIN:VCARD\n";
00064 echo "FN:$name\n";
00065
00066 $fname = $public->getProperty("fname");
00067 if(! $fname){
00068 $fname = $user[name];
00069 }
00070 $name = $public->getProperty("lname") . ";$fname";
00071
00072 echo "N:$name\n";
00073
00074 echo $adr;
00075
00076 $prop = $public->getProperty("fax");
00077 if($prop){
00078 echo "TEL;FAX:$prop\n";
00079 }
00080 $prop = $public->getProperty("title");
00081 if($prop){
00082 echo "TITLE:$prop\n";
00083 }
00084 $prop = $public->getProperty("organization");
00085 if($prop){
00086 echo "ORG:$prop\n";
00087 }
00088
00089 $prop = $private->getProperty("comments");
00090 if($prop){
00091 echo "NOTE;QUOTED-PRINTABLE:" . $this->_escape($prop) . "\n";
00092 }
00093 $prop = $public->getProperty("homePage");
00094 if($prop){
00095 echo "URL:$prop\n";
00096 }
00097 $prop = $public->getProperty("dob");
00098 if($prop){
00099 echo "BDAY:$prop\n";
00100 }
00101 $prop = $public->getProperty("tel");
00102 if($prop){
00103 echo "TEL;HOME:$prop\n";
00104 }
00105 $prop = $public->getProperty("wphone");
00106 if($prop){
00107 echo "TEL;WORK:$prop\n";
00108 }
00109
00110 echo "EMAIL;INTERNET:$email\n";
00111
00112 echo "END:VCARD\n";
00113 }
00114 function _escape($string){
00115 return(strtr($string,$this->tran));
00116 }
00117
00118 }
00119 ?>