From 2f95cd8f290d0e6639a30a9cbaf3230dea4ccf9d Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Thu, 15 Feb 2007 19:57:47 +0000 Subject: [PATCH] Backport [1497] & [1498] git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1500 839d8a87-29fc-0310-9880-83ba4fa771e5 --- classes/csvimporter.php | 62 ++++++++++++++++++++------- modules/axletter.php | 2 +- templates/include/csv-importer.tpl | 85 +++++++++++++++----------------------- 3 files changed, 82 insertions(+), 67 deletions(-) diff --git a/classes/csvimporter.php b/classes/csvimporter.php index 2153c0d..2b76a50 100644 --- a/classes/csvimporter.php +++ b/classes/csvimporter.php @@ -175,11 +175,11 @@ class CSVImporter static $fields, $conds, $values, $thens, $elses; if (!isset($fields)) { - $fields = Env::v('csv_cond_field'); - $conds = Env::v('csv_cond'); - $values = Env::v('csv_cond_value'); - $thens = Env::v('csv_cond_then'); - $elses = Env::v('csv_cond_else'); + $fields = $_SESSION['csv_cond_field']; + $conds = $_SESSION['csv_cond']; + $values = $_SESSION['csv_cond_value']; + $thens = $_SESSION['csv_cond_then']; + $elses = $_SESSION['csv_cond_else']; } $field = $line[$fields[$key]]; $cond = $conds[$key]; @@ -225,6 +225,13 @@ class CSVImporter $this->field_value[$name] = $value; } + private function cleanSession($fields) + { + foreach ($fields as $field) { + unset($_SESSION[$field]); + } + } + /** Handle insertion form * @param $page PlatalPage to process * @param $url URI of the page @@ -232,6 +239,15 @@ class CSVImporter */ public function apply(&$page, $url, $fields = null) { + $sesfields = array('csv_value', 'csv_user_value', 'csv_cond_field', + 'csv_update', 'csv_action', 'csv_cond_field', + 'csv_cond', 'csv_cond_value', 'csv_cond_then', + 'csv_cond_else', 'csv', 'csv_separator', 'csv_url'); + if ($url != @$_SESSION['csv_url']) { + $this->cleanSession($sesfields); + $_SESSION['csv_url'] = $url; + } + if (is_null($fields) || empty($fields)) { $fields = $this->getFieldList(); } @@ -251,17 +267,21 @@ class CSVImporter if (empty($next)) { $next = $current; } - $csv = Env::v('csv'); + $csv = @$_SESSION['csv']; if ($current == 'source' && Env::has('csv_valid')) { $csv = Env::v('csv_source'); + $_SESSION['csv'] = $csv; $next = 'values'; } if ($csv) { - $sep = Env::v('csv_separator'); - if (empty($sep)) { - $sep = ';'; + if (Env::has('csv_separator')) { + $sep = Env::v('csv_separator'); + if (empty($sep)) { + $sep = ';'; + } + $_SESSION['csv_separator'] = $sep; } - $this->setCSV($csv, null, $sep); + $this->setCSV($csv, null, $_SESSION['csv_separator']); } if ($current == 'values' && Env::has('csv_valid')) { $next = 'valid'; @@ -269,10 +289,22 @@ class CSVImporter if (empty($csv)) { $next = 'source'; } + if (Env::has('csv_action')) { + $_SESSION['csv_action'] = Env::v('csv_action'); + } if ($next == 'valid') { - $insert = Env::v('csv_value'); - $values = Env::v('csv_user_value'); - $update = Env::v('csv_update'); + if ($current != 'valid') { + $cpyfields = array('csv_value', 'csv_user_value', 'csv_cond_field', + 'csv_update', 'csv_action', 'csv_cond_field', + 'csv_cond', 'csv_cond_value', 'csv_cond_then', + 'csv_cond_else'); + foreach ($cpyfields as $field) { + $_SESSION[$field] = Env::v($field); + } + } + $insert = $_SESSION['csv_value']; + $values = $_SESSION['csv_user_value']; + $update = $_SESSION['csv_update']; foreach ($insert as $key=>$value) { if (empty($value)) { $insert[$key] = null; @@ -292,8 +324,9 @@ class CSVImporter $fields[] = $key; } if ($current == 'valid' && Env::has('csv_valid')) { - $this->run(Env::v('csv_action'), $insert, $update); + $this->run($_SESSION['csv_action'], $insert, $update); $page->assign('csv_done', true); + $this->cleanSession($sesfields); } else { $preview = array(); foreach ($this->data as $line) { @@ -308,7 +341,6 @@ class CSVImporter $page->assign('csv_page', $next); $page->assign('csv_path', $url); $page->assign('csv_fields', $fields); - $page->assign('csv', $csv); } } diff --git a/modules/axletter.php b/modules/axletter.php index 89f6ab0..aa9a38a 100644 --- a/modules/axletter.php +++ b/modules/axletter.php @@ -312,7 +312,7 @@ class AXLetterModule extends PLModule $importer = new CSVImporter('axletter_ins'); $importer->registerFunction('user_id', 'email vers Id X.org', array($this, 'idFromMail')); $importer->forceValue('hash', array($this, 'createHash')); - $importer->apply($page, "admin/axletter", array('user_id', 'email', 'prenom', 'nom', 'promo', 'hash')); + $importer->apply($page, "admin/axletter", array('user_id', 'email', 'prenom', 'nom', 'promo', 'flag', 'hash')); } function idFromMail($line, $key) diff --git a/templates/include/csv-importer.tpl b/templates/include/csv-importer.tpl index b9476ce..59e79fb 100644 --- a/templates/include/csv-importer.tpl +++ b/templates/include/csv-importer.tpl @@ -72,7 +72,7 @@ {/if} {if $csv_page eq 'values'}
  • 2 - Définir
    les valeurs
  • - {elseif $csv} + {elseif $smarty.session.csv}
  • 2 - Définir
    les valeurs
  • {else}
  • 2 - Définir
    les valeurs
  • @@ -93,26 +93,26 @@ {if $csv_page eq 'source'} -
    +
    Entrez les données sous la forme suivante (avec - + comme séparateur) :
    -
    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:";"}...
    +
    TITRE1{$smarty.session.csv_separator|default:";"}TITRE2{$smarty.session.csv_separator|default:";"}...
    +val1_1{$smarty.session.csv_separator|default:";"}val1_2{$smarty.session.csv_separator|default:";"}...
    +val2_1{$smarty.session.csv_separator|default:";"}val2_2{$smarty.session.csv_separator|default:";"}...
    +val3_1{$smarty.session.csv_separator|default:";"}val3_2{$smarty.session.csv_separator|default:";"}...
    {elseif $csv_page eq 'values'}
    Action à effectuer si l'entrée existe : - - - {foreach from=$csv_index item=col} - + {/foreach} {if $csv_functions|count} {foreach from=$csv_functions key=func item=desc} - + {/foreach} {/if} - - + + - + Si - - + + -
    Alors -
    Sinon +
    Alors +
    Sinon
    - {if $smarty.request.csv_action eq 'update'} + {if $smarty.session.csv_action eq 'update'} - + {/if} @@ -236,23 +236,6 @@ val3_1{$smarty.request.csv_separator|default:";"}val3_2{$smarty.request.csv_sepa - - {if $csv_page neq 'source'} - - {/if} - {if $csv_page neq 'values'} - - {foreach from=$csv_fields item=f} - - - - - - - - - {/foreach} - {/if} {if $csv_page eq 'source'} {elseif $csv_page eq 'values'} -- 2.1.4