From 4cf7cf51143ccb31495647953a574cd1618b6933 Mon Sep 17 00:00:00 2001 From: Miles Lott Date: Sun, 18 Mar 2001 07:12:51 +0000 Subject: [PATCH] Add SQL export - via contacts class, not a direct SQL dump --- addressbook/export/Export_to_SQL | 136 +++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 addressbook/export/Export_to_SQL diff --git a/addressbook/export/Export_to_SQL b/addressbook/export/Export_to_SQL new file mode 100644 index 0000000000..26fc0358b1 --- /dev/null +++ b/addressbook/export/Export_to_SQL @@ -0,0 +1,136 @@ + "FullName","FirstName" => "+, "); +// +// Also start with a '#' symbol and a comma separated list will be +// turned into a number of the same entries. + + class export_conv + { + var $currentrecord = array(); //used for buffering to allow uid lines to go first + var $id; + //list of all id's + var $ids = array(); + + var $export= array( + "fn" => "fn", + "n_given" => "n_given", + "n_family" => "n_family", + "n_middle" => "n_middle", + "n_prefix" => "n_prefix", + "n_suffix" => "n_suffix", + "sound" => "sound", + "bday" => "bday", + "note" => "note", + "tz" => "tz", + "geo" => "geo", + "url" => "url", + "pubkey" => "pubkey", + + "org_name" => "org_name", + "org_unit" => "org_unit", + "title" => "title", + + "adr_one_street" => "adr_one_street", + "adr_one_locality" => "adr_one_locality", + "adr_one_region" => "adr_one_region", + "adr_one_postalcode" => "adr_one_postalcode", + "adr_one_countryname" => "adr_one_countryname", + "adr_one_type" => "adr_one_type", + "label" => "label", + + "adr_two_street" => "adr_two_street", + "adr_two_locality" => "adr_two_locality", + "adr_two_region" => "adr_two_region", + "adr_two_postalcode" => "adr_two_postalcode", + "adr_two_countryname" => "adr_two_countryname", + "adr_two_type" => "adr_two_type", + + "tel_work" => "tel_work", + "tel_home" => "tel_home", + "tel_voice" => "tel_voice", + "tel_fax" => "tel_fax", + "tel_msg" => "tel_msg", + "tel_cell" => "tel_cell", + "tel_pager" => "tel_pager", + "tel_bbs" => "tel_bbs", + "tel_modem" => "tel_modem", + "tel_car" => "tel_car", + "tel_isdn" => "tel_isdn", + "tel_video" => "tel_video", + "tel_prefer" => "tel_prefer", + "email" => "email", + "email_type" => "email_type", + "email_home" => "email_home", + "email_home_type" => "email_home_type" + ); + + // This will store the contacts object + var $contacts = ''; + + // Read full list of user's contacts only to get id's for each + function export_start_file($buffer) { + $this->id=-1; + $this->contacts = CreateObject('phpgwapi.contacts'); + $tmp = $this->contacts->read(); + for ($i=0;$iids[$i] = $tmp[$i]['id']; + } + // $ids is now an array of all id's for this user, e.g. $ids[0] = 21, etc... + // $buffer is still empty + return $buffer; + } + + // Read each entry + function export_start_record($buffer) { + $this->id++; + $top = $this->contacts->read_single_entry($this->ids[$this->id],$this->qfields); + $this->currentrecord = $top[0]; + return $buffer; + } + + // Read each attribute, populate buffer array + // name/value are the fields from the export array above + function export_new_attrib($buffer,$name,$value) { + if ($this->export[$name]) { + $buffer[$this->id][$this->export[$name]] = $value; + //echo '
'.$this->id.' - '.$this->export[$name].': '.$buffer[$this->id][$this->export[$name]]; + } + return $buffer; + } + + // Tack on some extra values - none for this file + function export_end_record($buffer) { + return $buffer; + } + + // Parse it all into a string + function export_end_file($buffer) { + $top = 'INSERT INTO phpgw_addressbook('; + reset($this->ids); + for ($i=0;$iids);$i++) { + reset($this->export); + $fields = $values = ""; + while (list($name,$value) = each($this->export)) { + $fields .= $value . ","; + $values .= "'" . $buffer[$i][$value] . "',"; + } + $fields = substr($fields,0,-1) . ")\n VALUES("; + $values = substr($values,0,-1) . ");\n"; + $entries .= $top . $fields . $values; + } + $buffer = $entries; + return $buffer; + } + } +?>