Differences

This shows you the differences between two versions of the page.

deutsch:andere-erweiterungen:hacks:formularergebnis-download-csv [2012/05/17 15:39]
Knut Heermann (flip-flop)
deutsch:andere-erweiterungen:hacks:formularergebnis-download-csv [2018/06/03 18:09] (current)
Line 1: Line 1:
{{indexmenu_n>100}} {{indexmenu_n>100}}
-====== Formularbenutzerdaten als CSV-Datei ======+====== Formularergebnis als CSV-Datei ======
-Mit diesem Hack kann die Auswertung der Formulareingaben die im BE beim CP Formular unter dem ##Download-Button## sichtbar wird als CSV-Datei abgespeichert werden.+Mit diesem Hack kann die Auswertung der Formulareingaben die im BE beim CP Formular unter dem ##Download-Button## sichtbar wird als CSV-Datei abgespeichert werden. \\ //([[http://de.wikipedia.org/wiki/CSV_(Dateiformat)]])//
Die hier vorgestellt Lösung fügt einen CSV Download-Link in die aufgerufene Download-Ausgabe unten an. \\ Die hier vorgestellt Lösung fügt einen CSV Download-Link in die aufgerufene Download-Ausgabe unten an. \\
Line 41: Line 41:
**Autor:** K.Heermann (flip-flop) http://planmatrix.de \\ //(17.05.2012)// **Autor:** K.Heermann (flip-flop) http://planmatrix.de \\ //(17.05.2012)//
**CMS Version:** >= 1.4 \\ **CMS Version:** >= 1.4 \\
-**Version:** V1.0 \\+**Version:** V1.0 17.05.2012 \\ 
 +**Update V1.1 18.05.2012:** Standardkonforme CSV-Ausgabe auch bei " und/oder einem Feldtrenner im Zellentext, \\  
 +siehe [[http://forum.phpwcms.org/viewtopic.php?p=135720#p135720]].
- +**Dateiname:** include/inc_act/act_export.php
-**Dateiname:**  +
-  * include/inc_act/act_export.php+
Line 54: Line 54:
-==== Codeschnipsel (Hack) ====+==== Codeschnipsel V1.1 (Hack) ==== 
 + 
 +**Update V1.1 18.05.2012:** Standardkonforme CSV-Ausgabe auch bei " und/oder einem Feldtrenner im Zellentext, \\  
 +siehe [[http://forum.phpwcms.org/viewtopic.php?p=135720#p135720]]. 
 + 
 +Als Feldtrenner wird hier ein ##**;**## verwendet, einstellbar in der Variablen **$separator**, etwa in Zeile 140.
Erweiterung der Datei **include/inc_act/act_export.php** etwa ab Zeile 120. \\ Erweiterung der Datei **include/inc_act/act_export.php** etwa ab Zeile 120. \\
Line 82: Line 87:
if(!$data) die('Just a problem!'); if(!$data) die('Just a problem!');
- $separator =';'; // CSV-separator+ $separator =';'; // CSV-Feldseparator
$export = array(); $export = array();
$row = 1; $row = 1;
- $export[0] = array('#ID'=>'','#Date'=>'','#IP'=>'');+ $export[0] = array('#'=>'','#ID'=>'','#Date'=>'','#IP'=>'');
// run all data first and combine array elements // run all data first and combine array elements
Line 91: Line 96:
// numbering starting at 1 // numbering starting at 1
 + $export[$row]['#'] = $row;
$export[$row]['#ID'] = $value['formresult_id']; $export[$row]['#ID'] = $value['formresult_id'];
$export[$row]['#Date'] = $value['formresult_createdate']; $export[$row]['#Date'] = $value['formresult_createdate'];
Line 136: Line 142:
$elements[$x] .= ''; $elements[$x] .= '';
- if ( isset($export[$x][$key]) ) {+// if ( isset($export[$x][$key]) ) {
// // Nicht zwingen notwenig, nur um fuer HTML-Darstellung // // Nicht zwingen notwenig, nur um fuer HTML-Darstellung
// $export[$x][$key] = html_specialchars($export[$x][$key]); // $export[$x][$key] = html_specialchars($export[$x][$key]);
- // CR oder LF in String enthalten? -> wenn ja den Teilbereich in "..." setzen + // Jede Spalte wird standardkonform in "..." gesetzt (OG: 18.05.2012) 
- if (strpos($export[$x][$key], chr(13)) !== false OR strpos($export[$x][$key], chr(10)) !== false) { + $export[$x][$key] = str_replace(chr(13),'', $export[$x][$key]); // CR loeschen wenn vorhanden (LF bleibt bestehen wenn vorhanden) 
- $export[$x][$key] = '"'.$export[$x][$key].'"'; + $export[$x][$key] = '"'.str_replace('"', '""', $export[$x][$key]).'"'; // Jede Spalte in "..."; setzen
- $export[$x][$key] = str_replace(chr(13),'', $export[$x][$key]); // CR loeschen wenn vorhanden (LF bleibt bestehen) +
- } +
-  +
- $elements[$x] .= $export[$x][$key]; +
-  +
- }+
 +// }
 + $elements[$x] .= $export[$x][$key];
$elements[$x] .= $separator; // CSV-Trenner setzen $elements[$x] .= $separator; // CSV-Trenner setzen
Line 170: Line 172:
\\ \\
-Ich rate dazu die Originaldatei vor dem Hack umzubenennen nach z.B. **act_export_org.php** und die gepatchte Datei nochmals abzulegen unter z.B. **act_export_patch.php**.  +Es ist ratsam die Originaldatei vor dem Hack umzubenennen nach z.B. **act_export_org.php** und die gepatchte Datei nochmals abzulegen unter z.B. **act_export_patch.php**.  
-Das ist hilfreich bei einem Update des Systems, bei dem die eigentliche Datei **act_export.php** u.U. überschrieben wird. +Das ist hilfreich bei einem Update des Systems, bei dem die jetzt gepatchte Datei **act_export.php** u.U. überschrieben wird.
So kann nach einem Update leicht dieser Hack wieder eingesetzt werden. So kann nach einem Update leicht dieser Hack wieder eingesetzt werden.
deutsch/andere-erweiterungen/hacks/formularergebnis-download-csv.1337261995.txt.gz · Last modified: 2018/06/03 18:07 (external edit)
www.planmatrix.de www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0