First NameMiddle NameLast Name... // PatrickWalsh... // // Where the first line explains each optional field. This is what // will be looked up in the key. // // The array need not be in any order and any fields not defined will // not be transferred. If the val='+', the value will be appended to // the previous field and any text after the '+' will be appended // before the value. For example, the following would add a comma and // a space between LastName and FirstName and store it in FullName: // // array("LastName" => "FullName","FirstName" => "+, "); // // Also start with a '#' symbol and a comma separated list will be // turned into a number of the same entries. class outlook_conv { var $currentrecord; //used for buffering to allow uid lines to go first var $outlook = array( "Title" => "TITLE", "First Name" => "N_Given", "Middle Name" => "N_Middle", "Last Name" => "N_Family", "Suffix" => "N_Suffix", "Company" => "ORG_Name", //objectclass: organization "Department" => "ORG_Unit", //objectclass: organizationalPerson "Job Title" => "TITLE", //objectclass: organizationalPerson "Business Street" => "address2", "Business Street 2" => "", "Business Street 3" => "", "Business City" => "", "Business State" => "", "Business Postal Code" => "", "Business Country" => "", "Home Street" => "ADR_Street", "Home City" => "ADR_Locality", "Home State" => "ADR_Region", "Home Postal Code" => "ADR_PostalCode", "Home Country" => "ADR_CountryName", "Home Street 2" => "", "Home Street 3" => "", "Other Street" => "", "Other City" => "", "Other State" => "", "Other Postal Code" => "", "Other Country" => "", "Assistant's Phone" => "", "Business Fax" => "C_TEL", "Business Phone" => "B_TEL", "Business Phone 2" => "ophone", "Callback" => "", "Car Phone" => "", "Company Main Phone" => "", "Home Fax" => "", "Home Phone" => "A.TEL", "Home Phone 2" => "", //This will make another homePhone entry "ISDN" => "", "Mobile Phone" => "mphone", //newPilotPerson "Other Fax" => "", "Other Phone" => "", "Pager" => "pager", "Primary Phone" => "", "Radio Phone" => "", "TTY/TDD Phone" => "", "Telex" => "", //organization "Account" => "", "Anniversary" => "", "Assistant's Name" => "", //newPilotPerson "Billing Information" => "", "Birthday" => "bday", "Categories" => "", "Children" => "", "Directory Server" => "", "E-mail Address" => "D_EMAIL", "E-mail Display Name" => "", "E-mail 2 Address" => "", "E-mail 2 Display Name" => "", "E-mail 3 Address" => "", //add another... "E-mail 3 Display Name" => "", "Gender" => "", "Government ID Number" => "", "Hobby" => "", "Initials" => "", "Internet Free Busy" => "", "Keywords" => "", "Language" => "", "Location" => "", "Manager's Name" => "", "Mileage" => "", "Notes" => "ab_notes", "Office Location" => "", "Organizational ID Number" => "", "PO Box" => "postOfficeBox", "Priority" => "", "Private Profession" => "", "Referred By" => "", "Sensitivity" => "", "Spouse" => "", "User 1" => "", "User 2" => "", "User 3" => "", "User 4" => "", "Web Page" => ""); function outlook_start_file($buffer,$j="",$k="") { return $buffer; } function outlook_end_file($buffer) { return $buffer; } function outlook_start_record($buffer) { $top=""; $this->currentrecord = $top; return $buffer; } function outlook_end_record($buffer,$private="private") { global $phpgw_info; $row=0; $i=0; $lines = split("##",$this->currentrecord); # Commence the ugly parsing of csv into sql for ($i=0;$i2) { $thisname=$name.","; $thisvalu="'".$value."',"; } else { $thisname=$name.") "; $thisvalu="'".$value."');"; } } else { $thisname=""; $thisvalu=""; } $namelist = $namelist."\nINSERT INTO addressbook (owner,".$thisname; $valulist = $valulist."VALUES ('".$phpgw_info["user"]["account_id"]."',".$thisvalu; } elseif ($row==count($lines)-1) { if (!empty($name) && !empty($value)) { $thisname=$name.") "; $thisvalu="'".$value."');"; } else { $thisname=""; $thisvalu=""; } $namelist = $namelist.$thisname; $valulist = $valulist.$thisvalu; } else { if (!empty($name) && !empty($value)) { $thisname=$name.","; $thisvalu="'".$value."',"; } else { $thisname=","; $thisvalu=","; } $namelist = $namelist.$thisname; $valulist = $valulist.$thisvalu; } } return $buffer.$namelist.$valulist; } function outlook_new_attrib($buffer,$name,$value) { $value = str_replace("\n","
",$value); $value = str_replace("\r","",$value); if ($value=="") { $value="NULL"; } $this->currentrecord .= $name."%%".$value."##"; return $buffer; } } ?>