phpgroupware-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Phpgroupware-users] importing contacts from outlook express, 0.9.12


From: David Chung
Subject: RE: [Phpgroupware-users] importing contacts from outlook express, 0.9.12
Date: Fri, 1 Mar 2002 09:27:12 -0500

My understanding is that for 0.9.14, the importer is more flexible and
improved.  For 0.9.12, I modified the file
/addressbook/import/Import_from_Outlook to be:

(Also pretty simple to see how you can control some of the mapping...)

<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// import file and the value of the array item will be used in
// the creation of the output file.
//
// An exported Outlook file looks like this:
//
// Title<tab>First Name<tab>Middle Name<tab>Last Name<tab>...
// <tab>Patrick<tab><tab>Walsh<tab>...
//
// 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 import_conv
        {
                var $currentrecord = array(); //used for buffering to allow uid 
lines to
go first
                var $id;
                var $type = 'csv';

                var $import = 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' => 'address3',
                        'Business Street 2' => 'adr_one_street',
                        'Business Street 3' => 'address2',
                        'Business City' => 'adr_one_locality',
                        'Business State' => 'adr_one_region',
                        'Business Postal Code' => 'adr_one_postalcode',
                        'Business Country' => 'adr_one_countryname',
                        'Home Street' => 'adr_two_street',
                        'Home Street 2' => '',
                        'Home Street 3' => '',
                        'Home City' => 'adr_two_locality',
                        'Home State' => 'adr_two_region',
                        'Home Postal Code' => 'adr_two_postalcode',
                        'Home Country' => 'adr_two_countryname',
                        'Other Street' => '',
                        'Other Street 2' => '',
                        'Other Street 3' => '',
                        'Other City' => '',
                        'Other State' => '',
                        'Other Postal Code' => '',
                        'Other Country' => '',
                        "Assistant's Phone" => 'tel_msg',
                        'Business Fax' => 'tel_fax',
                        'Business Phone' => 'tel_work',
                        'Business Phone 2' => 'ophone',
                        'Callback' => '',
                        'Car Phone' => 'tel_car',
                        'Company Main Phone' => '',
                        'Home Fax' => '',
                        'Home Phone' => 'tel_home',
                        'Home Phone 2' => '', //This will make another 
homePhone entry
                        'ISDN' => 'tel_isdn',
                        'Mobile Phone' => 'tel_cell', //newPilotPerson
                        'Other Fax' => '',
                        'Other Phone' => '',
                        'Pager' => 'tel_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' => 'email',
                        'E-mail Display Name' => '',
                        'E-mail 2 Address' => 'email_home',
                        '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' => 'note',
                        'Office Location' => '',
                        'Organizational ID Number' => '',
                        'PO Box' => '',
                        'Priority' => '',
                        'Private' => '',
                        'Profession' => '',
                        'Referred By' => '',
                        'Sensitivity' => '',
                        'Spouse' => '',
                        'User 1' => '',
                        'User 2' => '',
                        'User 3' => '',
                        'User 4' => '',
                        'Web Page' => 'url'
                );

                function import_start_file($buffer)
                {
                        return $buffer;
                }

                function import_start_record($buffer)
                {
                        $top=array();
                        ++$this->id;
                        $this->currentrecord = $top;
                        return $buffer;
                }

                function import_new_attrib($buffer,$name,$value)
                {
                        $value = trim($value);
                        $value = str_replace('\n','<BR>',$value);
                        $value = str_replace('\r','',$value);
                        $this->currentrecord += array($name => $value);

                        return $buffer;
                }

                function import_end_record($buffer)
                {
                        global $phpgw_info;
                        $buffer[$this->id]='';
                        while ( list($name, $value) = 
each($this->currentrecord))
                        {
                                $buffer[$this->id][$name] = $value;
                                echo '<br>'.$name.' => '.$value;
                        }
                        return $buffer;
                }

                function import_end_file($buffer,$access='private',$cat_id=0)
                {
                        global $phpgw,$phpgw_info;

                        $contacts = CreateObject('phpgwapi.contacts');
                        echo '<br>';
                        for ($i=1;$i<=count($buffer);$i++)
                        {
                                while ( list($name,$value) = @each($buffer[$i]) 
)
                                {
                                        echo '<br>'.$i.': '.$name.' => '.$value;
                                        $entry[$i][$name] = $value;
                                }
                                $entry[$i]['email_type']      = 'INTERNET';
                                $entry[$i]['email_home_type'] = 'INTERNET';
                                $entry[$i]['adr_one_type']    = 'intl';
                                $entry[$i]['adr_two_type']    = 'intl';
                                $entry[$i]['fn']    = $entry[$i]['n_given']." 
".$entry[$i]['n_middle']."
".$entry[$i]['n_family'];
                                echo '<br>';

$contacts->add($phpgw_info['user']['account_id'],$entry[$i],$access,$cat_id)
;
                        }
                        $num = $i - 1;
                        return lang('Successfully imported x records into your
addressbook.',$num);
                }
        }
?>

> -----Original Message-----
> From: address@hidden
> [mailto:address@hidden Behalf Of Russell Uman
> Sent: 2002, 28 February 6:23 PM
> To: address@hidden
> Subject: [Phpgroupware-users] importing contacts from outlook express,
> 0.9.12
>
>
>
> howdy,
>
> if there are docs on this process please point me to them.
>
> i want to import contacts into the addressbook from outlook
> express 5, windows.
> i exported my contacts as csv. i exported every field possible.
> i imported from phpgroupware using the "import from outlook"
> conversion type.
>
> all the fields are in the wrong place!
>
> i then deleted all the imported records from the db, and tried
> importing with no conversion type chosen. phpgw choked on that. i
> guess an import type is necessary.
>
> is there a particular field order required? should i do some
> research and write my own conversion type for oe? has anyone done this?
>
> thanks!
>
> ps: is there any way to search the archives?
>
>
> _______________________________________________
> Phpgroupware-users mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/phpgroupware-users
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]