Bonjour,
Je travail sur Prestashop (site de vente), mon but est d'exporter les commande effectué sur le site en fichier texte avec des séparateurs.
Il existe des modules qui font justement l'export de ces données (commandes) cependant j'obtiens les données sans séparateurs :
et moi je veux obtenir"donnée1" "donnée2" "donnée3" ...
Mon but final est d'importer ces données dans un ERP.donnée1;donnée2;donnée3...
voici le code qui permet la génération du fichier :
Le problème c'est que je n'arrive pas a détecter a quel moment il faut intervenir dans le code. pour remplacer les "espace" par ";" et par la meme occasion, retirer les "" de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 public function hookExport($params){ global $cookie; if (Tools::getValue('submitFilter')) { header('Content-Type: application/csv'); header('Content-Disposition: inline; filename="orders.csv"'); header('Cache-Control: private, max-age=0, must-revalidate'); $filter=array(); $fields=array(); $titles=array(); $tables=array(); $where=array(); foreach($this->tables AS $s=>$t){ if($_POST['t'.$s]){ $tables[]=_DB_PREFIX_.$t['n'].' AS '.$s; foreach($_POST['t'.$s] AS $f){ $fields[]=(isset($t['f'][$f]['ni'])?'':$s.'.').$t['f'][$f]['n']; $titles[]=$t['f'][$f]['l']; $filter[$s.$f]=true; } if(isset($t['w'])){ $where[]=$t['w']; } } } $sql='SELECT '.implode(', ', $fields).' FROM '.implode(', ', $tables).' WHERE '.implode(' AND ', $where).''; $td=getdate(); $sql.=' ORDER BY o.date_add DESC'; $orderlist = Db::getInstance()->ExecuteS($sql); // echo mysql_error(); // echo $sql; $filter['titleson']=Tools::getValue('titleson'); $cookie->exportorderfilter=serialize($filter); if(Tools::getValue('titleson')){ echo $this->getcsvline($titles); } foreach($orderlist AS $order){ echo $this->getcsvline($order); } } } private function escape($s){ return mysql_real_escape_string($s); } private function getcsvline($list){ $s=''; foreach($list as &$l){ $l='"'.addslashes($l).'"'; } return implode("\t", $list)."\r\n"; }
==>"donnée1"
pour avoir
==>donnée
Merci je bien vouloir m'aider.
Partager