phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] addressbook index.php,1.121 csv_import.php,1.18


From: skwashd
Subject: [Phpgroupware-cvs] addressbook index.php,1.121 csv_import.php,1.18
Date: Thu, 24 Feb 2005 13:20:29 -0000

Update of addressbook

Modified Files:
     Branch: MAIN
            index.php lines: +16 -8
            csv_import.php lines: +187 -164

Log Message:
merge from 16

====================================================
Index: addressbook/index.php
diff -u addressbook/index.php:1.120 addressbook/index.php:1.121
--- addressbook/index.php:1.120 Sat Sep 28 15:20:18 2002
+++ addressbook/index.php       Fri Dec 31 04:55:22 2004
@@ -1,10 +1,10 @@
 <?php
        
/**************************************************************************\
-       * phpGroupWare - Addressbook                                            
   *
+       * phpGroupWare - Messenger                                              
   *
        * http://www.phpgroupware.org                                           
   *
-       * --------------------------------------------                          
   *
        * This application written by Joseph Engo <address@hidden>         *
-       *  and Miles Lott<address@hidden>                                *
+       * --------------------------------------------                          
   *
+       * Funding for this program was provided by http://www.checkwithmom.com  
   *
        * --------------------------------------------                          
   *
        *  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   *
@@ -13,14 +13,22 @@
        
\**************************************************************************/

        /* $Id$ */
-
        $GLOBALS['phpgw_info'] = array();

        $GLOBALS['phpgw_info']['flags'] = array(
-               'currentapp' => 'addressbook'
+               'currentapp' => 'addressbook',
+               'noheader'   => True,
+               'nonavbar'   => True
        );
        include('../header.inc.php');
+
+       $parms = Array(
+                      'menuaction'=> 'addressbook.uiaddressbook.index',
+                      'section' => 'Persons',
+                      'cat_id' => get_var('cat_id')
+                      );
+
+       Header('Location: '.$GLOBALS['phpgw']->link('/index.php',$parms));

-       $obj = CreateObject('addressbook.uiaddressbook');
-       $obj->index();
+       $GLOBALS['phpgw']->common->phpgw_footer();
 ?>

====================================================
Index: addressbook/csv_import.php
diff -u addressbook/csv_import.php:1.17 addressbook/csv_import.php:1.18
--- addressbook/csv_import.php:1.17     Sun Apr  6 12:52:24 2003
+++ addressbook/csv_import.php  Fri Dec 31 04:55:22 2004
@@ -12,27 +12,32 @@

   /* $Id$ */

-       $GLOBALS['phpgw_info'] = array();
-       $GLOBALS['phpgw_info']['flags']['currentapp'] = 'addressbook';
-       $GLOBALS['phpgw_info']['flags']['enable_contacts_class'] = True;
+       $GLOBALS['phpgw_info']['flags'] = array(
+               'currentapp' => 'addressbook',
+               'noheader'   => True,
+               'enable_contacts_class' => True,
+       );
        include('../header.inc.php');

+       $GLOBALS['phpgw_info']['flags']['app_header'] = lang('Import CSV-File 
into Addressbook');
+       $GLOBALS['phpgw']->common->phpgw_header();
+
        $GLOBALS['phpgw']->contacts = createobject('phpgwapi.contacts');

-       $GLOBALS['phpgw']->template->set_file(array('import_t' => 
'csv_import.tpl'));
-       $GLOBALS['phpgw']->template->set_block('import_t','filename');
-       $GLOBALS['phpgw']->template->set_block('import_t','fheader');
-       $GLOBALS['phpgw']->template->set_block('import_t','fields');
-       $GLOBALS['phpgw']->template->set_block('import_t','ffooter');
-       $GLOBALS['phpgw']->template->set_block('import_t','imported');
-       $GLOBALS['phpgw']->template->set_block('import_t','import');
+       $GLOBALS['phpgw']->template->set_file(array('import' => 
'csv_import.tpl'));
+       
$GLOBALS['phpgw']->template->set_block('import','filename','filenamehandle');
+       
$GLOBALS['phpgw']->template->set_block('import','fheader','fheaderhandle');
+       
$GLOBALS['phpgw']->template->set_block('import','fields','fieldshandle');
+       
$GLOBALS['phpgw']->template->set_block('import','ffooter','ffooterhandle');
+       
$GLOBALS['phpgw']->template->set_block('import','imported','importedhandle');
+
+       $csvfile  = isset($_POST['csvfile']) ? $_POST['csvfile'] : 
$_FILES['csvfile']['tmp_name'];

-       if($action == 'download' && (!$fieldsep || !$csvfile || 
!($fp=fopen($csvfile,'rb'))))
+       if($_POST['action'] == 'download' && (!$_POST['fieldsep'] || !$csvfile 
|| !($fp=fopen($csvfile,'rb'))))
        {
-               $action = '';
+               $_POST['action'] = '';
        }
        
$GLOBALS['phpgw']->template->set_var('action_url',$GLOBALS['phpgw']->link('/addressbook/csv_import.php'));
-       $GLOBALS['phpgw']->template->set_var('lang_addr_action',lang('Import 
CSV-File into Addressbook'));

        $PSep = '||'; // Pattern-Separator, separats the 
pattern-replacement-pairs in trans
        $ASep = '|>'; // Assignment-Separator, separats pattern and replacesment
@@ -61,82 +66,22 @@
                return False;
        }

-       // find in Addressbook, at least n_family AND (n_given OR org_name) 
have to match
-       function addr_id($n_family,$n_given,$org_name)
-       {
-               $addrs = 
$GLOBALS['phpgw']->contacts->read(0,0,array('id'),'',"n_family=$n_family,n_given=$n_given,org_name=$org_name");
-               if(!count($addrs))
-               {
-                       $addrs = 
$GLOBALS['phpgw']->contacts->read(0,0,array('id'),'',"n_family=$n_family,n_given=$n_given");
-               }
-               if(!count($addrs))
-               {
-                       $addrs = 
$GLOBALS['phpgw']->contacts->read(0,0,array('id'),'',"n_family=$n_family,org_name=$org_name");
-               }
-
-               if(count($addrs))
-               {
-                       return $addrs[0]['id'];
-               }
-
-               return False;
-       }

        $cat2id = array();

-       function cat_id($cats)
-       {
-               if(!$cats)
-               {
-                       return '';
-               }
-
-               $cats = split('[,;]',$cats);

-               while(list($k,$cat) = each($cats))
-               {
-                       if(isset($cat2id[$cat]))
-                       {
-                               $ids[$cat] = $cat2id[$cat];     // cat is in 
cache
-                       }
-                       else
-                       {
-                               if(!is_object($GLOBALS['phpgw']->categories))
-                               {
-                                       $GLOBALS['phpgw']->categories = 
createobject('phpgwapi.categories');
-                               }
-                               if($id = 
$GLOBALS['phpgw']->categories->name2id(addslashes($cat)))
-                               {       // cat exists
-                                       $cat2id[$cat] = $ids[$cat] = $id;
-                               }
-                               else
-                               {       // create new cat
-                                       
$GLOBALS['phpgw']->categories->add(array('name' => $cat,'descr' => $cat));
-                                       $cat2id[$cat] = $ids[$cat] = 
$GLOBALS['phpgw']->categories->name2id(addslashes($cat));
-                               }
-                       }
-               }
-               $id_str = implode(',',$ids);
-
-               if(count($ids) > 1)             // multiple cats need to be in 
','
-               {
-                       $id_str = ",$id_str,";
-               }
-               return  $id_str;
-       }
-
-       switch($action)
+       switch($_POST['action'])
        {
                case '':        // Start, ask Filename
                        
$GLOBALS['phpgw']->template->set_var('lang_csvfile',lang('CSV-Filename'));
                        
$GLOBALS['phpgw']->template->set_var('lang_fieldsep',lang('Fieldseparator'));
-                       
$GLOBALS['phpgw']->template->set_var('fieldsep',$fieldsep ? $fieldsep : ',');
+                       
$GLOBALS['phpgw']->template->set_var('fieldsep',$_POST['fieldsep'] ? 
$_POST['fieldsep'] : ',');
                        
$GLOBALS['phpgw']->template->set_var('submit',lang('Download'));
                        
$GLOBALS['phpgw']->template->set_var('csvfile',$csvfile);
                        
$GLOBALS['phpgw']->template->set_var('enctype','ENCTYPE="multipart/form-data"');
                        $hiddenvars .= '<input type="hidden" name="action" 
value="download">'."\n";

-                       $GLOBALS['phpgw']->template->parse('rows','filename');
+                       
$GLOBALS['phpgw']->template->parse('filenamehandle','filename');
                        break;

                case 'download':
@@ -151,19 +96,21 @@
                        
$GLOBALS['phpgw']->template->set_var('lang_translation',lang("Translation").' 
<a href="#help">'.lang('help').'</a>');
                        
$GLOBALS['phpgw']->template->set_var('submit',lang('Import'));
                        
$GLOBALS['phpgw']->template->set_var('lang_debug',lang('Test Import (show 
importable records <u>only</u> in browser)'));
-                       $GLOBALS['phpgw']->template->parse('rows','fheader');
+                       
$GLOBALS['phpgw']->template->parse('fheaderhandle','fheader');
                        $hiddenvars .= '<input type="hidden" name="action" 
value="import">'."\n"
-                               . '<input type="hidden" name="fieldsep" 
value="'.$fieldsep."\">\n";
+                               . '<input type="hidden" name="fieldsep" 
value="'.$_POST['fieldsep']."\">\n";
+
+
+                       $field_names = 
$GLOBALS['phpgw']->contacts->import_fields;
+                       $loc_names = $field_names['locations'];
+                       unset($field_names['locations']);
+                       $comm_name = 
linearize_query($GLOBALS['phpgw']->contacts->get_contact_comm_descr(),'comm_description');
+                       $location_types = 
linearize_query($GLOBALS['phpgw']->contacts->get_contact_addr_type(), 
'addr_description');
+
+                       $loc_names = set_location_type($location_types, 
$loc_names);
+
+                       $addr_names = $field_names + $comm_name + $loc_names;

-                       $addr_names = 
$GLOBALS['phpgw']->contacts->stock_contact_fields + array(
-                               'cat_id' => 'Categories: @cat_id(Cat1,Cat2)',
-                               'access' => 'Access: public,private',
-                               'owner'  => 'Owner: defaults to user',
-                               'address2' => 'address line 2',
-                               'address3' => 'address line 3',
-                               'ophone'   => 'Other Phone',
-                               'ab_id'    => 'Address Id: 
@addr_id(n_family,n_given,org_name)'
-                       );
                        $config = CreateObject('phpgwapi.config','addressbook');
                        $config->read_repository();
                        while(list($name,$descr) = 
@each($config->config_data['custom_fields']))
@@ -172,7 +119,7 @@
                        }
                        unset($config);

-                       while(list($field,$name) = each($addr_names))
+                       foreach($addr_names as $field => $name)
                        {
                                if($dn = display_name($field))
                                {
@@ -180,23 +127,20 @@
                                }
                        }
                        $addr_name_options = "<option value=\"\">none\n";
-                       reset($addr_names);
-                       while(list($field,$name) = each($addr_names))
+                       foreach($addr_names as $field => $name)
                        {
                                $addr_name_options .= "<option 
value=\"$field\">".$GLOBALS['phpgw']->strip_html($name)."\n";
                        }
-                       $csv_fields = fgetcsv($fp,8000,$fieldsep);
-                       $csv_fields[] = 'no CSV 1'; // eg. for static 
assignments
-                       $csv_fields[] = 'no CSV 2';
-                       $csv_fields[] = 'no CSV 3';
-                       while(list($csv_idx,$csv_field) = each($csv_fields))
+                       $csv_fields = fgetcsv($fp,8000,$_POST['fieldsep']);
+
+                       foreach($csv_fields as $csv_idx => $csv_field)
                        {
                                
$GLOBALS['phpgw']->template->set_var('csv_field',$csv_field);
                                
$GLOBALS['phpgw']->template->set_var('csv_idx',$csv_idx);
                                if($def = $defaults[$csv_field])
                                {
-                                       list($addr,$trans) = 
explode($PSep,$def,2);
-                                       
$GLOBALS['phpgw']->template->set_var('trans',$trans);
+                                       list($addr,$_POST['trans']) = 
explode($PSep,$def,2);
+                                       
$GLOBALS['phpgw']->template->set_var('trans',$_POST['trans']);
                                        
$GLOBALS['phpgw']->template->set_var('addr_fields',str_replace('="'.$addr.'">','="'.$addr.'"
 selected>',$addr_name_options));
                                }
                                else
@@ -204,19 +148,38 @@
                                        
$GLOBALS['phpgw']->template->set_var('trans','');
                                        
$GLOBALS['phpgw']->template->set_var('addr_fields',$addr_name_options);
                                }
-                               
$GLOBALS['phpgw']->template->parse('rows','fields',True);
+                               
$GLOBALS['phpgw']->template->parse('fieldshandle','fields',True);
                        }
+
+                       
$GLOBALS['phpgw']->template->set_var('csv_field','Categories');
+                       
$GLOBALS['phpgw']->template->set_var('csv_idx','cat_id');
+                       $GLOBALS['phpgw']->template->set_var('trans','');
+                       
$GLOBALS['phpgw']->template->set_var('addr_fields',get_categories());
+                       
$GLOBALS['phpgw']->template->parse('fieldshandle','fields',True);
+
+                       
$GLOBALS['phpgw']->template->set_var('csv_field','Access');
+                       
$GLOBALS['phpgw']->template->set_var('csv_idx','access');
+                       $GLOBALS['phpgw']->template->set_var('trans','');
+                       
$GLOBALS['phpgw']->template->set_var('addr_fields',get_access());
+                       
$GLOBALS['phpgw']->template->parse('fieldshandle','fields',True);
+
+                       
$GLOBALS['phpgw']->template->set_var('csv_field','Owner');
+                       $GLOBALS['phpgw']->template->set_var('csv_idx','owner');
+                       $GLOBALS['phpgw']->template->set_var('trans','');
+                       
$GLOBALS['phpgw']->template->set_var('addr_fields',get_owner());
+                       
$GLOBALS['phpgw']->template->parse('fieldshandle','fields',True);
+
                        
$GLOBALS['phpgw']->template->set_var('lang_start',lang('Startrecord'));
-                       $GLOBALS['phpgw']->template->set_var('start',$start);
+                       
$GLOBALS['phpgw']->template->set_var('start',$_POST['start']);
                        
$GLOBALS['phpgw']->template->set_var('lang_max',lang('Number of records to read 
(<=200)'));
                        $GLOBALS['phpgw']->template->set_var('max',200);
-                       
$GLOBALS['phpgw']->template->parse('rows','ffooter',True);
+                       
$GLOBALS['phpgw']->template->parse('ffooterhandle','ffooter');
                        fclose($fp);
                        $old = $csvfile; $csvfile = 
$GLOBALS['phpgw_info']['server']['temp_dir'].'/addrbook_import_'.basename($csvfile);
-                       rename($old,$csvfile);
+                       rename($old,$csvfile);
                        $hiddenvars .= '<input type="hidden" name="csvfile" 
value="'.$csvfile.'">';
                        $mktime_lotus = "${PSep}0?([0-9]+)[ .:-]+0?([0-9]*)[ 
.:-]+0?([0-9]*)[ .:-]+0?([0-9]*)[ .:-]+0?([0-9]*)[ 
.:-]+0?([0-9]*)address@hidden(${VPre}4,${VPre}5,${VPre}6,${VPre}2,${VPre}3,${VPre}1)";
-                       $help_on_trans = "<a name='help'><b>How to use 
Translation's</b><p>".
+                       $help_on_trans = "<a name=\"help\"></a><b>How to use 
Translation's</b><p>".
                                "Translations enable you to change / adapt the 
content of each CSV field for your needs. <br>".
                                "General syntax is: <b>pattern1 ${ASep} 
replacement1 ${PSep} ... ${PSep} patternN ${ASep} replacementN</b><br>".
                                "If the pattern-part of a pair is ommited it 
will match everything ('^.*$'), which is only ".
@@ -251,21 +214,29 @@
                        
$GLOBALS['phpgw']->template->set_var('help_on_trans',lang($help_on_trans));     
// I don't think anyone will translate this
                        break;
                case 'import':
+                       @set_time_limit(0);
                        $fp=fopen($csvfile,'rb');
-                       $csv_fields = fgetcsv($fp,8000,$fieldsep);
-                       $csv_fields[] = 'no CSV 1'; // eg. for static 
assignments
-                       $csv_fields[] = 'no CSV 2';
-                       $csv_fields[] = 'no CSV 3';
+                       $csv_fields = fgetcsv($fp,8000,$_POST['fieldsep']);

-                       $addr_fields = array_diff($addr_fields,array(''));      
// throw away empty / not assigned entrys
+                       $cat_id = $_POST['addr_fields']['cat_id'];
+                       $access = $_POST['addr_fields']['access'];
+                       $owner = $_POST['addr_fields']['owner'];
+                       unset($_POST['addr_fields']['cat_id']);
+                       unset($_POST['addr_fields']['access']);
+                       unset($_POST['addr_fields']['owner']);
+                       $addr_fields = 
array_diff($_POST['addr_fields'],array(''));     // throw away empty / not 
assigned entrys
+                       $all_fields = 
$GLOBALS['phpgw']->contacts->import_fields;
+                       $location_fields = array_keys($all_fields['locations']);
+                       unset($all_fields['locations']);
+                       $comm_fields = 
linearize_query($GLOBALS['phpgw']->contacts->get_contact_comm_descr(),'comm_description');

                        $defaults = array();
-                       while(list($csv_idx,$addr) = each($addr_fields))
-                       {       // convert $trans[$csv_idx] into array of 
pattern => value
+                       foreach($addr_fields as $csv_idx => $addr)
+                       {       // convert $_POST['trans'][$csv_idx] into array 
of pattern => value
                                $defaults[$csv_fields[$csv_idx]] = $addr;
-                               if($trans[$csv_idx])
+                               if($_POST['trans'][$csv_idx])
                                {
-                                       $defaults[$csv_fields[$csv_idx]] .= 
$PSep.$trans[$csv_idx];
+                                       $defaults[$csv_fields[$csv_idx]] .= 
$PSep.$_POST['trans'][$csv_idx];
                                }
                        }

@@ -275,15 +246,13 @@

                        $log = "<table border=1>\n\t<tr><td>#</td>\n";

-                       reset($addr_fields);
-                       while(list($csv_idx,$addr) = each($addr_fields))
-                       {       // convert $trans[$csv_idx] into array of 
pattern => value
-                               // if (!$debug) echo "<p>$csv_idx: 
".$csv_fields[$csv_idx].": $addr".($trans[$csv_idx] ? ': '.$trans[$csv_idx] : 
'')."</p>";
-                               $pat_reps = 
explode($PSep,stripslashes($trans[$csv_idx]));
+                       foreach($addr_fields as $csv_idx => $addr)
+                       {
+                               $pat_reps = 
explode($PSep,stripslashes($_POST['trans'][$csv_idx]));
                                $replaces = ''; $values = '';
                                if($pat_reps[0] != '')
                                {
-                                       while(list($k,$pat_rep) = 
each($pat_reps))
+                                       foreach($pat_reps as $k => $pat_rep)
                                        {
                                                list($pattern,$replace) = 
explode($ASep,$pat_rep,2);
                                                if($replace == '')
@@ -293,38 +262,30 @@
                                                $values[$pattern] = $replace;   
// replace two with only one, added by the form
                                                $replaces .= ($replaces != '' ? 
$PSep : '') . $pattern . $ASep . $replace;
                                        }
-                                       $trans[$csv_idx] = $values;
+                                       $_POST['trans'][$csv_idx] = $values;
                                }
                                else
                                {
-                                       unset( $trans[$csv_idx] );
+                                       unset( $_POST['trans'][$csv_idx] );
                                }
                                $log .= "\t\t<td><b>$addr</b></td>\n";
                        }
-                       if (!in_array('fn',$addr_fields))       // autocreate 
full name, if not set by user
-                       {
-                               $log .= "\t\t<td><b>fn</b></td>\n";
+                       $start = $_POST['start'] < 1 ? 1 : $_POST['start'];

-                               $auto_fn = 
array('n_prefix','n_given','n_middle','n_family','n_suffix');
-                       }
-                       if($start < 1)
-                       {
-                               $start = 1;
-                       }
-                       for($i = 1; $i < $start && fgetcsv($fp,8000,$fieldsep); 
++$i);  // overread lines before our start-record
+                       for($i = 1; $i < $start && 
fgetcsv($fp,8000,$_POST['fieldsep']); ++$i);         // overread lines before 
our start-record

-                       for($anz = 0; $anz < $max && ($fields = 
fgetcsv($fp,8000,$fieldsep)); ++$anz)
+                       for($anz = 0; $anz < $_POST['max'] && ($fields = 
fgetcsv($fp,8000,$_POST['fieldsep'])); ++$anz)
                        {
                                $log .= 
"\t</tr><tr><td>".($start+$anz)."</td>\n";

                                reset($addr_fields); $values = array();
                                while(list($csv_idx,$addr) = each($addr_fields))
                                {
-                                       //echo "<p>$csv: $addr".($trans[$csv] ? 
': '.$trans[$csv] : '')."</p>";
+                                       //echo "<p>$csv: 
$addr".($_POST['trans'][$csv] ? ': '.$_POST['trans'][$csv] : '')."</p>";
                                        $val = $fields[$csv_idx];
-                                       if(isset($trans[$csv_idx]))
+                                       if(isset($_POST['trans'][$csv_idx]))
                                        {
-                                               $trans_csv = $trans[$csv_idx];
+                                               $trans_csv = 
$_POST['trans'][$csv_idx];
                                                while(list($pattern,$replace) = 
each($trans_csv))
                                                {
                                                        if(ereg((string) 
$pattern,$val))
@@ -337,16 +298,23 @@
                                                                
while(ereg($reg,$val,$vars))
                                                                {       // 
expand all CSV fields
                                                                        $val = 
str_replace($CPre . $vars[1] . $CPos, $val[0] == '@' ? "'"
-                                                                               
. addslashes($fields[index($vars[1], $csv_fields)])
+                                                                               
. $GLOBALS['phpgw']->db->db_addslashes($fields[index($vars[1], $csv_fields)])
                                                                                
. "'" : $fields[index($vars[1], $csv_fields)], $val);
                                                                }
                                                                if($val[0] == 
'@')
                                                                {
-                                                                       // 
removing the $ to close security hole of showing vars, which contain eg. 
passwords
-                                                                       $val = 
'return '.substr(str_replace('$','',$val),1).';';
-                                                                       // echo 
"<p>eval('$val')=";
-                                                                       $val = 
eval($val);
-                                                                       // echo 
"'$val'</p>";
+                                                                       if 
(!$GLOBALS['phpgw_info']['user']['apps']['admin'])
+                                                                       {
+                                                                               
echo lang('@-eval() is only availible to admins!!!');
+                                                                       }
+                                                                       else
+                                                                       {
+                                                                               
// removing the $ to close security hole of showing vars, which contain eg. 
passwords
+                                                                               
$val = 'return '.substr(str_replace('$','',$val),1).';';
+                                                                               
// echo "<p>eval('$val')=";
+                                                                               
$val = eval($val);
+                                                                               
// echo "'$val'</p>";
+                                                                       }
                                                                }
                                                                if($pattern[0] 
!= '@' || $val)
                                                                {
@@ -355,47 +323,102 @@
                                                        }
                                                }
                                        }
-                                       $values[$addr] = $val;
-
-                                       $log .= "\t\t<td>$val</td>\n";
-                               }
-                               // if (!isset($values['datecreated'])) 
$values['datecreated'] = $values['startdate'];
-
-                               if (is_array($auto_fn) && 
!isset($values['fn']))        // autocreate full name
-                               {
-                                       reset($auto_fn);
-                                       while (list($idx,$name) = 
each($auto_fn))
+                                       //$values[$addr] = $val;
+                                       if(in_array($addr, $comm_fields))
                                        {
-                                               $values['fn'] .= ($values['fn'] 
!= '' && $values[$name] != '' ? ' ' : '') . $values[$name];
+                                               
$fields_to_add['comm_media'][$addr] = $val;
                                        }
-                                       $log .= 
"\t\t<td>".$values['fn']."</td>\n";
-                               }
-                               if(!$debug)
-                               {
-                                       if (!$values['ab_id'])
+                                       
elseif(in_array(substr($addr,strpos($addr, '_') +1), $location_fields))
                                        {
-                                               
$GLOBALS['phpgw']->contacts->add( $values['owner'] ? $values['owner'] : 
$GLOBALS['phpgw_info']['user']['account_id'],
-                                                       
$values,$values['access'],$values['cat_id']);
+                                               $type = substr($addr,0, 
strpos($addr, '_') );
+                                               $data = 
substr($addr,strpos($addr, '_') +1);
+                                               
$fields_to_add['locations'][$type]['type'] = $type;
+                                               
$fields_to_add['locations'][$type][$data] = $val;
                                        }
                                        else
                                        {
-                                               
$GLOBALS['phpgw']->contacts->update( $values['ab_id'],
-                                                       $values['owner'] ? 
$values['owner'] : $GLOBALS['phpgw_info']['user']['account_id'],
-                                                       
$values,$values['access'],$values['cat_id']);
+                                               $fields_to_add[$addr] = $val;
                                        }
+
+                                       $log .= "\t\t<td>$val</td>\n";
+                               }
+                               $fields_to_add['categories'] = array($cat_id);
+                               $fields_to_add['access'] = $access;
+                               $fields_to_add['owner'] = $owner;
+                               if(!$_POST['debug'])
+                               {
+                                       
$GLOBALS['phpgw']->contacts->contact_import($fields_to_add);
                                        // echo "<p>adding: 
".dump_array($values)."</p>\n";
                                }
                        }
                        $log .= "\t</tr>\n</table>\n";

-                       
$GLOBALS['phpgw']->template->set_var('anz_imported',$debug ? lang('%1 records 
read (not yet imported, you may go %2back%3 and uncheck Test Import)',
+                       
$GLOBALS['phpgw']->template->set_var('anz_imported',$_POST['debug'] ? lang('%1 
records read (not yet imported, you may go %2back%3 and uncheck Test Import)',
                                $anz,'<a 
href="javascript:history.back()">','</a>') :
                                lang('%1 records imported',$anz));
                        $GLOBALS['phpgw']->template->set_var('log',$log);
-                       $GLOBALS['phpgw']->template->parse('rows','imported');
+                       
$GLOBALS['phpgw']->template->parse('importedhandle','imported');
                        break;
        }

        $GLOBALS['phpgw']->template->set_var('hiddenvars',$hiddenvars);
-       $GLOBALS['phpgw']->template->fp('phpgw_body','import');
+       $GLOBALS['phpgw']->template->pfp('out','import',True);
+       $GLOBALS['phpgw']->common->phpgw_footer();
+
+       function linearize_query($qresult,$key)
+       {
+               //print_r($qresult);
+               reset($qresult);
+               for($i=0;$i < count($qresult);$i++)
+               {
+                       $ret[$qresult[$i][$key]]=$qresult[$i][$key];
+               }
+               return $ret;
+       }
+
+       function set_location_type($location_types=array(), 
$location_fields=array())
+       {
+               foreach($location_types as $type)
+               {
+                       foreach($location_fields as $key => $field)
+                       {
+                               $locations[$type . '_' . $key] = $type . ' ' . 
$field;
+                       }
+               }
+               return $locations;
+       }
+
+       function get_categories()
+       {
+               $cat = CreateObject('phpgwapi.categories');
+               $cats_link = $cat->formated_list('select','all',$cat_id,True);
+               return $cats_link;
+       }
+
+       function get_access()
+       {
+               $access = '<option>public</option>';
+               $access .= '<option>private</option>';
+               return $access;
+       }
+
+       function get_owner()
+       {
+               $account_list = 
$GLOBALS['phpgw']->accounts->get_list('accounts');
+               if (is_array($account_list))
+               {
+                       foreach($account_list as $entry)
+                       {
+                               $user_list .= '<option value="' . 
$entry['account_id'] . '"'
+                                       . $selected . '>'
+                                       . 
$GLOBALS['phpgw']->common->display_fullname(
+                                               $entry['account_lid'],
+                                               $entry['account_firstname'],
+                                               $entry['account_lastname'])
+                                       . '</option>'."\n";
+                       }
+               }
+               return $user_list;
+       }
+
 ?>






reply via email to

[Prev in Thread] Current Thread [Next in Thread]