mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-28 01:29:05 +01:00
addressbook extension:
Admin can now define multiple addressbooks each with an own edit / view template and an own icon. Atm. all Addressbooks are stored in one backend, but this will change soon^tm
This commit is contained in:
parent
300b9b1070
commit
4e9c822ed8
@ -92,7 +92,7 @@
|
|||||||
// are we called via xmlrpc?
|
// are we called via xmlrpc?
|
||||||
$this->xmlrpc = is_object($GLOBALS['server']) && $GLOBALS['server']->last_method;
|
$this->xmlrpc = is_object($GLOBALS['server']) && $GLOBALS['server']->last_method;
|
||||||
|
|
||||||
/* _debug_array($_POST); */
|
//_debug_array($_POST);
|
||||||
$_start = get_var('start',array('POST','GET'));
|
$_start = get_var('start',array('POST','GET'));
|
||||||
$_query = get_var('query',array('POST','GET'),'_UNSET_');
|
$_query = get_var('query',array('POST','GET'),'_UNSET_');
|
||||||
$_cquery = get_var('cquery', array('GET','POST'),'_UNSET_');
|
$_cquery = get_var('cquery', array('GET','POST'),'_UNSET_');
|
||||||
@ -126,10 +126,13 @@
|
|||||||
{
|
{
|
||||||
$this->typeid = $_typeid;
|
$this->typeid = $_typeid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
if(!@in_array($this->typeid,array('n','c')))
|
if(!@in_array($this->typeid,array('n','c')))
|
||||||
{
|
{
|
||||||
$this->typeid = 'n';
|
$this->typeid = 'n';
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
if(isset($_POST['fcat_id']) || isset($_POST['fcat_id']))
|
if(isset($_POST['fcat_id']) || isset($_POST['fcat_id']))
|
||||||
{
|
{
|
||||||
|
@ -185,9 +185,6 @@ class bocontacts extends socontacts
|
|||||||
if($contact['id'] == 0)
|
if($contact['id'] == 0)
|
||||||
{
|
{
|
||||||
$contact['owner'] = $this->user;
|
$contact['owner'] = $this->user;
|
||||||
// we create a normal contact
|
|
||||||
$contact['tid'] = 'n';
|
|
||||||
|
|
||||||
$isUpdate = false;
|
$isUpdate = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -260,6 +257,7 @@ class bocontacts extends socontacts
|
|||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* searches contacts for rows matching searchcriteria
|
* searches contacts for rows matching searchcriteria
|
||||||
*
|
*
|
||||||
|
@ -69,11 +69,10 @@ class socontacts
|
|||||||
|
|
||||||
$custom =& CreateObject('admin.customfields',$contact_app);
|
$custom =& CreateObject('admin.customfields',$contact_app);
|
||||||
$this->customfields = $custom->get_customfields();
|
$this->customfields = $custom->get_customfields();
|
||||||
if ($this->customfields && !is_array($this->customfields))
|
if ($this->customfields && !is_array($this->customfields)) $this->customfields = unserialize($this->customfields);
|
||||||
{
|
|
||||||
$this->customfields = unserialize($this->customfields);
|
|
||||||
}
|
|
||||||
if (!$this->customfields) $this->customfields = array();
|
if (!$this->customfields) $this->customfields = array();
|
||||||
|
$this->content_types = $custom->get_content_types();
|
||||||
|
if ($this->content_types && !is_array($this->content_types)) $this->content_types = unserialize($this->content_types);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -135,11 +134,12 @@ class socontacts
|
|||||||
$this->somain->data = $this->data2db($contact);
|
$this->somain->data = $this->data2db($contact);
|
||||||
$error_nr = $this->somain->save();
|
$error_nr = $this->somain->save();
|
||||||
$contact['id'] = $this->somain->data['id'];
|
$contact['id'] = $this->somain->data['id'];
|
||||||
if($error_nr) return $error_nr_main;
|
if($error_nr) return $error_nr;
|
||||||
|
|
||||||
// save customfields
|
// save customfields
|
||||||
foreach ((array)$this->customfields + array('ophone' => '', 'address2' => '' , 'address3' => '') as $field => $options)
|
foreach ((array)$this->customfields + array('ophone' => '', 'address2' => '' , 'address3' => '') as $field => $options)
|
||||||
{
|
{
|
||||||
|
if(!array_key_exists('#'.$field,$contact)) continue;
|
||||||
$value = $contact['#'.$field];
|
$value = $contact['#'.$field];
|
||||||
$data = array(
|
$data = array(
|
||||||
$this->extra_id => $contact['id'],
|
$this->extra_id => $contact['id'],
|
||||||
|
@ -382,6 +382,22 @@
|
|||||||
$this->bo->save_preferences($prefs,'',$columns_to_display,'');
|
$this->bo->save_preferences($prefs,'',$columns_to_display,'');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$typeicon = '<td height="21"> </td>';
|
||||||
|
$cols = $typeicon . $cols;
|
||||||
|
|
||||||
|
$custom =& CreateObject('admin.customfields',$contact_app);
|
||||||
|
$this->html =& CreateObject('phpgwapi.html');
|
||||||
|
$this->content_types = $custom->get_content_types();
|
||||||
|
if ($this->content_types && !is_array($this->content_types)) $this->content_types = unserialize($this->content_types);
|
||||||
|
foreach($this->content_types as $type => $data)
|
||||||
|
{
|
||||||
|
$this->contact_types[$type] = $data['name'];
|
||||||
|
$icon = !empty($data['options']['icon']) ? $this->html->image('addressbook',$data['options']['icon'],$data['name'], ' width="16px" height="16px"') : $data['name'];
|
||||||
|
$add_buttons .= "<td ><a href=\"\" onClick= \"window.open('". $GLOBALS['egw']->link('/index.php', array('menuaction'=>'addressbook.uicontacts.edit','typeid'=>$type)). "','_blank','dependent=yes,width=850,height=440,location=no,menubar=no,toolbar=no,scrollbars=yes,status=yes'); return false;\" >".$icon." </a></td>";
|
||||||
|
}
|
||||||
|
$GLOBALS['egw']->template->set_var('add_buttons',$add_buttons);
|
||||||
|
$GLOBALS['egw']->template->set_var('addressbuch_type',lang('Addressbook').'-'.lang('type'));
|
||||||
|
|
||||||
if(!$this->start)
|
if(!$this->start)
|
||||||
{
|
{
|
||||||
$this->start = 0;
|
$this->start = 0;
|
||||||
@ -415,7 +431,7 @@
|
|||||||
Set qfilter to display entries where tid=n (normal contact entry),
|
Set qfilter to display entries where tid=n (normal contact entry),
|
||||||
else they may be accounts, etc.
|
else they may be accounts, etc.
|
||||||
*/
|
*/
|
||||||
$qfilter = 'tid=' . (string)$this->typeid;
|
$qfilter = 'tid='.($this->typeid ? (string)$this->typeid : '!');
|
||||||
switch($this->filter)
|
switch($this->filter)
|
||||||
{
|
{
|
||||||
case 'blank':
|
case 'blank':
|
||||||
@ -490,14 +506,13 @@
|
|||||||
$GLOBALS['egw']->template->set_var('searchreturn',$noprefs . ' ' . $searchreturn);
|
$GLOBALS['egw']->template->set_var('searchreturn',$noprefs . ' ' . $searchreturn);
|
||||||
$GLOBALS['egw']->template->set_var('lang_showing',$lang_showing);
|
$GLOBALS['egw']->template->set_var('lang_showing',$lang_showing);
|
||||||
$GLOBALS['egw']->template->set_var('search_filter',$search_filter);
|
$GLOBALS['egw']->template->set_var('search_filter',$search_filter);
|
||||||
/*
|
|
||||||
$GLOBALS['egw']->template->set_var('lang_show',lang('Show') . ':');
|
$GLOBALS['egw']->template->set_var('lang_show',lang('Show') . ':');
|
||||||
$GLOBALS['egw']->template->set_var('contact_type_list',$this->formatted_list('typeid',$this->contact_types,$this->typeid,False,True));
|
$GLOBALS['egw']->template->set_var('contact_type_list',$this->formatted_list('typeid',array('' => 'all') + $this->contact_types,$this->typeid,False,True));
|
||||||
$GLOBALS['egw']->template->set_var('self_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index'));
|
$GLOBALS['egw']->template->set_var('self_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index'));
|
||||||
*/
|
|
||||||
$GLOBALS['egw']->template->set_var('lang_show','');
|
// $GLOBALS['egw']->template->set_var('lang_show','');
|
||||||
$GLOBALS['egw']->template->set_var('contact_type_list','');
|
// $GLOBALS['egw']->template->set_var('contact_type_list','');
|
||||||
$GLOBALS['egw']->template->set_var('self_url','');
|
// $GLOBALS['egw']->template->set_var('self_url','');
|
||||||
|
|
||||||
$GLOBALS['egw']->template->set_var('cats',lang('Category'));
|
$GLOBALS['egw']->template->set_var('cats',lang('Category'));
|
||||||
$GLOBALS['egw']->template->set_var('cats_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index'));
|
$GLOBALS['egw']->template->set_var('cats_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index'));
|
||||||
@ -521,7 +536,7 @@
|
|||||||
$GLOBALS['egw']->template->set_var('lang_export',lang('Export Contacts'));
|
$GLOBALS['egw']->template->set_var('lang_export',lang('Export Contacts'));
|
||||||
$GLOBALS['egw']->template->set_var('export_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiXport.export'));
|
$GLOBALS['egw']->template->set_var('export_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiXport.export'));
|
||||||
$GLOBALS['egw']->template->set_var('lang_delete',lang('Delete'));
|
$GLOBALS['egw']->template->set_var('lang_delete',lang('Delete'));
|
||||||
$GLOBALS['egw']->template->set_var('column_count',count($columns_to_display));
|
$GLOBALS['egw']->template->set_var('column_count',count($columns_to_display) + 1);
|
||||||
$GLOBALS['egw']->template->set_var('lang_sure',lang('Are you sure you want to delete these entries ?'));
|
$GLOBALS['egw']->template->set_var('lang_sure',lang('Are you sure you want to delete these entries ?'));
|
||||||
|
|
||||||
$GLOBALS['egw']->template->set_var('start',$this->start);
|
$GLOBALS['egw']->template->set_var('start',$this->start);
|
||||||
@ -532,6 +547,7 @@
|
|||||||
$GLOBALS['egw']->template->set_var('cat_id',$this->cat_id);
|
$GLOBALS['egw']->template->set_var('cat_id',$this->cat_id);
|
||||||
|
|
||||||
$GLOBALS['egw']->template->set_var('qfield',$qfield);
|
$GLOBALS['egw']->template->set_var('qfield',$qfield);
|
||||||
|
|
||||||
$GLOBALS['egw']->template->set_var('cols',$cols);
|
$GLOBALS['egw']->template->set_var('cols',$cols);
|
||||||
|
|
||||||
$GLOBALS['egw']->template->pparse('out','addressbook_header');
|
$GLOBALS['egw']->template->pparse('out','addressbook_header');
|
||||||
@ -546,6 +562,17 @@
|
|||||||
$myid = $entries[$i]['id'];
|
$myid = $entries[$i]['id'];
|
||||||
$myowner = $entries[$i]['owner'];
|
$myowner = $entries[$i]['owner'];
|
||||||
|
|
||||||
|
if(!empty($this->content_types[$entries[$i]['tid']]['options']['icon']))
|
||||||
|
{
|
||||||
|
$icon = $this->html->image('addressbook',$this->content_types[$entries[$i]['tid']]['options']['icon'],$this->content_types[$entries[$i]['tid']]['name'], 'width="16px" height="16px"');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$icon = $this->content_types[$entries[$i]['tid']]['name'];
|
||||||
|
}
|
||||||
|
$GLOBALS['egw']->template->set_var('col_data',$icon);
|
||||||
|
$GLOBALS['egw']->template->parse('columns','column',True);
|
||||||
|
|
||||||
/* each entry column */
|
/* each entry column */
|
||||||
foreach($columns_to_display as $column => $nul)
|
foreach($columns_to_display as $column => $nul)
|
||||||
{
|
{
|
||||||
@ -574,6 +601,7 @@
|
|||||||
{
|
{
|
||||||
$ref = ''; $data = $coldata;
|
$ref = ''; $data = $coldata;
|
||||||
}
|
}
|
||||||
|
|
||||||
$GLOBALS['egw']->template->set_var('col_data',$ref.$data);
|
$GLOBALS['egw']->template->set_var('col_data',$ref.$data);
|
||||||
$GLOBALS['egw']->template->parse('columns','column',True);
|
$GLOBALS['egw']->template->parse('columns','column',True);
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
if (is_array($content))
|
if (is_array($content))
|
||||||
{
|
{
|
||||||
list($button) = each($content['button']);
|
list($button) = @each($content['button']);
|
||||||
switch($button)
|
switch($button)
|
||||||
{
|
{
|
||||||
case 'save':
|
case 'save':
|
||||||
@ -105,6 +105,7 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// type change
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -118,6 +119,8 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
else // look if we have presets for a new contact
|
else // look if we have presets for a new contact
|
||||||
{
|
{
|
||||||
|
$new_type = array_keys($this->content_types);
|
||||||
|
$content['tid'] = $_GET['typeid'] ? $_GET['typeid'] : $new_type[0];
|
||||||
foreach($this->get_contact_conlumns() as $field => $data)
|
foreach($this->get_contact_conlumns() as $field => $data)
|
||||||
{
|
{
|
||||||
if ($_GET['presets'][$field]) $content[$field] = $_GET['presets'][$field];
|
if ($_GET['presets'][$field]) $content[$field] = $_GET['presets'][$field];
|
||||||
@ -146,7 +149,6 @@ class uicontacts extends bocontacts
|
|||||||
$preserv = array(
|
$preserv = array(
|
||||||
'id' => $content['id'],
|
'id' => $content['id'],
|
||||||
'lid' => $content['lid'],
|
'lid' => $content['lid'],
|
||||||
'tid' => $content['tid'],
|
|
||||||
'owner' => $content['owner'],
|
'owner' => $content['owner'],
|
||||||
'fn' => $content['fn'],
|
'fn' => $content['fn'],
|
||||||
'geo' => $content['geo'],
|
'geo' => $content['geo'],
|
||||||
@ -156,13 +158,17 @@ class uicontacts extends bocontacts
|
|||||||
for($i = -23; $i<=23; $i++) $tz[$i] = ($i > 0 ? '+' : '').$i;
|
for($i = -23; $i<=23; $i++) $tz[$i] = ($i > 0 ? '+' : '').$i;
|
||||||
$sel_options['tz'] = $tz;
|
$sel_options['tz'] = $tz;
|
||||||
$content['tz'] = $content['tz'] ? $content['tz'] : 0;
|
$content['tz'] = $content['tz'] ? $content['tz'] : 0;
|
||||||
|
foreach($this->content_types as $type => $data) $sel_options['tid'][$type] = $data['name'];
|
||||||
|
foreach($GLOBALS['egw']->acl->get_all_location_rights($GLOBALS['egw']->acl->account_id,'addressbook',true) as $id => $right)
|
||||||
|
{
|
||||||
|
if($id < 0) $sel_options['published_groups'][$id] = $GLOBALS['egw']->accounts->id2name($id);
|
||||||
|
}
|
||||||
|
$content['typegfx'] = $GLOBALS['egw']->html->image('addressbook',$this->content_types[$content['tid']]['options']['icon'],'',' width="16px" height="16px"');
|
||||||
$content['link_to'] = array(
|
$content['link_to'] = array(
|
||||||
'to_app' => 'addressbook',
|
'to_app' => 'addressbook',
|
||||||
'to_id' => $content['link_to']['to_id'],
|
'to_id' => $content['link_to']['to_id'],
|
||||||
);
|
);
|
||||||
|
$this->tmpl->read($this->content_types[$content['tid']]['options']['template']);
|
||||||
$this->tmpl->read('addressbook.edit');
|
|
||||||
return $this->tmpl->exec('addressbook.uicontacts.edit',$content,$sel_options,$readonlys,$preserv, 2);
|
return $this->tmpl->exec('addressbook.uicontacts.edit',$content,$sel_options,$readonlys,$preserv, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -197,7 +203,7 @@ class uicontacts extends bocontacts
|
|||||||
|
|
||||||
$content = $this->read($contact_id);
|
$content = $this->read($contact_id);
|
||||||
}
|
}
|
||||||
foreach($content as $key => $val)
|
foreach((array)$content as $key => $val)
|
||||||
{
|
{
|
||||||
$readonlys[$key] = true;
|
$readonlys[$key] = true;
|
||||||
if (in_array($key,array('tel_home','tel_work','tel_cell')))
|
if (in_array($key,array('tel_home','tel_work','tel_cell')))
|
||||||
@ -220,7 +226,16 @@ class uicontacts extends bocontacts
|
|||||||
$sel_options['tz'] = $tz;
|
$sel_options['tz'] = $tz;
|
||||||
$content['tz'] = $content['tz'] ? $content['tz'] : 0;
|
$content['tz'] = $content['tz'] ? $content['tz'] : 0;
|
||||||
|
|
||||||
$this->tmpl->read('addressbook.edit');
|
for($i = -23; $i<=23; $i++) $tz[$i] = ($i > 0 ? '+' : '').$i;
|
||||||
|
$sel_options['tz'] = $tz;
|
||||||
|
$content['tz'] = $content['tz'] ? $content['tz'] : 0;
|
||||||
|
foreach($this->content_types as $type => $data) $sel_options['tid'][$type] = $data['name'];
|
||||||
|
foreach(explode(',',$content['published_groups']) as $id)
|
||||||
|
{
|
||||||
|
$sel_options['published_groups'][$id] = $GLOBALS['egw']->accounts->id2name($id);
|
||||||
|
}
|
||||||
|
$content['typegfx'] = $GLOBALS['egw']->html->image('addressbook',$this->content_types[$content['tid']]['options']['icon'],'',' width="16px" height="16px"');
|
||||||
|
$this->tmpl->read($this->content_types[$content['tid']]['options']['template']);
|
||||||
foreach(array('email','email_home','url') as $name)
|
foreach(array('email','email_home','url') as $name)
|
||||||
{
|
{
|
||||||
if ($content[$name] )
|
if ($content[$name] )
|
||||||
@ -354,7 +369,8 @@ class uicontacts extends bocontacts
|
|||||||
|
|
||||||
for($i = -23; $i<=23; $i++) $tz[$i] = ($i > 0 ? '+' : '').$i;
|
for($i = -23; $i<=23; $i++) $tz[$i] = ($i > 0 ? '+' : '').$i;
|
||||||
$sel_options['tz'] = $tz + array('' => lang('doesn\'t matter'));
|
$sel_options['tz'] = $tz + array('' => lang('doesn\'t matter'));
|
||||||
|
$sel_options['tid'][] = lang('all');
|
||||||
|
//foreach($this->content_types as $type => $data) $sel_options['tid'][$type] = $data['name'];
|
||||||
$this->tmpl->read('addressbook.search');
|
$this->tmpl->read('addressbook.search');
|
||||||
return $this->tmpl->exec('addressbook.uicontacts.search',$content,$sel_options,$readonlys,$preserv);
|
return $this->tmpl->exec('addressbook.uicontacts.search',$content,$sel_options,$readonlys,$preserv);
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
@ -51,6 +51,7 @@ contact settings admin de Kontakt Einstellungen
|
|||||||
copied by %1, from record #%2. addressbook de Kopiert von %1, vom Datensatz Nr. %2.
|
copied by %1, from record #%2. addressbook de Kopiert von %1, vom Datensatz Nr. %2.
|
||||||
country common de Land
|
country common de Land
|
||||||
create new links addressbook de Neue Verknüpfung erstellen
|
create new links addressbook de Neue Verknüpfung erstellen
|
||||||
|
credit addressbook de Darlehen
|
||||||
csv-fieldname addressbook de CSV-Feldname
|
csv-fieldname addressbook de CSV-Feldname
|
||||||
csv-filename addressbook de CSV-Dateiname
|
csv-filename addressbook de CSV-Dateiname
|
||||||
custom addressbook de Benutzerdefiniert
|
custom addressbook de Benutzerdefiniert
|
||||||
@ -108,6 +109,7 @@ import from outlook addressbook de Aus Outlook importieren
|
|||||||
import multiple vcard addressbook de Import mehrere VCards
|
import multiple vcard addressbook de Import mehrere VCards
|
||||||
import next set addressbook de Nächsten Satz importieren
|
import next set addressbook de Nächsten Satz importieren
|
||||||
import_instructions addressbook de In Netscape, öffnen Sie das Adressbuch und wählen Sie <b>Exportieren</b> aus dem Datei Menü aus. Die Dateien werden im LDIF Formaz exportiert.<p> In Outlook wählen Sie den Ordner Kontakte aus, wählen Sie <b>Importieren und Exportieren...</p> aus dem <b>Datei</b> Menü aus und Exportieren Sie die Kontakte als eine CSV Datei.<p> In Palm Desktop 4.0 oder größer, öffnen Sie Ihr Adressbuch und wählen Sie <b>Export</b> aus dem Datei-Menü aus. Die Datei wird im VCard-Format exportiert.
|
import_instructions addressbook de In Netscape, öffnen Sie das Adressbuch und wählen Sie <b>Exportieren</b> aus dem Datei Menü aus. Die Dateien werden im LDIF Formaz exportiert.<p> In Outlook wählen Sie den Ordner Kontakte aus, wählen Sie <b>Importieren und Exportieren...</p> aus dem <b>Datei</b> Menü aus und Exportieren Sie die Kontakte als eine CSV Datei.<p> In Palm Desktop 4.0 oder größer, öffnen Sie Ihr Adressbuch und wählen Sie <b>Export</b> aus dem Datei-Menü aus. Die Datei wird im VCard-Format exportiert.
|
||||||
|
income addressbook de Einkommen
|
||||||
international addressbook de International
|
international addressbook de International
|
||||||
isdn phone addressbook de ISDN-Tel.
|
isdn phone addressbook de ISDN-Tel.
|
||||||
label addressbook de Adressetikett
|
label addressbook de Adressetikett
|
||||||
|
@ -51,6 +51,7 @@ contact settings admin en Contact Settings
|
|||||||
copied by %1, from record #%2. addressbook en Copied by %1, from record #%2.
|
copied by %1, from record #%2. addressbook en Copied by %1, from record #%2.
|
||||||
country common en Country
|
country common en Country
|
||||||
create new links addressbook en Create new links
|
create new links addressbook en Create new links
|
||||||
|
credit addressbook en Credit
|
||||||
csv-fieldname addressbook en CSV-Fieldname
|
csv-fieldname addressbook en CSV-Fieldname
|
||||||
csv-filename addressbook en CSV-Filename
|
csv-filename addressbook en CSV-Filename
|
||||||
custom addressbook en Custom
|
custom addressbook en Custom
|
||||||
@ -108,6 +109,7 @@ import from outlook addressbook en Import from Outlook
|
|||||||
import multiple vcard addressbook en Import Multiple VCard
|
import multiple vcard addressbook en Import Multiple VCard
|
||||||
import next set addressbook en Import next set
|
import next set addressbook en Import next set
|
||||||
import_instructions addressbook en In Netscape, open the Addressbook and select <b>Export</b> from the <b>File</b> menu. The file exported will be in LDIF format.<p>Or, in Outlook, select your Contacts folder, select <b>Import and Export...</b> from the <b>File</b> menu and export your contacts into a comma separated text (CSV) file. <p>Or, in Palm Desktop 4.0 or greater, visit your addressbook and select <b>Export</b> from the <b>File</b> menu. The file exported will be in VCard format.
|
import_instructions addressbook en In Netscape, open the Addressbook and select <b>Export</b> from the <b>File</b> menu. The file exported will be in LDIF format.<p>Or, in Outlook, select your Contacts folder, select <b>Import and Export...</b> from the <b>File</b> menu and export your contacts into a comma separated text (CSV) file. <p>Or, in Palm Desktop 4.0 or greater, visit your addressbook and select <b>Export</b> from the <b>File</b> menu. The file exported will be in VCard format.
|
||||||
|
income addressbook en Income
|
||||||
international addressbook en International
|
international addressbook en International
|
||||||
isdn phone addressbook en ISDN Phone
|
isdn phone addressbook en ISDN Phone
|
||||||
label addressbook en Label
|
label addressbook en Label
|
||||||
|
@ -36,3 +36,6 @@
|
|||||||
.emailGroup table{
|
.emailGroup table{
|
||||||
height: 87px;
|
height: 87px;
|
||||||
}
|
}
|
||||||
|
.space{
|
||||||
|
width: 80px;
|
||||||
|
}
|
||||||
|
@ -37,7 +37,23 @@ function check_all(which)
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<div align="center">
|
<div align="center">
|
||||||
{lang_showing}
|
|
||||||
|
<!-- Type-selection -->
|
||||||
|
<table width="95%" border="0">
|
||||||
|
<tr>
|
||||||
|
<td width="33%"> </td>
|
||||||
|
<td width="33%">{lang_showing}</td>
|
||||||
|
<td width="33%">
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<form action="{self_url}" method="post"><td>{addressbuch_type}:</td><td> {contact_type_list}</td></form>
|
||||||
|
<td>{lang_add}: </td>{add_buttons}
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
<br>{searchreturn}
|
<br>{searchreturn}
|
||||||
{search_filter}
|
{search_filter}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user