Ergebnis 1 bis 10 von 10

Thema: Gespeicherte Formulardaten im UTF-8 Format exportieren

  1. #1
    Contao-Nutzer
    Registriert seit
    30.09.2012.
    Beiträge
    28

    Standard Gespeicherte Formulardaten im UTF-8 Format exportieren

    Moin Moin,

    bei einer zweisprachigen Seite (englisch und arabisch) ist jeweils ein Formular mit efg eingebaut.
    Die Eingaben werden auch wie gewünscht in der Datenbank gespeichert. Der Kunde möchte diese Daten später mit EXCEL auswerten.

    Das Problem:
    Der Export der englischen Daten funktioniert einwandfrei, beim Export der arabischen Daten bleiben die Felder mit den arabischen Eingaben jedoch leer. Ich vermute mal das die Daten nicht im UTF-8 Format exportiert werden.

    xls_export scheint nur für das alte EXCEL-Format ohne UTF-8 Unterstützung ausgelegt zu sein. Daher habe ich das Paket efgexcel (php_excel) installiert, aber auch dort bleiben die Felder mit den arabischen Eingaben leer.

    Gibt es eine Möglichkeit die gespeicherten Formulardaten im UTF-8 Format zu exportieren? Eine CSV-Ausgabe würde mir schon reichen.

    Konfiguration:
    Contao 3.5.4
    efg 2.2.1
    efgexcel 3.0.1
    php_excel 3.0.1
    xls_export 3.0.0

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Alternativ könntest du terminal42/contao-leads verwenden (kann aber nichts dazu sagen, ob dort der Excel Export dann auch mit UTF-8 funktioniert).

  3. #3
    Contao-Nutzer
    Registriert seit
    30.09.2012.
    Beiträge
    28

    Standard Leider keinerlei Dokumentation zu "leads"

    Zitat Zitat von Spooky Beitrag anzeigen
    Alternativ könntest du terminal42/contao-leads verwenden (kann aber nichts dazu sagen, ob dort der Excel Export dann auch mit UTF-8 funktioniert).
    Leads scheint mir für den neuen Composer entwickelt worden zu sein. Den habe ich zwar schon mal probiert, bin aber nach etlichen Problemen damit wieder zum "alten" Erweiterungskatalog zurückgekehrt.

    Hab's mal "zu Fuß" probiert:
    - Die ZIP-Datei von Leads heruntergeladen, in den Ordner "system/modules/" kopiert und den neuen Ordner in "leads" umbenannt.
    - Die anscheinend benötigten Erweiterungen dcawizard, haste, MultiColumnWizard, NamespaceClassLoader und notification_center installiert.
    - install.php aufgerufen und die Datenbank aktualisiert.

    Tja - und nun?
    Mag sein das ich mich da irre, aber die Erweiterungen von terminal42 scheinen mir eher für den "internen Hausgebrauch" konzipiert zu sein. Es fehlt in der Regel eine brauchbare Anleitung.

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Und nun:
    • AdBlock im Backend deaktivieren ("leads" ist leider ein geblocktes Keyword)
    • Im Formular die Option Anfragen speichern aktivieren
    • Bei Datensatz-Bezeichnung gibst du dann an, wie die Darstellung im Backend aussehen soll für die einzelnen Datensätze dieses Formulars, also zB
      Code:
      ##created## | ##firstname## | ##lastname##
      d.h. die Feldnamen innerhalb von ##…## (Simple Tokens) - zusätzlich gibt es auch noch Tokens wie zB ##created##
    • Bei den einzelnen Feldern die Option In Anfrage speichern auf "ja" setzen (kA warum die das nicht als Checkbox gemacht haben)
    • Im Backend siehst du dann links im Menü einen Bereich namens "Anfragen" und dort dann das jeweilige Formular

  5. #5
    Contao-Nutzer
    Registriert seit
    30.09.2012.
    Beiträge
    28

    Standard

    Vielen Dank für die Infos.

    Hab's jetzt soweit das die arabischen Formulareingaben unter "Anfragen" angezeigt werden.
    Nach Konfiguration der Exportoptionen klappt auch der Export als CVS und XLSX inclusive der arabischen Zeichen.
    Beim Export gab es noch eine Fehlermeldung, wenn man bei "Individuellen Dateinamen" den Platzhalter ##datim## verwendet. Da ist wohl ein Leerzeichen zw. Datum und Uhrzeit was Contao verwirrt.

    Gibt es irgendwo noch weitere Infos zu Leads? Ohne Doku ist eine etwas komplexere Erweiterung relativ sinnfrei.

  6. #6
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    6.470
    Partner-ID
    107
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo compuzius,

    schau doch mal in der Demo, die Yanick für die Konferenz dieses Jahr zur Verfügung gestellt hat:
    http://contao-konferenz.de/vortraege...formulare.html
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Contao-Sprechstunde
    Contao Schulungen: https://www.weitzeldesign.com/cms-co...chulungen.html
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://app.gitbook.com/@planepix/s/...-mit-contao-4/
    Contao 4 & Manager Hosterhinweise: https://github.com/contao/contao-manager/wiki

    Schon wieder ein Update?
    Glücklich sind die, die den Wert erkennen – und wertschätzen.
    „Muss man machen wie beim Zahnarzt. Der bestraft einen auch mit hohen Rechnungen wenn man die Pflege vernachlässigt.”

  7. #7
    Contao-Fan Avatar von tom
    Registriert seit
    16.06.2009.
    Ort
    Ludwigsburg
    Beiträge
    385

    Standard

    Zitat Zitat von compuzius Beitrag anzeigen
    Moin Moin,
    ...
    Das Problem:
    Der Export der englischen Daten funktioniert einwandfrei, beim Export der arabischen Daten bleiben die Felder mit den arabischen Eingaben jedoch leer. Ich vermute mal das die Daten nicht im UTF-8 Format exportiert werden.
    ...
    Gibt es eine Möglichkeit die gespeicherten Formulardaten im UTF-8 Format zu exportieren? Eine CSV-Ausgabe würde mir schon reichen.
    ...
    Hallo compuzius,

    die Möglichkeit gibt es. Standardmäßig wird beim Export konvertiert (CP1252).

    Per Eintrag z.B. in der dcaconfig.php kann das aber geändert werden:
    $GLOBALS['EFG']['exportUTF8Decode'] = false; // somit bleibt's bei UTF-8
    oder auch
    $GLOBALS['EFG']['exportConvertToCharset'] = 'TARGET_CHARSET'; // gewünchten Zeichensatz angeben

    Schöne Grüße
    Thomas

  8. #8
    Contao-Nutzer
    Registriert seit
    30.09.2012.
    Beiträge
    28

    Standard

    Moin Tom,

    vielen Dank für den Hinweis - das ist die beste Lösung.

    Bei meinen Versuchen mit "leads" hatte es zwar auch schon geklappt, aber ich habe ehrlich gesagt keine Lust ein halbes Dutzend undokumentierter Erweiterungen von terminal42 zu installierten um an Daten im originalen UTF-8 Format zu kommen. Zudem möchte ich den "Composer" so lange es geht vermeiden.

    Meine Überlegung war:
    Die Daten waren ja schon mit "efg" korrekt in der Datenbank gespeichert. Da "leads" auch "PHP_Excel" zum Exportieren benutzt und es damit funktioniert muss der Fehler irgendwo bei der Übergabe der Datenbankeinträge an "PHP_Excel" liegen. Daraufhin habe ich die Module von "efg" mal durchforstet und bin in "ModuleFormdataListing.php" in den Zeilen 119 und 123 auf den Hinweis zu den $Globals" gestossen.

    Meine Einträge in der "dcaconfig.php":
    Code:
    // Put your custom configuration here
    
    // Diese Felder werden nicht gebraucht
    $GLOBALS['EFG']['exportIgnoreFields'] = 'id, sorting, fd_member, fd_user, fd_member_group, fd_user_group, published, alias, confirmationSent, confirmationDate, be_notes';
    // UTF8 Decode aus
    $GLOBALS['EFG']['exportUTF8Decode'] = false;
    // Codepage 65001 == UTF8
    $GLOBALS['EFG']['exportConvertToCharset'] = 'CP65001';
    XLSX-Dateien enthalten beim Öffnen zwar immer noch seltsame Zeichen, aber zumindest klappt der CSV-Export im UTF-8 Format. Beim Import in LibreOffice Calc wird die richtige Zeichensatz-Kodierung erkannt und die arabischen Zeichen sind sichtbar.

  9. #9
    Contao-Nutzer
    Registriert seit
    30.09.2012.
    Beiträge
    28

    Standard

    Moin Planepix,

    ich habe mir die Demo mal heruntergeladen und in meine lokale Testumgebung (Win 8.1 mit Xampp) installiert.

    Meine Erfahrungen damit:
    Beim ersten Klick auf den Composer hagelte es Fehlermeldungen.
    1. Fehlendes Zertifikat:
    Es fehlte wohl das nötige Zertifikat. Habe es heruntergeladen und nach C:\xampp\php\cacert.pem kopiert. In der "php.ini" den Eintrag "curl.cainfo=C:\xampp\php\cacert.pem" eingefügt und Apache neu gestartet. Immer noch Fehlermeldungen ...
    2. Composer war wohl nicht aktuell, aber Aktualisierung scheiterte
    Die Ursache war ein falscher Pfad zur php.exe. Eintrag unter "Einstellungen - Composer-Einstellungen" in "C:\xampp\php\php -d memory_limit=1G -d max_execution_time=900" geändert.
    Jetzt klappte die Aktualisierung und es kamen keine Fehlermeldungen mehr.

    Zum eigentlichen Formular in der Demo:
    Auf den ersten Blick eine einfache Lösung. Man braucht zum Speichern der Formulardaten nicht mehr "zu Fuß" eine eigene Tabelle anzulegen (aber das kann "efg" auch).
    Ich weiß jedoch nicht, ob ein Benutzer mit den richtigen Einträgen in der "Datensatz-Bezeichnung" klarkommt. Zudem muss bei jedem Formalfeld bei "In Anfrage speichern" der Wert auf "Ja" gestellt werden. Das könnte bei späteren Änderungen durch den Kunden evtl. vergessen werden.

    Was mir noch fehlt ist die Möglichkeit, beim Radio-Button-Menue die Werte und nicht die Bezeichnungen zu speichern. Das gewünschte Formular ist mehrsprachig und es sollen unabhängig von der Sprache die Feldwerte und nicht die Feldbezeichnungen gespeichert werden.
    Zudem konnte ich das in den Folien angepriesene mehrseitige Formaular nirgendwo finden. Beim aktuellen Projekt besteht das Formular aus 4 Seiten. 3 Seiten mit Fragen zu den Produkten (als Radio-Button-Menue) und 1 Seite mit Besucherdaten. Ich müsste dazu also ohnehin "efg" installieren. Mit "Umschlag-Anfang bzw. Umschlag-Ende" habe ich das leider nicht hinbekommen.

    Fazit:
    Der Composer ist mir im aktuellen Entwickungsstadium zu frickelig und die vom Kunden gewünschten Eigenschaften lassen sich mit dieser Lösung (noch) nicht verwirklichen.

  10. #10
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    6.470
    Partner-ID
    107
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo computius,

    besten Dank für deine detaillierte Antwort.
    Ich nutze die Erweiterungen alle ohne Composer und installiere diese manuell.

    Die Erweiterung Notification Center ist Bestandteil von Isotope, aber kann auch separat genutzt werden.
    Im Handbuch von Isotope gibt es da zu auch eine Dokumentation:
    https://isotopeecommerce.org/de/hand...gszentrum.html

    Siehe auch Posting dazu hier im Forum:
    https://community.contao.org/de/show...l=1#post379434
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Contao-Sprechstunde
    Contao Schulungen: https://www.weitzeldesign.com/cms-co...chulungen.html
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://app.gitbook.com/@planepix/s/...-mit-contao-4/
    Contao 4 & Manager Hosterhinweise: https://github.com/contao/contao-manager/wiki

    Schon wieder ein Update?
    Glücklich sind die, die den Wert erkennen – und wertschätzen.
    „Muss man machen wie beim Zahnarzt. Der bestraft einen auch mit hohen Rechnungen wenn man die Pflege vernachlässigt.”

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •