Add initial framework for alternate contact types (not enabled), cleanup formatting

This commit is contained in:
Miles Lott 2004-02-22 15:18:36 +00:00
parent ac7a91b8fa
commit bbbd26dc4b
7 changed files with 144 additions and 98 deletions

View File

@ -136,6 +136,10 @@
if($tsvfile['type'] == 'application/zip') if($tsvfile['type'] == 'application/zip')
{ {
if(!@function_exists('zip_open'))
{
return False;
}
$fp = $this->unzip($tsvfile['tmp_name'],$contacts->type); $fp = $this->unzip($tsvfile['tmp_name'],$contacts->type);
} }
else else

View File

@ -82,15 +82,15 @@
$this->use_session = True; $this->use_session = True;
} }
/* _debug_array($_POST); */ /* _debug_array($_POST); */
/* Might change this to '' at the end---> */
$_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_');
$_sort = get_var('sort',array('POST','GET')); $_sort = get_var('sort',array('POST','GET'));
$_order = get_var('order',array('POST','GET')); $_order = get_var('order',array('POST','GET'));
$_filter = get_var('filter',array('POST','GET')); $_filter = get_var('filter',array('POST','GET'));
$_cat_id = get_var('cat_id',array('POST','GET')); // $_cat_id = get_var('cat_id',array('POST','GET'));
$_fcat_id = get_var('fcat_id',array('POST','GET')); $_fcat_id = get_var('fcat_id',array('POST','GET'));
$_typeid = get_var('typeid',array('POST','GET'),'_UNSET_');
if(!empty($_start) || ($_start == '0') || ($_start == 0)) if(!empty($_start) || ($_start == '0') || ($_start == 0))
{ {
@ -111,6 +111,15 @@
$this->cquery = $_cquery; $this->cquery = $_cquery;
} }
if($_typeid != '_UNSET_')
{
$this->typeid = $_typeid;
}
if(!@in_array($this->typeid,array('n','c')))
{
$this->typeid = 'n';
}
if(isset($_POST['fcat_id']) || isset($_POST['fcat_id'])) if(isset($_POST['fcat_id']) || isset($_POST['fcat_id']))
{ {
$this->cat_id = $_fcat_id; $this->cat_id = $_fcat_id;
@ -120,6 +129,17 @@
$this->cat_id = -1; $this->cat_id = -1;
} }
/*
if(isset($_POST['typeid']) || isset($_POST['typeid']))
{
$this->typeid = $typeid;
}
else
{
$this->typeid = 'n';
}
*/
if(isset($_sort) && !empty($_sort)) if(isset($_sort) && !empty($_sort))
{ {
if($this->debug) { echo '<br>overriding $sort: "' . $this->sort . '" now "' . $_sort . '"'; } if($this->debug) { echo '<br>overriding $sort: "' . $this->sort . '" now "' . $_sort . '"'; }
@ -139,11 +159,6 @@
} }
if($this->debug) { $this->_debug_sqsof(); } if($this->debug) { $this->_debug_sqsof(); }
$this->xmlrpc_methods[] = array(
'name' => 'read_entries',
'description' => 'Get list of addressbook items'
);
} }
function _debug_sqsof() function _debug_sqsof()
@ -156,69 +171,13 @@
'sort' => $this->sort, 'sort' => $this->sort,
'order' => $this->order, 'order' => $this->order,
'filter' => $this->filter, 'filter' => $this->filter,
'cat_id' => $this->cat_id 'cat_id' => $this->cat_id,
'typeid' => $this->typeid
); );
echo '<br>BO:'; echo '<br>BO:';
_debug_array($data); _debug_array($data);
} }
function list_methods($_type='xmlrpc')
{
/*
This handles introspection or discovery by the logged in client,
in which case the input might be an array. The server always calls
this function to fill the server dispatch map using a string.
*/
if(is_array($_type))
{
$_type = $_type['type'] ? $_type['type'] : $_type[0];
}
switch($_type)
{
case 'xmlrpc':
$xml_functions = array(
'read' => array(
'function' => 'read_entry',
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
'docstring' => lang('Read a single entry by passing the id and fieldlist.')
),
'add' => array(
'function' => 'add_entry',
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
'docstring' => lang('Add a single entry by passing the fields.')
),
'save' => array(
'function' => 'update_entry',
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
'docstring' => lang('Update a single entry by passing the fields.')
),
'delete' => array(
'function' => 'delete_entry',
'signature' => array(array(xmlrpcInt,xmlrpcInt)),
'docstring' => lang('Delete a single entry by passing the id.')
),
'read_list' => array(
'function' => 'read_entries',
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
'docstring' => lang('Read a list of entries.')
),
'list_methods' => array(
'function' => 'list_methods',
'signature' => array(array(xmlrpcStruct,xmlrpcString)),
'docstring' => lang('Read this list of methods.')
)
);
return $xml_functions;
break;
case 'soap':
return $this->soap_functions;
break;
default:
return array();
break;
}
}
function save_sessiondata($data) function save_sessiondata($data)
{ {
if($this->use_session) if($this->use_session)
@ -241,6 +200,7 @@
$this->order = $data['order']; $this->order = $data['order'];
$this->filter = $data['filter']; $this->filter = $data['filter'];
$this->cat_id = $data['cat_id']; $this->cat_id = $data['cat_id'];
$this->typeid = $data['typeid'];
if($this->debug) { echo '<br>read_sessiondata();'; $this->_debug_sqsof(); } if($this->debug) { echo '<br>read_sessiondata();'; $this->_debug_sqsof(); }
} }
@ -465,5 +425,63 @@
$GLOBALS['phpgw']->preferences->save_repository(True); $GLOBALS['phpgw']->preferences->save_repository(True);
} }
function list_methods($_type='xmlrpc')
{
/*
This handles introspection or discovery by the logged in client,
in which case the input might be an array. The server always calls
this function to fill the server dispatch map using a string.
*/
if(is_array($_type))
{
$_type = $_type['type'] ? $_type['type'] : $_type[0];
}
switch($_type)
{
case 'xmlrpc':
$xml_functions = array(
'read' => array(
'function' => 'read_entry',
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
'docstring' => lang('Read a single entry by passing the id and fieldlist.')
),
'add' => array(
'function' => 'add_entry',
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
'docstring' => lang('Add a single entry by passing the fields.')
),
'save' => array(
'function' => 'update_entry',
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
'docstring' => lang('Update a single entry by passing the fields.')
),
'delete' => array(
'function' => 'delete_entry',
'signature' => array(array(xmlrpcInt,xmlrpcInt)),
'docstring' => lang('Delete a single entry by passing the id.')
),
'read_list' => array(
'function' => 'read_entries',
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
'docstring' => lang('Read a list of entries.')
),
'list_methods' => array(
'function' => 'list_methods',
'signature' => array(array(xmlrpcStruct,xmlrpcString)),
'docstring' => lang('Read this list of methods.')
)
);
return $xml_functions;
break;
case 'soap':
return $this->soap_functions;
break;
default:
return array();
break;
}
}
} }
?> ?>

View File

@ -3,12 +3,12 @@
* eGroupWare API - Palm Database Access * * eGroupWare API - Palm Database Access *
* This file written by Miles Lott <milos@groupwhere.org> * * This file written by Miles Lott <milos@groupwhere.org> *
* Access to palm OS database structures (?) * * Access to palm OS database structures (?) *
* -------------------------------------------------------------------------* * ------------------------------------------------------------------------ *
* Portions of code from ToPTIP * * Portions of code from ToPTIP *
* Copyright (C) 2000-2001 Pierre Dittgen * * Copyright (C) 2000-2001 Pierre Dittgen *
* This file is a translation of the txt2pdbdoc tool * * This file is a translation of the txt2pdbdoc tool *
* written in C Paul J. Lucas (plj@best.com) * * written in C Paul J. Lucas (plj@best.com) *
* -------------------------------------------------------------------------* * ------------------------------------------------------------------------ *
* This library may be part of the eGroupWare API * * This library may be part of the eGroupWare API *
* ------------------------------------------------------------------------ * * ------------------------------------------------------------------------ *
* This library is free software; you can redistribute it and/or modify it * * This library is free software; you can redistribute it and/or modify it *
@ -45,7 +45,7 @@
*/ */
function int2($value) function int2($value)
{ {
return sprintf("%c%c", $value / 256, $value % 256); return sprintf("%c%c", $value / 256, $value % 256);
} }
/** /**
@ -53,7 +53,7 @@
*/ */
function int4($value) function int4($value)
{ {
for ($i=0; $i<4; $i++) for($i=0; $i<4; $i++)
{ {
$b[$i] = $value % 256; $b[$i] = $value % 256;
$value = (int)(($value - $b[$i]) / 256); $value = (int)(($value - $b[$i]) / 256);
@ -69,14 +69,14 @@
{ {
// ============ File header ========================================= // ============ File header =========================================
// Title of the document, it's limited to 31 characters // Title of the document, it's limited to 31 characters
if (strlen($title) > 31) if(strlen($title) > 31)
{ {
$title = substr($title, 0, 31); $title = substr($title, 0, 31);
} }
fwrite($fd, $title); fwrite($fd, $title);
// Completion with null '\0' characters // Completion with null '\0' characters
for ($i=0; $i<32-strlen($title); $i++) for($i=0; $i<32-strlen($title); $i++)
{ {
fwrite($fd, sprintf("%c", 0), 1); fwrite($fd, sprintf("%c", 0), 1);
} }
@ -107,7 +107,7 @@
$full_tr = (int)($content_length / $this->record_size); $full_tr = (int)($content_length / $this->record_size);
$notfull_tr = $content_length % $this->record_size; $notfull_tr = $content_length % $this->record_size;
$num_records = $full_tr; $num_records = $full_tr;
if ($notfull_tr != 0) if($notfull_tr != 0)
{ {
$num_records++; $num_records++;
} }
@ -124,7 +124,7 @@
fwrite($fd, $this->int4($index++)); fwrite($fd, $this->int4($index++));
$val = 110 + ($num_offsets - 2) * 8; $val = 110 + ($num_offsets - 2) * 8;
while (--$num_offsets != 0) while(--$num_offsets != 0)
{ {
fwrite($fd, $this->int4($val)); fwrite($fd, $this->int4($val));
$val += 4096; $val += 4096;
@ -171,7 +171,7 @@
$title = fread(31,$fd); $title = fread(31,$fd);
// Completion with null '\0' characters // Completion with null '\0' characters
for ($i=0; $i<32-strlen($title); $i++) for($i=0; $i<32-strlen($title); $i++)
{ {
fwrite($fd, sprintf("%c", 0), 1); fwrite($fd, sprintf("%c", 0), 1);
} }
@ -202,7 +202,7 @@
$full_tr = (int)($content_length / $this->record_size); $full_tr = (int)($content_length / $this->record_size);
$notfull_tr = $content_length % $this->record_size; $notfull_tr = $content_length % $this->record_size;
$num_records = $full_tr; $num_records = $full_tr;
if ($notfull_tr != 0) if($notfull_tr != 0)
{ {
$num_records++; $num_records++;
} }
@ -219,7 +219,7 @@
fwrite($fd, $this->int4($index++)); fwrite($fd, $this->int4($index++));
$val = 110 + ($num_offsets - 2) * 8; $val = 110 + ($num_offsets - 2) * 8;
while (--$num_offsets != 0) while(--$num_offsets != 0)
{ {
fwrite($fd, $this->int4($val)); fwrite($fd, $this->int4($val));
$val += 4096; $val += 4096;

View File

@ -157,7 +157,7 @@
$i=0; $myfilearray = ''; $i=0; $myfilearray = '';
while($file = readdir($dir_handle)) while($file = readdir($dir_handle))
{ {
if((substr($file, 0, 1) != '.') && is_file(PHPGW_APP_INC . SEP . 'import' . SEP . $file) ) if((substr($file, 0, 1) != '.') && is_file(PHPGW_APP_INC . SEP . 'import' . SEP . $file))
{ {
$myfilearray[$i] = $file; $myfilearray[$i] = $file;
$i++; $i++;
@ -191,14 +191,12 @@
$this->template->set_var('query',$this->query); $this->template->set_var('query',$this->query);
$this->template->set_var('cat_id',$this->cat_id); $this->template->set_var('cat_id',$this->cat_id);
$this->template->set_var('lang_import_instructions',lang('import_instructions')); $this->template->set_var('lang_import_instructions',lang('import_instructions'));
$this->template->set_var('zip_note','');
if(extension_loaded('zip')) if(extension_loaded('zip'))
{ {
$this->template->set_var('zip_note',lang('zip_note')); $this->template->set_var('zip_note',lang('zip_note'));
} }
else
{
$this->template->set_var('zip_note','');
}
$this->template->set_var('lang_exported_file',lang('enter the path to the exported file here')); $this->template->set_var('lang_exported_file',lang('enter the path to the exported file here'));
$this->template->set_var('lang_conv_type',lang('select the type of conversion')); $this->template->set_var('lang_conv_type',lang('select the type of conversion'));
$this->template->set_var('lang_mark_priv',lang('Mark records as private')); $this->template->set_var('lang_mark_priv',lang('Mark records as private'));
@ -232,7 +230,7 @@
$buffer = $this->bo->export($conv_type,$cat_id); $buffer = $this->bo->export($conv_type,$cat_id);
if(($download == 'on') || ($conv_type == 'Palm_PDB') ) if(($download == 'on') || ($conv_type == 'Palm_PDB'))
{ {
// filename, default application/octet-stream, length of file, default nocache True // filename, default application/octet-stream, length of file, default nocache True
$this->browser->content_header($tsvfilename,'application/x-octet-stream',strlen($buffer)); $this->browser->content_header($tsvfilename,'application/x-octet-stream',strlen($buffer));
@ -262,7 +260,7 @@
$i=0; $myfilearray = ''; $i=0; $myfilearray = '';
while($file = readdir($dir_handle)) while($file = readdir($dir_handle))
{ {
if((substr($file, 0, 1) != '.') && is_file(PHPGW_APP_INC . SEP . 'export' . SEP . $file) ) if((substr($file, 0, 1) != '.') && is_file(PHPGW_APP_INC . SEP . 'export' . SEP . $file))
{ {
$myfilearray[$i] = $file; $myfilearray[$i] = $file;
$i++; $i++;

View File

@ -48,6 +48,15 @@
'address3' => 'address3' 'address3' => 'address3'
); );
var $contact_types = array(
'n' => 'People',
'c' => 'Companies'
);
var $contact_type = array(
'n' => 'Person',
'c' => 'Company'
);
function uiaddressbook() function uiaddressbook()
{ {
$GLOBALS['phpgw']->country = CreateObject('phpgwapi.country'); $GLOBALS['phpgw']->country = CreateObject('phpgwapi.country');
@ -65,14 +74,15 @@
function _set_sessiondata() function _set_sessiondata()
{ {
$this->start = $this->bo->start; $this->start = $this->bo->start;
$this->limit = $this->bo->limit; $this->limit = $this->bo->limit;
$this->query = $this->bo->query; $this->query = $this->bo->query;
$this->cquery = $this->bo->cquery; $this->cquery = $this->bo->cquery;
$this->sort = $this->bo->sort; $this->sort = $this->bo->sort;
$this->order = $this->bo->order; $this->order = $this->bo->order;
$this->filter = $this->bo->filter; $this->filter = $this->bo->filter;
$this->cat_id = $this->bo->cat_id; $this->cat_id = $this->bo->cat_id;
$this->typeid = $this->bo->typeid;
if($this->debug) { $this->_debug_sqsof(); } if($this->debug) { $this->_debug_sqsof(); }
} }
@ -86,7 +96,8 @@
'sort' => $this->sort, 'sort' => $this->sort,
'order' => $this->order, 'order' => $this->order,
'filter' => $this->filter, 'filter' => $this->filter,
'cat_id' => $this->cat_id 'cat_id' => $this->cat_id,
'typeid' => $this->typeid
); );
echo '<br>UI:'; echo '<br>UI:';
_debug_array($data); _debug_array($data);
@ -103,7 +114,8 @@
'sort' => $this->sort, 'sort' => $this->sort,
'order' => $this->order, 'order' => $this->order,
'filter' => $this->filter, 'filter' => $this->filter,
'cat_id' => $this->cat_id 'cat_id' => $this->cat_id,
'typeid' => $this->typeid
); );
$this->bo->save_sessiondata($data); $this->bo->save_sessiondata($data);
} }
@ -120,7 +132,7 @@
{ {
$select .= '<option value="">' . lang('Please Select') . '</option>'."\n"; $select .= '<option value="">' . lang('Please Select') . '</option>'."\n";
} }
// while(list($key,$val) = each($list)) settype($list,'array');
foreach($list as $key => $val) foreach($list as $key => $val)
{ {
$select .= '<option value="' . $key . '"'; $select .= '<option value="' . $key . '"';
@ -132,7 +144,8 @@
} }
$select .= '</select>'."\n"; $select .= '</select>'."\n";
$select .= '<noscript><input type="submit" name="' . $name . '_select" value="True"></noscript>' . "\n"; $select .= '<noscript><input type="submit" name="' . $name . '_select" value="'
. lang('Submit') . '"></noscript>' . "\n";
return $select; return $select;
} }
@ -408,7 +421,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=n'; $qfilter = 'tid=' . (string)$this->typeid;
switch($this->filter) switch($this->filter)
{ {
case 'blank': case 'blank':
@ -483,6 +496,15 @@
$GLOBALS['phpgw']->template->set_var('searchreturn',$noprefs . ' ' . $searchreturn); $GLOBALS['phpgw']->template->set_var('searchreturn',$noprefs . ' ' . $searchreturn);
$GLOBALS['phpgw']->template->set_var('lang_showing',$lang_showing); $GLOBALS['phpgw']->template->set_var('lang_showing',$lang_showing);
$GLOBALS['phpgw']->template->set_var('search_filter',$search_filter); $GLOBALS['phpgw']->template->set_var('search_filter',$search_filter);
/*
$GLOBALS['phpgw']->template->set_var('lang_show',lang('Show') . ':');
$GLOBALS['phpgw']->template->set_var('contact_type_list',$this->formatted_list('typeid',$this->contact_types,$this->typeid,False,True));
$GLOBALS['phpgw']->template->set_var('self_url',$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.index'));
*/
$GLOBALS['phpgw']->template->set_var('lang_show','');
$GLOBALS['phpgw']->template->set_var('contact_type_list','');
$GLOBALS['phpgw']->template->set_var('self_url','');
$GLOBALS['phpgw']->template->set_var('cats',lang('Category')); $GLOBALS['phpgw']->template->set_var('cats',lang('Category'));
$GLOBALS['phpgw']->template->set_var('cats_url',$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.index')); $GLOBALS['phpgw']->template->set_var('cats_url',$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.index'));
/* $GLOBALS['phpgw']->template->set_var('cats_link',$this->cat_option($this->cat_id)); */ /* $GLOBALS['phpgw']->template->set_var('cats_link',$this->cat_option($this->cat_id)); */
@ -1604,7 +1626,7 @@
if(strlen($bday) > 2) if(strlen($bday) > 2)
{ {
list( $month, $day, $year ) = split( '/', $bday ); list($month, $day, $year) = split('/', $bday);
$temp_month[$month] = ' selected'; $temp_month[$month] = ' selected';
$bday_month = '<select name="entry[bday_month]">' $bday_month = '<select name="entry[bday_month]">'
. '<option value=""' . $temp_month[0] . '>' . '</option>' . '<option value=""' . $temp_month[0] . '>' . '</option>'

View File

@ -101,7 +101,7 @@
$title = $fields[$i]['title']; $title = $fields[$i]['title'];
$GLOBALS['phpgw']->template->set_var('cfield',$title); $GLOBALS['phpgw']->template->set_var('cfield',$title);
$params = array( $params = array(
'menuaction' => 'addressbook.uifields.edit', 'menuaction' => 'addressbook.uifields.edit',
'field' => urlencode($field), 'field' => urlencode($field),

View File

@ -22,6 +22,10 @@ function check_all(which)
{lang_showing} {lang_showing}
<br>{searchreturn} <br>{searchreturn}
{search_filter} {search_filter}
<!-- <table width="95%" border="1" cellspacing="1" cellpadding="3">
<form name="addr_type" action="{self_url}" method="POST">
<tr bgcolor="{th_bg}"><td>{lang_show}&nbsp;&nbsp;{contact_type_list}</td></tr></form>
</table>-->
<table width="95%" border="1" cellspacing="1" cellpadding="3"> <table width="95%" border="1" cellspacing="1" cellpadding="3">
<tr>{alphalinks} <tr>{alphalinks}
</tr> </tr>