egroupware_official/addressbook/export.php

166 lines
5.2 KiB
PHP
Raw Normal View History

<?php
/**************************************************************************\
* phpGroupWare - addressbook *
* http://www.phpgroupware.org *
* Written by Joseph Engo <jengo@phpgroupware.org> *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
2001-05-21 09:31:00 +02:00
if ($download == 'on')
{
$phpgw_info['flags'] = array(
'noheader' => True,
'nonavbar' => True
2001-03-18 07:31:24 +01:00
);
2001-05-21 09:31:00 +02:00
}
else
{
$phpgw_info['flags'] = array(
'noheader' => False,
'nonavbar' => False
2001-03-18 07:31:24 +01:00
);
}
2001-05-31 06:46:26 +02:00
$phpgw_info['flags']['currentapp'] = 'addressbook';
$phpgw_info['flags']['enable_contacts_class'] = True;
$phpgw_info['flags']['enable_browser_class'] = True;
2001-05-21 09:31:00 +02:00
include('../header.inc.php');
if (!$convert)
{
$t = new Template(PHPGW_APP_TPL);
2001-05-21 09:31:00 +02:00
$t->set_file(array('export' => 'export.tpl'));
2001-06-27 07:11:38 +02:00
$dir_handle=opendir(PHPGW_APP_ROOT . SEP . 'export');
2001-05-21 09:31:00 +02:00
$i=0; $myfilearray='';
while ($file = readdir($dir_handle))
{
#echo "<!-- ".is_file($phpgw_info["server"]["app_root"].$sep."conv".$sep.$file)." -->";
2001-06-27 07:11:38 +02:00
if ((substr($file, 0, 1) != '.') && is_file(PHPGW_APP_ROOT . SEP . 'export' . SEP . $file) )
{
$myfilearray[$i] = $file;
$i++;
}
}
closedir($dir_handle);
sort($myfilearray);
for ($i=0;$i<count($myfilearray);$i++)
{
$fname = ereg_replace('_',' ',$myfilearray[$i]);
2001-05-21 09:31:00 +02:00
$conv .= ' <option value="'.$myfilearray[$i].'">'.$fname.'</option>'."\n";
}
2001-05-21 09:31:00 +02:00
$t->set_var('lang_cancel',lang('Cancel'));
$t->set_var('lang_cat',lang('Select Category'));
$t->set_var('cat_link',cat_option($cat_id,False,False));
$t->set_var('cancel_url',$phpgw->link('/addressbook/index.php'));
$t->set_var('navbar_bg',$phpgw_info['theme']['navbar_bg']);
$t->set_var('navbar_text',$phpgw_info['theme']['navbar_text']);
$t->set_var('export_text',lang('Export from Addressbook'));
$t->set_var('action_url',$phpgw->link('/addressbook/export.php'));
$t->set_var('filename',lang('Export file name'));
$t->set_var('conv',$conv);
$t->set_var('debug',lang(''));
$t->set_var('download',lang('Submit'));
$t->set_var('start',$start);
$t->set_var('sort',$sort);
$t->set_var('order',$order);
$t->set_var('filter',$filter);
$t->set_var('query',$query);
$t->set_var('cat_id',$cat_id);
$t->pparse('out','export');
$phpgw->common->phpgw_footer();
}
else
{
if ($conv_type == 'none')
{
$phpgw_info['flags']['noheader'] = False;
$phpgw_info['flags']['noheader'] = True;
$phpgw->common->phpgw_header();
echo parse_navbar();
echo lang('<b>No conversion type &lt;none&gt; could be located.</b> Please choose a conversion type from the list');
echo '&nbsp<a href="'.$phpgw->link('/addressbook/export.php',
"sort=$sort&order=$order&filter=$filter&start=$start&query=$query&cat_id=$cat_id")
. '">'.lang('OK').'</a>';
$phpgw->common->phpgw_footer();
$phpgw->common->phpgw_exit();
}
else
{
2001-06-27 07:11:38 +02:00
include (PHPGW_APP_ROOT . SEP . 'export' . SEP . $conv_type);
$buffer=array();
$this = new export_conv;
// Read in user custom fields, if any
$customfields = array();
while (list($col,$descr) = @each($phpgw_info['user']['preferences']['addressbook']))
{
if ( substr($col,0,6) == 'extra_' )
{
$field = ereg_replace('extra_','',$col);
$field = ereg_replace(' ','_',$field);
$customfields[$field] = ucfirst($field);
}
}
$extrafields = array(
'ophone' => 'ophone',
'address2' => 'address2',
'address3' => 'address3'
);
if ($this->type != 'vcard')
{
$this->qfields = $this->stock_contact_fields;# + $extrafields;# + $customfields;
}
if (!empty($cat_id))
{
$buffer = $this->export_start_file($buffer,$cat_id);
}
else
{
$buffer = $this->export_start_file($buffer);
}
for ($i=0;$i<count($this->ids);$i++)
{
$buffer = $this->export_start_record($buffer);
while( list($name,$value) = each($this->currentrecord) )
{
$buffer = $this->export_new_attrib($buffer,$name,$value);
}
$buffer = $this->export_end_record($buffer);
}
// Here, buffer becomes a string suitable for printing
$buffer = $this->export_end_file($buffer);
$tsvfilename = $phpgw_info['server']['temp_dir'].$sep.$tsvfilename;
}
2001-05-21 09:31:00 +02:00
if ( ($download == 'on') || ($o->type == 'pdb') )
{
2001-04-14 04:42:50 +02:00
// filename, default application/octet-stream, length of file, default nocache True
$phpgw->browser->content_header($tsvfilename,'application/octet-stream',strlen($buffer));
2001-03-18 07:31:24 +01:00
echo $buffer;
}
else
{
echo "<pre>\n";
2001-03-18 07:31:24 +01:00
echo $buffer;
echo "\n</pre>\n";
2001-05-21 09:31:00 +02:00
echo '<a href="'.$phpgw->link('/addressbook/index.php',
2001-03-29 17:39:10 +02:00
"sort=$sort&order=$order&filter=$filter&start=$start&query=$query&cat_id=$cat_id")
2001-05-21 09:31:00 +02:00
. '">'.lang('OK').'</a>';
$phpgw->common->phpgw_footer();
}
}
?>