User management for the world wide web

Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

VCard.php

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         // Build up the weird postal address format.
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 ?>

DoxyGen Documentation generated by DoxyGen