forked from extern/egroupware
backporting importexport for addressbook to egw 1.4
- massive improvements for the imports - adopted export plugin to new interface - extended outlook export definitions
This commit is contained in:
commit
fe10569d78
@ -8,7 +8,7 @@
|
|||||||
* @link http://www.egroupware.org
|
* @link http://www.egroupware.org
|
||||||
* @author Cornelius Weiss <nelius@cwtech.de>
|
* @author Cornelius Weiss <nelius@cwtech.de>
|
||||||
* @copyright 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');
|
require_once(EGW_INCLUDE_ROOT. '/importexport/inc/class.iface_egw_record.inc.php');
|
@ -8,13 +8,13 @@
|
|||||||
* @link http://www.egroupware.org
|
* @link http://www.egroupware.org
|
||||||
* @author Cornelius Weiss <nelius@cwtech.de>
|
* @author Cornelius Weiss <nelius@cwtech.de>
|
||||||
* @copyright 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. '/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.export_csv.inc.php');
|
||||||
require_once(EGW_INCLUDE_ROOT. '/importexport/inc/class.iface_export_plugin.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');
|
require_once(EGW_INCLUDE_ROOT. '/addressbook/inc/class.uicontacts.inc.php');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -27,8 +27,8 @@ class export_contacts_csv implements iface_export_plugin {
|
|||||||
*
|
*
|
||||||
* @param egw_record $_definition
|
* @param egw_record $_definition
|
||||||
*/
|
*/
|
||||||
public static function export( $_stream, $_charset, definition $_definition) {
|
public function export( $_stream, definition $_definition) {
|
||||||
$options = $_definition->options;
|
$options = $_definition->plugin_options;
|
||||||
|
|
||||||
$uicontacts = new uicontacts();
|
$uicontacts = new uicontacts();
|
||||||
$selection = array();
|
$selection = array();
|
||||||
@ -41,8 +41,8 @@ class export_contacts_csv implements iface_export_plugin {
|
|||||||
$selection = explode(',',$options['selection']);
|
$selection = explode(',',$options['selection']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$options['begin_with_fieldnames'] = true;
|
$export_object = new export_csv($_stream, (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
|
// $options['selection'] is array of identifiers as this plugin doesn't
|
||||||
// support other selectors atm.
|
// support other selectors atm.
|
||||||
@ -86,7 +86,7 @@ class export_contacts_csv implements iface_export_plugin {
|
|||||||
*
|
*
|
||||||
* @return string html
|
* @return string html
|
||||||
*/
|
*/
|
||||||
public static function get_options_etpl() {
|
public function get_options_etpl() {
|
||||||
return 'addressbook.export_csv_options';
|
return 'addressbook.export_csv_options';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ class export_contacts_csv implements iface_export_plugin {
|
|||||||
* returns slectors of this plugin via xajax
|
* returns slectors of this plugin via xajax
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function get_selectors_etpl() {
|
public function get_selectors_etpl() {
|
||||||
return '<b>Selectors:</b>';
|
return '<b>Selectors:</b>';
|
||||||
}
|
}
|
||||||
}
|
}
|
211
addressbook/importexport/class.import_contacts_csv.inc.php
Normal file
211
addressbook/importexport/class.import_contacts_csv.inc.php
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
<?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
|
||||||
|
'contact_owner', // int
|
||||||
|
'field_conversion', // array( $csv_col_num => conversion)
|
||||||
|
'field_mapping', // array( $csv_col_num => adb_filed)
|
||||||
|
'has_header_line', //bool
|
||||||
|
'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', 'delete', );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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, 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.
|
||||||
|
$import_csv->mapping = $_definition->plugin_options['field_mapping'];
|
||||||
|
|
||||||
|
// set FieldConversion
|
||||||
|
$import_csv->conversion = $_definition->plugin_options['field_conversion'];
|
||||||
|
|
||||||
|
//check if file has a header line
|
||||||
|
if ($_definition->plugin_options['has_header_line']) {
|
||||||
|
$record = $import_csv->get_record();
|
||||||
|
}
|
||||||
|
|
||||||
|
// set contactOwner
|
||||||
|
if ( isset( $_definition->plugin_options['contact_owner'] )
|
||||||
|
&& abs( $_definition->plugin_options['contact_owner'] > 0 ) ) {
|
||||||
|
$record['contact_owner'] = $_definition->plugin_options['contact_owner'];
|
||||||
|
}
|
||||||
|
|
||||||
|
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', $record );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 ) {
|
||||||
|
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';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
61
addressbook/importexport/definitions/outlook_csv_english.xml
Normal file
61
addressbook/importexport/definitions/outlook_csv_english.xml
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?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">Default</entry>
|
||||||
|
</entry>
|
||||||
|
<entry type="array" name="plugin_options">
|
||||||
|
<entry type="boolean" name="begin_with_fieldnames">TRUE</entry>
|
||||||
|
<entry type="string" name="charset">iso-8859-15</entry>
|
||||||
|
<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">admin</entry>
|
||||||
|
<entry type="string" name="description">Exports selected contacts for english version of MS Outlook</entry>
|
||||||
|
</entry>
|
||||||
|
</entry>
|
||||||
|
</entry>
|
60
addressbook/importexport/definitions/outlook_csv_finish.xml
Normal file
60
addressbook/importexport/definitions/outlook_csv_finish.xml
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?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">Default</entry>
|
||||||
|
</entry>
|
||||||
|
<entry type="array" name="plugin_options">
|
||||||
|
<entry type="boolean" name="begin_with_fieldnames">TRUE</entry>
|
||||||
|
<entry type="string" name="charset">iso-8859-15</entry>
|
||||||
|
<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">admin</entry>
|
||||||
|
<entry type="NULL" name="description"/>
|
||||||
|
</entry>
|
||||||
|
</entry>
|
||||||
|
</entry>
|
60
addressbook/importexport/definitions/outlook_csv_french.xml
Normal file
60
addressbook/importexport/definitions/outlook_csv_french.xml
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?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">Default</entry>
|
||||||
|
</entry>
|
||||||
|
<entry type="array" name="plugin_options">
|
||||||
|
<entry type="boolean" name="begin_with_fieldnames">TRUE</entry>
|
||||||
|
<entry type="string" name="charset">iso-8859-15</entry>
|
||||||
|
<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">admin</entry>
|
||||||
|
<entry type="NULL" name="description"/>
|
||||||
|
</entry>
|
||||||
|
</entry>
|
||||||
|
</entry>
|
61
addressbook/importexport/definitions/outlook_csv_german.xml
Normal file
61
addressbook/importexport/definitions/outlook_csv_german.xml
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?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">Default</entry>
|
||||||
|
</entry>
|
||||||
|
<entry type="array" name="plugin_options">
|
||||||
|
<entry type="boolean" name="begin_with_fieldnames">TRUE</entry>
|
||||||
|
<entry type="string" name="charset">iso-8859-15</entry>
|
||||||
|
<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">admin</entry>
|
||||||
|
<entry type="string" name="description">Exportiert ausgewählte Kontakte zur Datenübernahme in die deutsche Version von MS Outlook</entry>
|
||||||
|
</entry>
|
||||||
|
</entry>
|
||||||
|
</entry>
|
61
addressbook/importexport/definitions/outlook_csv_italian.xml
Normal file
61
addressbook/importexport/definitions/outlook_csv_italian.xml
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?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">Default</entry>
|
||||||
|
</entry>
|
||||||
|
<entry type="array" name="plugin_options">
|
||||||
|
<entry type="boolean" name="begin_with_fieldnames">TRUE</entry>
|
||||||
|
<entry type="string" name="charset">iso-8859-15</entry>
|
||||||
|
<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">admin</entry>
|
||||||
|
<entry type="NULL" name="description"/>
|
||||||
|
</entry>
|
||||||
|
</entry>
|
||||||
|
</entry>
|
Loading…
Reference in New Issue
Block a user