From 632c9ace34e1f6d4d1df5b8814c63e92a01d123b Mon Sep 17 00:00:00 2001 From: Miles Lott Date: Wed, 21 Mar 2001 00:12:39 +0000 Subject: [PATCH] VCard import theoretically complete --- addressbook/import/Import_from_VCard | 138 ++++++++++++++++++++++++++- 1 file changed, 134 insertions(+), 4 deletions(-) diff --git a/addressbook/import/Import_from_VCard b/addressbook/import/Import_from_VCard index 0de5d5d4ef..503e6d155b 100644 --- a/addressbook/import/Import_from_VCard +++ b/addressbook/import/Import_from_VCard @@ -130,15 +130,137 @@ if ($field[1]) { //echo $field[0]; switch ($field[0]) { + case "LABEL": + $buffer[$i]["label"] = ereg_replace("=0D=0A","\n",$values[0]); + break; + case "NOTE": + $buffer[$i]["note"] = ereg_replace("=0D=0A","\n",$values[0]); + break; case "ADR": switch ($field[1]) { case "INTL": + switch ($field[2]) { + case "WORK": + if ( !stristr($buffer[$i]["adr_one_type"],$field[1])) { + $buffer[$i]["adr_one_type"] .= "intl;"; + } + if (!$buffer[$i]["adr_one_street"]) { + $buffer[$i]["address2"] = $values[1]; + $buffer[$i]["adr_one_street"] = $values[2]; + $buffer[$i]["adr_one_locality"] = $values[3]; + $buffer[$i]["adr_one_region"] = $values[4]; + $buffer[$i]["adr_one_postalcode"] = $values[5]; + $buffer[$i]["adr_one_countryname"] = $values[6]; + } + break; + case "HOME": + if ( !stristr($buffer[$i]["adr_two_type"],$field[1]) ) { + $buffer[$i]["adr_two_type"] .= "intl;"; + } + if (!$buffer[$i]["adr_two_street"]) { + $buffer[$i]["adr_two_street"] = $values[2]; + $buffer[$i]["adr_two_locality"] = $values[3]; + $buffer[$i]["adr_two_region"] = $values[4]; + $buffer[$i]["adr_two_postalcode"] = $values[5]; + $buffer[$i]["adr_two_countryname"] = $values[6]; + } + break; + default: + break; + } break; case "DOM": + switch ($field[2]) { + case "WORK": + if ( !stristr($buffer[$i]["adr_one_type"],$field[1])) { + $buffer[$i]["adr_one_type"] .= "dom;"; + } + if (!$buffer[$i]["adr_one_street"]) { + $buffer[$i]["address2"] = $values[1]; + $buffer[$i]["adr_one_street"] = $values[2]; + $buffer[$i]["adr_one_locality"] = $values[3]; + $buffer[$i]["adr_one_region"] = $values[4]; + $buffer[$i]["adr_one_postalcode"] = $values[5]; + $buffer[$i]["adr_one_countryname"] = $values[6]; + } + break; + case "HOME": + if ( !stristr($buffer[$i]["adr_two_type"],$field[1]) ) { + $buffer[$i]["adr_two_type"] .= "dom;"; + } + if (!$buffer[$i]["adr_two_street"]) { + $buffer[$i]["adr_two_street"] = $values[2]; + $buffer[$i]["adr_two_locality"] = $values[3]; + $buffer[$i]["adr_two_region"] = $values[4]; + $buffer[$i]["adr_two_postalcode"] = $values[5]; + $buffer[$i]["adr_two_countryname"] = $values[6]; + } + break; + default: + break; + } break; case "PARCEL": + switch ($field[2]) { + case "WORK": + if ( !stristr($buffer[$i]["adr_one_type"],$field[1])) { + $buffer[$i]["adr_one_type"] .= "parcel;"; + } + if (!$buffer[$i]["adr_one_street"]) { + $buffer[$i]["address2"] = $values[1]; + $buffer[$i]["adr_one_street"] = $values[2]; + $buffer[$i]["adr_one_locality"] = $values[3]; + $buffer[$i]["adr_one_region"] = $values[4]; + $buffer[$i]["adr_one_postalcode"] = $values[5]; + $buffer[$i]["adr_one_countryname"] = $values[6]; + } + break; + case "HOME": + if ( !stristr($buffer[$i]["adr_two_type"],$field[1]) ) { + $buffer[$i]["adr_two_type"] .= "parcel;"; + } + if (!$buffer[$i]["adr_two_street"]) { + $buffer[$i]["adr_two_street"] = $values[2]; + $buffer[$i]["adr_two_locality"] = $values[3]; + $buffer[$i]["adr_two_region"] = $values[4]; + $buffer[$i]["adr_two_postalcode"] = $values[5]; + $buffer[$i]["adr_two_countryname"] = $values[6]; + } + break; + default: + break; + } break; case "POSTAL": + switch ($field[2]) { + case "WORK": + if ( !stristr($buffer[$i]["adr_one_type"],$field[1])) { + $buffer[$i]["adr_one_type"] .= "postal;"; + } + if (!$buffer[$i]["adr_one_street"]) { + $buffer[$i]["address2"] = $values[1]; + $buffer[$i]["adr_one_street"] = $values[2]; + $buffer[$i]["adr_one_locality"] = $values[3]; + $buffer[$i]["adr_one_region"] = $values[4]; + $buffer[$i]["adr_one_postalcode"] = $values[5]; + $buffer[$i]["adr_one_countryname"] = $values[6]; + } + break; + case "HOME": + if ( !stristr($buffer[$i]["adr_two_type"],$field[1]) ) { + $buffer[$i]["adr_two_type"] .= "postal;"; + } + if (!$buffer[$i]["adr_two_street"]) { + $buffer[$i]["adr_two_street"] = $values[2]; + $buffer[$i]["adr_two_locality"] = $values[3]; + $buffer[$i]["adr_two_region"] = $values[4]; + $buffer[$i]["adr_two_postalcode"] = $values[5]; + $buffer[$i]["adr_two_countryname"] = $values[6]; + } + break; + default: + break; + } break; case "WORK": if (!$buffer[$i]["adr_one_street"]) { @@ -172,7 +294,7 @@ case "TEL": switch ($field[1]) { case "PREF": - echo $field[2]." is preferred"; + //echo $field[2]." is preferred"; if ($field[2]) { $buffer[$i]["tel_prefer"] .= strtolower($field[2]) . ";"; } @@ -310,22 +432,30 @@ case "LABEL": $buffer[$i]["label"] = ereg_replace("=0D=0A","\n",$values[0]); break; + case "BDAY": #1969-12-31 + $tmp = split("-",$values[0]); + if ($tmp[0]) { + $buffer[$i]["bday"] = $tmp[1]."/".$tmp[2]."/".$tmp[0]; + } + break; } } } $buffer[$i]["tel_prefer"] = substr($buffer[$i]["tel_prefer"],0,-1); $buffer[$i]["adr_one_type"] = substr($buffer[$i]["adr_one_type"],0,-1); $buffer[$i]["adr_two_type"] = substr($buffer[$i]["adr_two_type"],0,-1); +/* echo '
'; reset($contacts->stock_contact_fields); while (list($fname,$fvalue) = each($contacts->stock_contact_fields)) { echo '
'.$i.': '.$fname.' => '.$buffer[$i][$fvalue]; } echo '
'; - //$contacts->add($phpgw_info["user"]["account_id"],$entry[$i]); +*/ + $contacts->add($phpgw_info["user"]["account_id"],$buffer[$i]); } - //$num = $i - 1; - //return "Successfully imported $num records into your addressbook."; + $num = $i - 1; + return "Successfully imported $num records into your addressbook."; } } ?>