forked from extern/egroupware
reworked import:
- cli import working fine now - ui wizzard is broken atm. will also be reworked - export definitions as xml files (see arrayxml functions in importexport) - moved importexport stuff to own dir
This commit is contained in:
parent
b4b6d5abef
commit
9e6050bc22
@ -8,7 +8,7 @@
|
||||
* @link http://www.egroupware.org
|
||||
* @author Cornelius Weiss <nelius@cwtech.de>
|
||||
* @copyright Cornelius Weiss <nelius@cwtech.de>
|
||||
* @version $Id$
|
||||
* @version $Id: class.egw_addressbook_record.inc.php 22827 2006-11-10 15:35:35Z nelius_weiss $
|
||||
*/
|
||||
|
||||
require_once(EGW_INCLUDE_ROOT. '/importexport/inc/class.iface_egw_record.inc.php');
|
@ -8,13 +8,13 @@
|
||||
* @link http://www.egroupware.org
|
||||
* @author Cornelius Weiss <nelius@cwtech.de>
|
||||
* @copyright Cornelius Weiss <nelius@cwtech.de>
|
||||
* @version $Id$
|
||||
* @version $Id: $
|
||||
*/
|
||||
|
||||
require_once(EGW_INCLUDE_ROOT. '/etemplate/inc/class.etemplate.inc.php');
|
||||
require_once(EGW_INCLUDE_ROOT. '/importexport/inc/class.export_csv.inc.php');
|
||||
require_once(EGW_INCLUDE_ROOT. '/importexport/inc/class.iface_export_plugin.inc.php');
|
||||
require_once(EGW_INCLUDE_ROOT. '/addressbook/inc/class.egw_addressbook_record.inc.php');
|
||||
require_once(EGW_INCLUDE_ROOT. '/addressbook/importexport/class.egw_addressbook_record.inc.php');
|
||||
require_once(EGW_INCLUDE_ROOT. '/addressbook/inc/class.uicontacts.inc.php');
|
||||
|
||||
/**
|
||||
@ -42,7 +42,8 @@ class export_contacts_csv implements iface_export_plugin {
|
||||
}
|
||||
|
||||
$options['begin_with_fieldnames'] = true;
|
||||
$export_object = new export_csv($_stream, $charset, (array)$options);
|
||||
$export_object = new export_csv($_stream, $_charset, (array)$options);
|
||||
$export_object->set_mapping($options['mapping']);
|
||||
|
||||
// $options['selection'] is array of identifiers as this plugin doesn't
|
||||
// support other selectors atm.
|
||||
@ -97,4 +98,4 @@ class export_contacts_csv implements iface_export_plugin {
|
||||
public static function get_selectors_etpl() {
|
||||
return '<b>Selectors:</b>';
|
||||
}
|
||||
}
|
||||
}
|
216
addressbook/importexport/class.import_contacts_csv.inc.php
Normal file
216
addressbook/importexport/class.import_contacts_csv.inc.php
Normal file
@ -0,0 +1,216 @@
|
||||
<?php
|
||||
/**
|
||||
* eGroupWare
|
||||
*
|
||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||
* @package importexport
|
||||
* @link http://www.egroupware.org
|
||||
* @author Cornelius Weiss <nelius@cwtech.de>
|
||||
* @copyright Cornelius Weiss <nelius@cwtech.de>
|
||||
* @version $Id: $
|
||||
*/
|
||||
|
||||
require_once(EGW_INCLUDE_ROOT. '/importexport/inc/class.iface_import_plugin.inc.php');
|
||||
require_once(EGW_INCLUDE_ROOT.'/importexport/inc/class.import_csv.inc.php');
|
||||
|
||||
|
||||
/**
|
||||
* class import_csv for addressbook
|
||||
*/
|
||||
class import_contacts_csv implements iface_import_plugin {
|
||||
|
||||
private static $plugin_options = array(
|
||||
'fieldsep', //char
|
||||
'charset', //string
|
||||
'addressbook', //char
|
||||
'owner', // comma seperated list of int
|
||||
'csv_fields', // array( $csv_col_num => csv_field_name)
|
||||
'field_mapping', // array( $csv_col_num => adb_filed)
|
||||
'field_translation', // array( $csv_col_num => translation)
|
||||
'has_header_line', //bool
|
||||
'max', // int
|
||||
'conditions', /* => array containing condition arrays:
|
||||
'type' => 0, // exists
|
||||
'string' => '#kundennummer',
|
||||
'true' => array(
|
||||
'action' => update,
|
||||
'last' => true,
|
||||
),
|
||||
'false' => array(
|
||||
'action' => insert,
|
||||
'last' => true,
|
||||
),*/
|
||||
|
||||
);
|
||||
|
||||
/**
|
||||
* actions wich could be done to data entries
|
||||
*/
|
||||
private static $actions = array( 'none', 'update', 'insert', 'delte', );
|
||||
|
||||
/**
|
||||
* conditions for actions
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $conditions = array( 'exists', 'greater', 'greater or equal', );
|
||||
|
||||
/**
|
||||
* @var bocontacts
|
||||
*/
|
||||
private $bocontacts;
|
||||
|
||||
/**
|
||||
* constructor of import_contacts_csv
|
||||
*
|
||||
public function __construct() {
|
||||
$this->bocontacts = CreateObject('addressbook.bocontacts');
|
||||
}*/
|
||||
|
||||
/**
|
||||
* imports entries according to given definition object.
|
||||
* @param resource $_stream
|
||||
* @param string $_charset
|
||||
* @param definition $_definition
|
||||
*/
|
||||
public function import( $_stream, $_charset, definition $_definition ) {
|
||||
$import_csv = new import_csv( $_stream, array(
|
||||
'fieldsep' => $_definition->plugin_options['fieldsep'],
|
||||
'charset' => $_definition->plugin_options['charset'],
|
||||
));
|
||||
|
||||
// fetch the addressbook bo
|
||||
$this->bocontacts = CreateObject('addressbook.bocontacts');
|
||||
|
||||
// set FieldMapping. Throw away empty / not assigned entrys
|
||||
$import_csv->mapping = array_diff($_definition->plugin_options['field_mapping'],array(''));
|
||||
|
||||
// renamed from translation to conversion
|
||||
$import_csv->conversion = $_definition->plugin_options['field_conversion'] ?
|
||||
$_definition->plugin_options['field_conversion'] :
|
||||
$_definition->plugin_options['field_translation'];
|
||||
|
||||
//check if file has a header line
|
||||
if ($_definition->plugin_options['has_header_line']) {
|
||||
$record = $import_csv->get_record();
|
||||
}
|
||||
|
||||
// TODO: Throw away spechial chars ?
|
||||
// TODO: check conversion:
|
||||
// - is not existing cat created?
|
||||
// - usermapping?
|
||||
|
||||
while ( $record = $import_csv->get_record() ) {
|
||||
|
||||
// don't import empty contacts
|
||||
if( count( array_unique( $record ) ) < 2 ) continue;
|
||||
|
||||
if ( $_definition->plugin_options['conditions'] ) {
|
||||
foreach ( $_definition->plugin_options['conditions'] as $condition ) {
|
||||
switch ( $condition['type'] ) {
|
||||
// exists
|
||||
case 'exists' :
|
||||
$contacts = $this->bocontacts->search(array(
|
||||
$condition['string'] => $record[$condition['string']],
|
||||
),true);
|
||||
|
||||
if ( is_array( $contacts ) && count( array_keys( $contacts ) >= 1 ) ) {
|
||||
// apply action to all contacts matching this exists condition
|
||||
$action = $condition['true'];
|
||||
foreach ( (array)$contacts as $contact ) {
|
||||
$record['id'] = $contact['id'];
|
||||
$this->action( $action['action'], $record );
|
||||
}
|
||||
} else {
|
||||
$action = $condition['true'];
|
||||
$this->action( $action['action'], $record );
|
||||
}
|
||||
break;
|
||||
|
||||
// not supported action
|
||||
default :
|
||||
die('condition / action not supported!!!');
|
||||
break;
|
||||
}
|
||||
if ($action['last']) break;
|
||||
}
|
||||
} else {
|
||||
// unconditional insert
|
||||
$this->action( 'insert', $values );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* perform the required action
|
||||
*
|
||||
* @param int $_action one of $this->actions
|
||||
* @param array $_data contact data for the action
|
||||
* @return bool success or not
|
||||
*/
|
||||
private function action ( $_action, $_data ) {
|
||||
print_r($_data);
|
||||
switch ($_action) {
|
||||
case 'none' :
|
||||
return true;
|
||||
case 'update' :
|
||||
case 'insert' :
|
||||
return $this->bocontacts->save( $_data );
|
||||
case 'delete' :
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* returns translated name of plugin
|
||||
*
|
||||
* @return string name
|
||||
*/
|
||||
public static function get_name() {
|
||||
return lang('Addressbook CSV export');
|
||||
}
|
||||
|
||||
/**
|
||||
* returns translated (user) description of plugin
|
||||
*
|
||||
* @return string descriprion
|
||||
*/
|
||||
public static function get_description() {
|
||||
return lang("Imports contacts into your Addressbook from a CSV File. CSV means 'Comma Seperated Values'. However in the options Tab you can also choose other seperators.");
|
||||
}
|
||||
|
||||
/**
|
||||
* retruns file suffix(s) plugin can handle (e.g. csv)
|
||||
*
|
||||
* @return string suffix (comma seperated)
|
||||
*/
|
||||
public static function get_filesuffix() {
|
||||
return 'csv';
|
||||
}
|
||||
|
||||
/**
|
||||
* return etemplate components for options.
|
||||
* @abstract We can't deal with etemplate objects here, as an uietemplate
|
||||
* objects itself are scipt orientated and not "dialog objects"
|
||||
*
|
||||
* @return array (
|
||||
* name => string,
|
||||
* content => array,
|
||||
* sel_options => array,
|
||||
* preserv => array,
|
||||
* )
|
||||
*/
|
||||
public function get_options_etpl() {
|
||||
// lets do it!
|
||||
}
|
||||
|
||||
/**
|
||||
* returns etemplate name for slectors of this plugin
|
||||
*
|
||||
* @return string etemplate name
|
||||
*/
|
||||
public function get_selectors_etpl() {
|
||||
// lets do it!
|
||||
}
|
||||
|
||||
} // end of iface_export_plugin
|
||||
?>
|
@ -0,0 +1,192 @@
|
||||
<?php
|
||||
/**
|
||||
* eGroupWare - Wizzard for Adressbook CSV import
|
||||
*
|
||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||
* @package addressbook
|
||||
* @link http://www.egroupware.org
|
||||
* @author Cornelius Weiss <nelius@cwtech.de>
|
||||
* @version $Id: $
|
||||
*/
|
||||
|
||||
require_once(EGW_INCLUDE_ROOT.'/addressbook/inc/class.addressbook_csv_import.inc.php');
|
||||
|
||||
class wizzard_addressbook_csv_import extends addressbook_csv_import
|
||||
{
|
||||
|
||||
var $steps;
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*/
|
||||
function wizzard_addressbook_csv_import()
|
||||
{
|
||||
$this->steps = array(
|
||||
'wizzard_step30' => lang('Load Sample file'),
|
||||
'wizzard_step40' => lang('Choose seperator and charset'),
|
||||
'wizzard_step50' => lang('Manage mapping'),
|
||||
'wizzard_step60' => lang('Choose owner of imported data'),
|
||||
);
|
||||
$this->__construct();
|
||||
}
|
||||
|
||||
function wizzard_step30(&$content, &$sel_options, &$readonlys, &$preserv)
|
||||
{
|
||||
if($this->debug) error_log('addressbook.importexport.addressbook_csv_import::wizzard_step30->$content '.print_r($content,true));
|
||||
// return from step30
|
||||
if ($content['step'] == 'wizzard_step30')
|
||||
{
|
||||
switch (array_search('pressed', $content['button']))
|
||||
{
|
||||
case 'next':
|
||||
error_log(print_r($content,true));
|
||||
$file = fopen ($content['file']['tmp_name'],'rb');
|
||||
|
||||
return $GLOBALS['egw']->uidefinitions->get_step($content['step'],1);
|
||||
case 'previous' :
|
||||
return $GLOBALS['egw']->uidefinitions->get_step($content['step'],-1);
|
||||
case 'finish':
|
||||
return 'wizzard_finish';
|
||||
default :
|
||||
return $this->wizzard_step30($content,$sel_options,$readonlys,$preserv);
|
||||
}
|
||||
}
|
||||
// init step30
|
||||
else
|
||||
{
|
||||
$content['msg'] = $this->steps['wizzard_step30'];
|
||||
$content['step'] = 'wizzard_step30';
|
||||
$preserv = $content;
|
||||
unset ($preserv['button']);
|
||||
$GLOBALS['egw']->js->set_onload("var btn = document.getElementById('exec[button][next]'); btn.attributes.removeNamedItem('onclick');");
|
||||
return 'addressbook.importexport_wizzard_samplefile';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* choose fieldseperator, charset and headerline
|
||||
*
|
||||
* @param array $content
|
||||
* @param array $sel_options
|
||||
* @param array $readonlys
|
||||
* @param array $preserv
|
||||
* @return string template name
|
||||
*/
|
||||
function wizzard_step40(&$content, &$sel_options, &$readonlys, &$preserv)
|
||||
{
|
||||
if($this->debug) error_log('addressbook.importexport.addressbook_csv_import::wizzard_step40->$content '.print_r($content,true));
|
||||
// return from step40
|
||||
if ($content['step'] == 'wizzard_step40')
|
||||
{//error_log(serialize($GLOBALS['egw']->uidefinitions));
|
||||
switch (array_search('pressed', $content['button']))
|
||||
{
|
||||
case 'next':
|
||||
return $GLOBALS['egw']->uidefinitions->get_step($content['step'],1);
|
||||
case 'previous' :
|
||||
return $GLOBALS['egw']->uidefinitions->get_step($content['step'],-1);
|
||||
case 'finish':
|
||||
return 'wizzard_finish';
|
||||
default :
|
||||
return $this->wizzard_step40($content,$sel_options,$readonlys,$preserv);
|
||||
}
|
||||
}
|
||||
// init step40
|
||||
else
|
||||
{
|
||||
$content['msg'] = $this->steps['wizzard_step40'];
|
||||
$content['step'] = 'wizzard_step40';
|
||||
$sel_options['charset'] = $GLOBALS['egw']->translation->get_installed_charsets()+
|
||||
array('utf-8' => 'utf-8 (Unicode)');
|
||||
$preserv = $content;
|
||||
unset ($preserv['button']);
|
||||
return 'addressbook.importexport_wizzard_choosesepncharset';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function wizzard_step50(&$content, &$sel_options, &$readonlys, &$preserv)
|
||||
{
|
||||
if($this->debug) error_log('addressbook.importexport.addressbook_csv_import::wizzard_step50->$content '.print_r($content,true));
|
||||
// return from step50
|
||||
if ($content['step'] == 'wizzard_step50')
|
||||
{
|
||||
array_shift($content['csv_fields']);
|
||||
//$content['csv_fields'] = array('csv_01','csv_02','csv_03','csv_04','csv_05','csv_06','csv_07','csv_08','csv_09','csv_10','csv_11','csv_12');
|
||||
array_shift($content['field_mapping']);
|
||||
array_shift($content['field_translation']);
|
||||
|
||||
switch (array_search('pressed', $content['button']))
|
||||
{
|
||||
case 'next':
|
||||
return $GLOBALS['egw']->uidefinitions->get_step($content['step'],1);
|
||||
case 'previous' :
|
||||
return $GLOBALS['egw']->uidefinitions->get_step($content['step'],-1);
|
||||
case 'finish':
|
||||
return 'wizzard_finish';
|
||||
default :
|
||||
return $this->wizzard_step50($content,$sel_options,$readonlys,$preserv);
|
||||
}
|
||||
}
|
||||
// init step50
|
||||
else
|
||||
{
|
||||
$content['msg'] = $this->steps['wizzard_step50'];
|
||||
$content['step'] = 'wizzard_step50';
|
||||
|
||||
array_unshift($content['csv_fields'],array('row0'));
|
||||
array_unshift($content['field_mapping'],array('row0'));
|
||||
array_unshift($content['field_translation'],array('row0'));
|
||||
|
||||
$j = 0;
|
||||
foreach ($content['csv_fields'] as $field)
|
||||
{
|
||||
if(strstr($field,'no_csv_')) $j++;
|
||||
}
|
||||
while ($j <= 3)
|
||||
{
|
||||
$content['csv_fields'][] = 'no_csv_'.$j;
|
||||
$content['field_mapping'][] = $content['field_translation'][] = '';
|
||||
$j++;
|
||||
}
|
||||
$contact_fields = $this->bocontacts->get_contact_columns();
|
||||
$sel_options['field_mapping'] = array('' => lang('none')) + array_combine($contact_fields,$contact_fields);
|
||||
error_log(print_r($sel_options['field_mapping'],true));
|
||||
$preserv = $content;
|
||||
unset ($preserv['button']);
|
||||
return 'addressbook.importexport_wizzard_fieldmaping';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function wizzard_step60(&$content, &$sel_options, &$readonlys, &$preserv)
|
||||
{
|
||||
if($this->debug) error_log('addressbook.importexport.addressbook_csv_import::wizzard_step60->$content '.print_r($content,true));
|
||||
// return from step60
|
||||
if ($content['step'] == 'wizzard_step60')
|
||||
{
|
||||
switch (array_search('pressed', $content['button']))
|
||||
{
|
||||
case 'next':
|
||||
return $GLOBALS['egw']->uidefinitions->get_step($content['step'],1);
|
||||
case 'previous' :
|
||||
return $GLOBALS['egw']->uidefinitions->get_step($content['step'],-1);
|
||||
case 'finish':
|
||||
return 'wizzard_finish';
|
||||
default :
|
||||
return $this->wizzard_step60($content,$sel_options,$readonlys,$preserv);
|
||||
}
|
||||
}
|
||||
// init step60
|
||||
else
|
||||
{
|
||||
$content['msg'] = $this->steps['wizzard_step60'];
|
||||
$content['step'] = 'wizzard_step60';
|
||||
|
||||
$preserv = $content;
|
||||
unset ($preserv['button']);
|
||||
return 'addressbook.importexport_wizzard_chooseowner';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
59
addressbook/importexport/definitions/outlook_csv_english.xml
Normal file
59
addressbook/importexport/definitions/outlook_csv_english.xml
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<entry type="array" name="importExportDefinitions">
|
||||
<entry type="array" name="metainfo">
|
||||
<entry type="string" name="type">importexport definitions</entry>
|
||||
<entry type="string" name="charset">utf-8</entry>
|
||||
<entry type="integer" name="entries">1</entry>
|
||||
</entry>
|
||||
<entry type="array" name="definitions">
|
||||
<entry type="array" name="outlook_csv_english">
|
||||
<entry type="string" name="name">outlook_csv_english</entry>
|
||||
<entry type="string" name="application">addressbook</entry>
|
||||
<entry type="string" name="plugin">export_contacts_csv</entry>
|
||||
<entry type="string" name="type">export</entry>
|
||||
<entry type="array" name="allowed_users">
|
||||
<entry type="string" name="0">-1</entry>
|
||||
</entry>
|
||||
<entry type="array" name="plugin_options">
|
||||
<entry type="array" name="mapping">
|
||||
<entry type="string" name="n_prefix">Title</entry>
|
||||
<entry type="string" name="n_given">First Name</entry>
|
||||
<entry type="string" name="n_middle">Middle Name</entry>
|
||||
<entry type="string" name="n_family">Last Name</entry>
|
||||
<entry type="string" name="n_suffix">Suffix</entry>
|
||||
<entry type="string" name="org_name">Company</entry>
|
||||
<entry type="string" name="org_unit">Department</entry>
|
||||
<entry type="string" name="title">Job Title</entry>
|
||||
<entry type="string" name="adr_one_street">Business Street</entry>
|
||||
<entry type="string" name="address2">Business Street 2</entry>
|
||||
<entry type="string" name="address3">Business Street 3</entry>
|
||||
<entry type="string" name="adr_one_locality">Business City</entry>
|
||||
<entry type="string" name="adr_one_region">Business State</entry>
|
||||
<entry type="string" name="adr_one_postalcode">Business Postal Code</entry>
|
||||
<entry type="string" name="adr_one_countryname">Business Country</entry>
|
||||
<entry type="string" name="adr_two_street">Home Street</entry>
|
||||
<entry type="string" name="adr_two_locality">Home City</entry>
|
||||
<entry type="string" name="adr_two_region">Home State</entry>
|
||||
<entry type="string" name="adr_two_postalcode">Home Postal Code</entry>
|
||||
<entry type="string" name="adr_two_countryname">Home Country</entry>
|
||||
<entry type="string" name="tel_fax">Business Fax</entry>
|
||||
<entry type="string" name="tel_work">Business Phone</entry>
|
||||
<entry type="string" name="tel_msg">Assistant's Phone</entry>
|
||||
<entry type="string" name="tel_car">Car Phone</entry>
|
||||
<entry type="string" name="tel_isdn">ISDN</entry>
|
||||
<entry type="string" name="tel_home">Home Phone</entry>
|
||||
<entry type="string" name="tel_cell">Mobile Phone</entry>
|
||||
<entry type="string" name="tel_pager">Pager</entry>
|
||||
<entry type="string" name="ophone">Business Phone 2</entry>
|
||||
<entry type="string" name="bday">Birthday</entry>
|
||||
<entry type="string" name="email">E-mail Address</entry>
|
||||
<entry type="string" name="email_home">E-mail Address 2</entry>
|
||||
<entry type="string" name="url">Web Page</entry>
|
||||
<entry type="string" name="note">Notes</entry>
|
||||
</entry>
|
||||
</entry>
|
||||
<entry type="string" name="owner">0</entry>
|
||||
<entry type="string" name="description">Exports selected contacts for english version of MS Outlook</entry>
|
||||
</entry>
|
||||
</entry>
|
||||
</entry>
|
58
addressbook/importexport/definitions/outlook_csv_finish.xml
Normal file
58
addressbook/importexport/definitions/outlook_csv_finish.xml
Normal file
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<entry type="array" name="importExportDefinitions">
|
||||
<entry type="array" name="metainfo">
|
||||
<entry type="string" name="type">importexport definitions</entry>
|
||||
<entry type="string" name="charset">utf-8</entry>
|
||||
<entry type="integer" name="entries">1</entry>
|
||||
</entry>
|
||||
<entry type="array" name="definitions">
|
||||
<entry type="array" name="outlook_csv_finish">
|
||||
<entry type="string" name="name">outlook_csv_finish</entry>
|
||||
<entry type="string" name="application">addressbook</entry>
|
||||
<entry type="string" name="plugin">export_contacts_csv</entry>
|
||||
<entry type="string" name="type">export</entry>
|
||||
<entry type="array" name="allowed_users">
|
||||
<entry type="string" name="0">-1</entry>
|
||||
</entry>
|
||||
<entry type="array" name="plugin_options">
|
||||
<entry type="array" name="mapping">
|
||||
<entry type="string" name="title">Tehtävänimike</entry>
|
||||
<entry type="string" name="n_given">Etunimi</entry>
|
||||
<entry type="string" name="n_middle">Toinen nimi</entry>
|
||||
<entry type="string" name="n_family">Sukunimi</entry>
|
||||
<entry type="string" name="n_suffix">Jälkiliite</entry>
|
||||
<entry type="string" name="org_name">Yritys</entry>
|
||||
<entry type="string" name="org_unit">Osasto</entry>
|
||||
<entry type="string" name="adr_one_street">Lähiosoite (työ)</entry>
|
||||
<entry type="string" name="Business Street 2">Lähiosoite (työ) 2</entry>
|
||||
<entry type="string" name="Business Street 3">Lähiosoite (työ) 3</entry>
|
||||
<entry type="string" name="Business City">Postitoimipaikka (työ)</entry>
|
||||
<entry type="string" name="Business State">Sijaintitiedot (työ)</entry>
|
||||
<entry type="string" name="Business Postal Code">Postinumero (työ)</entry>
|
||||
<entry type="string" name="Business Country">Maa (työ)</entry>
|
||||
<entry type="string" name="Home Street">Lähiosoite (koti)</entry>
|
||||
<entry type="string" name="Home City">Postitoimipaikka (koti)</entry>
|
||||
<entry type="string" name="Home State">Sijaintitiedot (koti)</entry>
|
||||
<entry type="string" name="Home Postal Code">Postinumero (koti)</entry>
|
||||
<entry type="string" name="Home Country">Maa (koti)</entry>
|
||||
<entry type="string" name="Business Fax">Työfaksi</entry>
|
||||
<entry type="string" name="Business Phone">Työpuhelin</entry>
|
||||
<entry type="string" name="Assistant's Phone">Avustajan puhelinnumero</entry>
|
||||
<entry type="string" name="Car Phone">Autopuhelin</entry>
|
||||
<entry type="string" name="ISDN">ISDN</entry>
|
||||
<entry type="string" name="Home Phone">Kotipuhelin</entry>
|
||||
<entry type="string" name="Mobile Phone">Matkapuhelin</entry>
|
||||
<entry type="string" name="Pager">Hakulaite</entry>
|
||||
<entry type="string" name="Business Phone 2">Työpuhelin 2</entry>
|
||||
<entry type="string" name="Birthday">Syntymäpäivä</entry>
|
||||
<entry type="string" name="E-mail Address">Sähköpostiosoite</entry>
|
||||
<entry type="string" name="E-mail Address 2">Säköpostiosoite 2</entry>
|
||||
<entry type="string" name="Web Page">Web-sivu</entry>
|
||||
<entry type="string" name="Notes">Muistilaput</entry>
|
||||
</entry>
|
||||
</entry>
|
||||
<entry type="string" name="owner">0</entry>
|
||||
<entry type="NULL" name="description"/>
|
||||
</entry>
|
||||
</entry>
|
||||
</entry>
|
58
addressbook/importexport/definitions/outlook_csv_french.xml
Normal file
58
addressbook/importexport/definitions/outlook_csv_french.xml
Normal file
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<entry type="array" name="importExportDefinitions">
|
||||
<entry type="array" name="metainfo">
|
||||
<entry type="string" name="type">importexport definitions</entry>
|
||||
<entry type="string" name="charset">utf-8</entry>
|
||||
<entry type="integer" name="entries">1</entry>
|
||||
</entry>
|
||||
<entry type="array" name="definitions">
|
||||
<entry type="array" name="outlook_csv_french">
|
||||
<entry type="string" name="name">outlook_csv_french</entry>
|
||||
<entry type="string" name="application">addressbook</entry>
|
||||
<entry type="string" name="plugin">export_contacts_csv</entry>
|
||||
<entry type="string" name="type">export</entry>
|
||||
<entry type="array" name="allowed_users">
|
||||
<entry type="string" name="0">-1</entry>
|
||||
</entry>
|
||||
<entry type="array" name="plugin_options">
|
||||
<entry type="array" name="mapping">
|
||||
<entry type="string" name="title">Fonction</entry>
|
||||
<entry type="string" name="n_given">Prénom</entry>
|
||||
<entry type="string" name="n_middle">Deuxième prénom</entry>
|
||||
<entry type="string" name="n_family">Nom</entry>
|
||||
<entry type="string" name="n_suffix">Suffixe</entry>
|
||||
<entry type="string" name="org_name">Société</entry>
|
||||
<entry type="string" name="org_unit">Service</entry>
|
||||
<entry type="string" name="adr_one_street">Rue (bureau)</entry>
|
||||
<entry type="string" name="address2">Rue (bureau) 2</entry>
|
||||
<entry type="string" name="address3">Rue (bureau) 3</entry>
|
||||
<entry type="string" name="adr_one_locality">Ville (bureau)</entry>
|
||||
<entry type="string" name="adr_one_region">État/Prov (bureau)</entry>
|
||||
<entry type="string" name="adr_one_postalcode">Code postal (bureau)</entry>
|
||||
<entry type="string" name="adr_one_countryname">Pays (bureau)</entry>
|
||||
<entry type="string" name="adr_two_street">Rue (domicile)</entry>
|
||||
<entry type="string" name="adr_two_locality">Ville (domicile)</entry>
|
||||
<entry type="string" name="adr_two_region">État/Prov (domicile)</entry>
|
||||
<entry type="string" name="adr_two_postalcode">Code postal (domicile)</entry>
|
||||
<entry type="string" name="adr_two_countryname">Pays (domicile)</entry>
|
||||
<entry type="string" name="tel_fax">Télécopie (bureau)</entry>
|
||||
<entry type="string" name="tel_work">Téléphone (bureau)</entry>
|
||||
<entry type="string" name="tel_msg">Téléphone de l'assistant(e)</entry>
|
||||
<entry type="string" name="tel_car">Téléphone (voiture)</entry>
|
||||
<entry type="string" name="tel_isdn">RNIS</entry>
|
||||
<entry type="string" name="tel_home">Téléphone (domicile)</entry>
|
||||
<entry type="string" name="tel_cell">Tél. mobile</entry>
|
||||
<entry type="string" name="tel_pager">Récepteur de radiomessagerie</entry>
|
||||
<entry type="string" name="ophone">Téléphone 2 (bureau)</entry>
|
||||
<entry type="string" name="bday">Anniversaire</entry>
|
||||
<entry type="string" name="email">Adresse e-mail</entry>
|
||||
<entry type="string" name="email_home">Adresse e-mail 2</entry>
|
||||
<entry type="string" name="url">Page Web</entry>
|
||||
<entry type="string" name="note">Notes</entry>
|
||||
</entry>
|
||||
</entry>
|
||||
<entry type="string" name="owner">0</entry>
|
||||
<entry type="NULL" name="description"/>
|
||||
</entry>
|
||||
</entry>
|
||||
</entry>
|
59
addressbook/importexport/definitions/outlook_csv_german.xml
Normal file
59
addressbook/importexport/definitions/outlook_csv_german.xml
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<entry type="array" name="importExportDefinitions">
|
||||
<entry type="array" name="metainfo">
|
||||
<entry type="string" name="type">importexport definitions</entry>
|
||||
<entry type="string" name="charset">utf-8</entry>
|
||||
<entry type="integer" name="entries">1</entry>
|
||||
</entry>
|
||||
<entry type="array" name="definitions">
|
||||
<entry type="array" name="outlook_csv_german">
|
||||
<entry type="string" name="name">outlook_csv_german</entry>
|
||||
<entry type="string" name="application">addressbook</entry>
|
||||
<entry type="string" name="plugin">export_contacts_csv</entry>
|
||||
<entry type="string" name="type">export</entry>
|
||||
<entry type="array" name="allowed_users">
|
||||
<entry type="string" name="0">-1</entry>
|
||||
</entry>
|
||||
<entry type="array" name="plugin_options">
|
||||
<entry type="array" name="mapping">
|
||||
<entry type="string" name="n_prefix">Anrede</entry>
|
||||
<entry type="string" name="n_given">Vorname</entry>
|
||||
<entry type="string" name="n_middle">Weitere Vornamen</entry>
|
||||
<entry type="string" name="n_family">Nachname</entry>
|
||||
<entry type="string" name="n_suffix">Suffix</entry>
|
||||
<entry type="string" name="org_name">Firma</entry>
|
||||
<entry type="string" name="org_unit">Abteilung</entry>
|
||||
<entry type="string" name="title">Position</entry>
|
||||
<entry type="string" name="adr_one_street">Straße geschäftlich</entry>
|
||||
<entry type="string" name="address2">Straße geschäftlich 2</entry>
|
||||
<entry type="string" name="address3">Straße geschäftlich 3</entry>
|
||||
<entry type="string" name="adr_one_locality">Ort geschäftlich</entry>
|
||||
<entry type="string" name="adr_one_region">Region geschäftlich</entry>
|
||||
<entry type="string" name="adr_one_postalcode">Postleitzahl geschäftlich</entry>
|
||||
<entry type="string" name="adr_one_countryname">Land geschäftlich</entry>
|
||||
<entry type="string" name="adr_two_street">Straße privat</entry>
|
||||
<entry type="string" name="adr_two_locality">Ort privat</entry>
|
||||
<entry type="string" name="adr_two_region">Region privat</entry>
|
||||
<entry type="string" name="adr_two_postalcode">Postleitzahl privat</entry>
|
||||
<entry type="string" name="adr_two_countryname">Land privat</entry>
|
||||
<entry type="string" name="tel_fax">Fax geschäftlich</entry>
|
||||
<entry type="string" name="tel_work">Telefon geschäftlich</entry>
|
||||
<entry type="string" name="tel_msg">Telefon Assistent</entry>
|
||||
<entry type="string" name="tel_car">Autotelefon</entry>
|
||||
<entry type="string" name="tel_isdn">ISDN</entry>
|
||||
<entry type="string" name="tel_home">Telefon privat</entry>
|
||||
<entry type="string" name="tel_cell">Mobiltelefon</entry>
|
||||
<entry type="string" name="tel_pager">Pager</entry>
|
||||
<entry type="string" name="ophone">Telefon geschäftlich 2</entry>
|
||||
<entry type="string" name="bday">Geburtstag</entry>
|
||||
<entry type="string" name="email">E-Mail-Adresse</entry>
|
||||
<entry type="string" name="email_home">E-Mail 2: Adresse</entry>
|
||||
<entry type="string" name="url">Webseite</entry>
|
||||
<entry type="string" name="note">Notizen</entry>
|
||||
</entry>
|
||||
</entry>
|
||||
<entry type="string" name="owner">0</entry>
|
||||
<entry type="string" name="description">Exportiert ausgewählte Kontakte zur Datenübernahme in die deutsche Version von MS Outlook</entry>
|
||||
</entry>
|
||||
</entry>
|
||||
</entry>
|
59
addressbook/importexport/definitions/outlook_csv_italian.xml
Normal file
59
addressbook/importexport/definitions/outlook_csv_italian.xml
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<entry type="array" name="importExportDefinitions">
|
||||
<entry type="array" name="metainfo">
|
||||
<entry type="string" name="type">importexport definitions</entry>
|
||||
<entry type="string" name="charset">utf-8</entry>
|
||||
<entry type="integer" name="entries">1</entry>
|
||||
</entry>
|
||||
<entry type="array" name="definitions">
|
||||
<entry type="array" name="outlook_csv_italien">
|
||||
<entry type="string" name="name">outlook_csv_italien</entry>
|
||||
<entry type="string" name="application">addressbook</entry>
|
||||
<entry type="string" name="plugin">export_contacts_csv</entry>
|
||||
<entry type="string" name="type">export</entry>
|
||||
<entry type="array" name="allowed_users">
|
||||
<entry type="string" name="0">-1</entry>
|
||||
</entry>
|
||||
<entry type="array" name="plugin_options">
|
||||
<entry type="array" name="mapping">
|
||||
<entry type="string" name="title">Posizione</entry>
|
||||
<entry type="string" name="n_prefix">Titolo</entry>
|
||||
<entry type="string" name="n_given">Nome</entry>
|
||||
<entry type="string" name="n_middle">Secondo nome</entry>
|
||||
<entry type="string" name="n_family">Cognome</entry>
|
||||
<entry type="string" name="n_suffix">Titolo straniero</entry>
|
||||
<entry type="string" name="org_name">Società</entry>
|
||||
<entry type="string" name="org_unit">Reparto</entry>
|
||||
<entry type="string" name="adr_one_street">Via (uff.)</entry>
|
||||
<entry type="string" name="address2">Via (uff.) 2</entry>
|
||||
<entry type="string" name="address3">Via (uff.) 3</entry>
|
||||
<entry type="string" name="adr_one_locality">Città (uff.)</entry>
|
||||
<entry type="string" name="adr_one_region">Provincia (uff.)</entry>
|
||||
<entry type="string" name="adr_one_postalcode">CAP (uff.)</entry>
|
||||
<entry type="string" name="adr_one_countryname">Paese (uff.)</entry>
|
||||
<entry type="string" name="adr_two_street">Via (ab.)</entry>
|
||||
<entry type="string" name="adr_two_locality">Città (ab.)</entry>
|
||||
<entry type="string" name="adr_two_region">Provincia (ab.)</entry>
|
||||
<entry type="string" name="adr_two_postalcode">CAP (ab.)</entry>
|
||||
<entry type="string" name="adr_two_countryname">Paese (ab.)</entry>
|
||||
<entry type="string" name="tel_fax">Fax (uff.)</entry>
|
||||
<entry type="string" name="tel_work">Ufficio</entry>
|
||||
<entry type="string" name="tel_msg">Telefono assistente</entry>
|
||||
<entry type="string" name="tel_car">Telefono auto</entry>
|
||||
<entry type="string" name="tel_isdn">ISDN</entry>
|
||||
<entry type="string" name="tel_home">Abitazione</entry>
|
||||
<entry type="string" name="tel_cell">Cellulare</entry>
|
||||
<entry type="string" name="tel_pager">Pager</entry>
|
||||
<entry type="string" name="ophone">Business Phone 2</entry>
|
||||
<entry type="string" name="bday">Compleanno</entry>
|
||||
<entry type="string" name="email">Indirizzo posta elettronica</entry>
|
||||
<entry type="string" name="email_home">Indirizzo posta elettronica 2</entry>
|
||||
<entry type="string" name="url">Pagina Web</entry>
|
||||
<entry type="string" name="note">Notes</entry>
|
||||
</entry>
|
||||
</entry>
|
||||
<entry type="string" name="owner">0</entry>
|
||||
<entry type="NULL" name="description"/>
|
||||
</entry>
|
||||
</entry>
|
||||
</entry>
|
Loading…
Reference in New Issue
Block a user