Can choose the CSV separator
authorx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Fri, 29 Dec 2006 15:51:55 +0000 (15:51 +0000)
committerx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Fri, 29 Dec 2006 15:51:55 +0000 (15:51 +0000)
git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1317 839d8a87-29fc-0310-9880-83ba4fa771e5

classes/csvimporter.php
templates/include/csv-importer.tpl

index 816b9fa..dafc8c9 100644 (file)
@@ -37,7 +37,7 @@ class CSVImporter
     private $field_desc = array();
     private $field_value = array();
 
-    public function CSVImporter($table, $key = 'id', $do_sql = true)
+    public function __construct($table, $key = 'id', $do_sql = true)
     {
         $this->table     = $table;
         $this->key       = $key;
@@ -46,7 +46,7 @@ class CSVImporter
 
     private function processLine($line)
     {
-        $array = split($this->separator, $line);
+        $array = explode($this->separator, $line);
         if (is_null($this->index)) {
             $this->index = array_map('strtolower', $array);
             return true;
@@ -254,7 +254,12 @@ class CSVImporter
             $next = 'values';
         }
         if ($csv) {
-            $this->setCSV($csv);
+            $sep = Env::v('csv_separator');
+            if (empty($sep)) {
+                $sep = ';';
+            }
+            echo $sep;
+            $this->setCSV($csv, null, $sep);
         }
         if ($current == 'values' && Env::has('csv_valid')) {
             $next = 'valid';
index d023d88..ed32712 100644 (file)
           <td>
     {if $csv_page eq 'source'}
       <textarea name="csv_source" rows="20" cols="80">{$csv|default:$smarty.request.csv_source}</textarea><br />
-      Entrez les données sous la forme :<br />
-      <pre class="center">TITRE1;TITRE2;...
-val1_1;val1_2;...
-val2_1;val2_2;...
-val3_1;val3_2;...</pre>
+      Entrez les données sous la forme suivante (avec
+      <input type="text" name="csv_separator" value="{$smarty.request.csv_separator|default:";"}" maxlength="1" size="1" />
+      comme séparateur) :<br/>
+      <pre class="center">TITRE1{$smarty.request.csv_separator|default:";"}TITRE2{$smarty.request.csv_separator|default:";"}...
+val1_1{$smarty.request.csv_separator|default:";"}val1_2{$smarty.request.csv_separator|default:";"}...
+val2_1{$smarty.request.csv_separator|default:";"}val2_2{$smarty.request.csv_separator|default:";"}...
+val3_1{$smarty.request.csv_separator|default:";"}val3_2{$smarty.request.csv_separator|default:";"}...</pre>
     {elseif $csv_page eq 'values'}
   <div class="center">
     Action à effectuer si l'entrée existe : 
@@ -231,6 +233,9 @@ val3_1;val3_2;...</pre>
     <input type="hidden" name="csv_page" value="{$csv_page}" />
     <input type="hidden" id="csv_next_page" name="csv_next_page" value="{$csv_page}" />
     <input type="hidden" name="csv" value="{$csv}" />
+    {if $csv_page neq 'source'}
+      <input type="hidden" name="csv_separator" value="{$smarty.request.csv_separator}" />
+    {/if}
     {if $csv_page neq 'values'}
       <input type="hidden" name="csv_action" value="{$smarty.request.csv_action}" />
     {foreach from=$csv_fields item=f}