phpgroupware-cvs
[Top][All Lists]
Advanced

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

[Phpgroupware-cvs] CVS: addressbook csv_import.php,1.4,1.4.2.1


From: Ralf Becker <address@hidden>
Subject: [Phpgroupware-cvs] CVS: addressbook csv_import.php,1.4,1.4.2.1
Date: Tue, 05 Mar 2002 05:37:58 -0500

Update of /cvsroot/phpgroupware/addressbook
In directory subversions:/tmp/cvs-serv16616

Modified Files:
      Tag: Version-0_9_14-branch
        csv_import.php 
Log Message:
fix for multiple cats separated by ';' and containing " ' " in cat-names
saveing fieldassignments now in preferences and not longer in a separate file 
in /tmp

Index: csv_import.php
===================================================================
RCS file: /cvsroot/phpgroupware/addressbook/csv_import.php,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
*** csv_import.php      5 Dec 2001 16:18:07 -0000       1.4
--- csv_import.php      5 Mar 2002 10:37:55 -0000       1.4.2.1
***************
*** 91,95 ****
                }
  
!               $cats = explode(',',$cats);
  
                while (list($k,$cat) = each($cats))
--- 91,95 ----
                }
  
!               $cats = split('[,;]',$cats);
  
                while (list($k,$cat) = each($cats))
***************
*** 105,109 ****
                                        $GLOBALS['phpgw']->categories = 
createobject('phpgwapi.categories');
                                }                       
!                               if ($id = 
$GLOBALS['phpgw']->categories->name2id( $cat ))
                                {       // cat exists
                                        $cat2id[$cat] = $ids[$cat] = $id;
--- 105,109 ----
                                        $GLOBALS['phpgw']->categories = 
createobject('phpgwapi.categories');
                                }                       
!                               if ($id = 
$GLOBALS['phpgw']->categories->name2id( addslashes($cat) ))
                                {       // cat exists
                                        $cat2id[$cat] = $ids[$cat] = $id;
***************
*** 111,122 ****
                                else
                                {       // create new cat
!                                       $GLOBALS['phpgw']->categories->add( 
$cat,0,$cat,'','public',0);
!                                       $cat2id[$cat] = $ids[$cat] = 
$GLOBALS['phpgw']->categories->name2id( $cat );
                                }
                        }
                }
!               return implode( ',',$ids );
        }
  
        switch ($action)
        {
--- 111,131 ----
                                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;
        }
  
+       $GLOBALS['phpgw']->preferences->read_repository();
+       echo "prefs[addressbook] = "; 
_debug_array($GLOBALS['phpgw_info']['user']['preferences']['addressbook']);
+ 
        switch ($action)
        {
***************
*** 134,143 ****
  
                case 'download':
!                       $pref_file = '/tmp/csv_import_addrbook.php';
!                       if (is_readable($pref_file) && ($prefs = 
fopen($pref_file,'r')))
                        {
!                               eval("fread\(\$prefs,8000\);");
!                               // echo "<p>defaults = 
array".dump_array($defaults)."</p>\n";
!                       }               
                        
$GLOBALS['phpgw']->template->set_var('lang_csv_fieldname',lang('CSV-Fieldname'));
                        
$GLOBALS['phpgw']->template->set_var('lang_addr_fieldname',lang('Addressbook-Fieldname'));
--- 143,152 ----
  
                case 'download':
!                       $GLOBALS['phpgw']->preferences->read_repository();
!                       $defaults = 
$GLOBALS['phpgw_info']['user']['preferences']['addressbook']['cvs_import'];
!                       if (!is_array($defaults))
                        {
!                               $defaults = array();
!                       }
                        
$GLOBALS['phpgw']->template->set_var('lang_csv_fieldname',lang('CSV-Fieldname'));
                        
$GLOBALS['phpgw']->template->set_var('lang_addr_fieldname',lang('Addressbook-Fieldname'));
***************
*** 147,152 ****
                        
$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="pref_file" 
value="'.$pref_file."\">\n";
  
                        $addr_names = 
$GLOBALS['phpgw']->contacts->stock_contact_fields + array(
--- 156,160 ----
                        
$GLOBALS['phpgw']->template->parse('fheaderhandle','fheader');
                        $hiddenvars .= '<input type="hidden" name="action" 
value="import">'."\n"
!                               . '<input type="hidden" name="fieldsep" 
value="'.$fieldsep."\">\n";
  
                        $addr_names = 
$GLOBALS['phpgw']->contacts->stock_contact_fields + array(
***************
*** 171,176 ****
                        $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))
                        {
--- 179,184 ----
                        $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))
                        {
***************
*** 236,261 ****
                        $fp=fopen($csvfile,"r");
                        $csv_fields = fgetcsv($fp,8000,$fieldsep);
  
                        $addr_fields = array_diff($addr_fields,array( '' ));    
// throw away empty / not assigned entrys
  
!                       if ($pref_file)
!                       {
!                               // echo "writing pref_file ...<p>";
!                               if (file_exists($pref_file))
                                {
!                                       rename($pref_file,$pref_file.'.old');
!                               }
!                               $pref = fopen($pref_file,'w');
!                               while (list($csv_idx,$addr) = 
each($addr_fields))
!                               {       // convert $trans[$csv_idx] into array 
of pattern => value
!                                       $defaults[$csv_fields[$csv_idx]] = 
$addr;
!                                       if ($trans[$csv_idx])
!                                       {
!                                               
$defaults[$csv_fields[$csv_idx]] .= $PSep.$trans[$csv_idx];
!                                       }
                                }
-                               fwrite($pref,'$defaults = array'.dump_array( 
$defaults ).';');
-                               fclose($pref);
                        }
                        $log = "<table border=1>\n\t<tr><td>#</td>\n";
  
--- 244,267 ----
                        $fp=fopen($csvfile,"r");
                        $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';
  
                        $addr_fields = array_diff($addr_fields,array( '' ));    
// throw away empty / not assigned entrys
  
!                       $defaults = array();
!                       while (list($csv_idx,$addr) = each($addr_fields))
!                       {       // convert $trans[$csv_idx] into array of 
pattern => value
!                               $defaults[$csv_fields[$csv_idx]] = $addr;
!                               if ($trans[$csv_idx])
                                {
!                                       $defaults[$csv_fields[$csv_idx]] .= 
$PSep.$trans[$csv_idx];
                                }
                        }
+ 
+                       $GLOBALS['phpgw']->preferences->read_repository();
+                       
$GLOBALS['phpgw']->preferences->add('addressbook','cvs_import',$defaults);
+                       $GLOBALS['phpgw']->preferences->save_repository(True);
+ 
                        $log = "<table border=1>\n\t<tr><td>#</td>\n";
  
***************
*** 309,318 ****
                                                                // echo 
"'$val'</p>";
  
-                                                               $quote = 
$val[0] == '@' ? "'" : '';
- 
                                                                $reg = 
$CPreReg.'([a-zA-Z_0-9]+)'.$CPosReg;
                                                                while 
(ereg($reg,$val,$vars))
                                                                {       // 
expand all CSV fields
!                                                                       $val = 
str_replace($CPre.$vars[1].$CPos,$quote.$fields[index($vars[1],$csv_fields)].$quote,$val);
                                                                }
                                                                if ($val[0] == 
'@')
--- 315,322 ----
                                                                // echo 
"'$val'</p>";
  
                                                                $reg = 
$CPreReg.'([a-zA-Z_0-9]+)'.$CPosReg;
                                                                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)])."'" : 
$fields[index($vars[1],$csv_fields)],$val);
                                                                }
                                                                if ($val[0] == 
'@')




reply via email to

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