Contao-Camp 2024
Ergebnis 1 bis 9 von 9

Thema: Listing-Modul, CSV-Datei vorbereiten und Bilder ausgeben

  1. #1
    Contao-Fan
    Registriert seit
    05.05.2011.
    Beiträge
    860

    Standard Listing-Modul, CSV-Datei vorbereiten und Bilder ausgeben

    Für die Ausgabe einer umfangreichen CSV-Datei ist das Listing-Modul eine sehr gute Core-Erweiterung und besser geeignet als ein simpler Import einer solchen Datei in das Content-Element Tabelle (siehe diesen Thread).

    Aktuell kämpfe ich allerdings noch an zwei Stellen:

    1. Damit die CSV-Datei via PHPMyAdmin korrekt eingelesen wird, dürfen bei mir die ersten Zeilen keine Sonder- und/oder Leerzeichen enthalten; "EAN-/ GTIN Code" oder "Artikel Beschreibung" funktionieren nicht, aber "EAN_GTIN_Code" und "Artikel_Beschreibung". Gibt es eine Möglichkeit Sonder- und/oder Leerzeichen für die Spaltenüberschriften zuzulassen, damit das im Frontend etwas lesbarer aussieht?

    2. Meine CSV-Datei enthält Spalten mit eindeutigen Bildateinamen wie z.B. 12345.jpg. Diese Bilder würde ich gerne im Frontend innerhalb der Tabelle ausgeben*, das heißt der Zelleninhalt "12345.jpg" müsste geändert werden in beispielsweise "{{image::files/12345.jpg?width=200&height=150}}" Was wäre hier der richtige Weg (PHP, JavaScript)? Die Anpassung des Templates dürfte nicht ganz marginal sein so dass ich das evtl. als kleinen Auftrag hier einstellen sollte?


    Danke für eure Tipps und Hinweise


    *
    Für die funktionierende Ausgabe von HTML in Tabellen habe ich bereits im Ordner app/Resources/contao/dca eine Datei tl_content.php mit diesem Inhalt angelegt:
    PHP-Code:
    <?php

    /* HTML in Tabellen */
    $GLOBALS['TL_DCA']['tl_content']['fields']['table']['eval']['allowHtml'] = true;
    Auch wichtig:
    wenn die zu importierende CSV-Datei keine Spaltenüberschrift mit Namen id hat, muss eine solche Spalte nach dem Import angelegt werden, Typ: Integer, Häkchen bei Auto_Increment nicht vergessen.
    Geändert von 3dr (16.11.2020 um 18:12 Uhr)

  2. #2
    Contao-Fan
    Registriert seit
    05.05.2011.
    Beiträge
    860

    Standard

    Für mein oben unter 1. beschriebenes Problem habe ich jetzt diesen SQL-Befehl gefunden:
    Code:
    SELECT aktueller Spaltenüberschriftsname AS neuer-AliasSpaltenUeberschriftName
    FROM meinTabellenName;
    Verstehe ich das richtig, dass dieser Befehl direkt beim CSV-Import mitgegeben werde muss und könnte die zweite Zeile der CSV-Tabelle die gewünschten Aliase enthalten, die dann verwendet werden?

  3. #3
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.939

    Standard

    Zitat Zitat von 3dr Beitrag anzeigen
    Verstehe ich das richtig, dass dieser Befehl direkt beim CSV-Import mitgegeben werde muss und könnte die zweite Zeile der CSV-Tabelle die gewünschten Aliase enthalten, die dann verwendet werden?
    Nein. das ist eine SQL Abfrage von Daten, die bereits in einer Datenbank stehen. Das hat mit Datenimport nichts zu tun.

    Ich denke, Du vermischt Spaltennamen und Bezeichnungen von (Labels für) Spalten bei der Ausgabe.

    Für Dein Problem könnte es helfen, den Spalten kurze Namen geben, mit denen auch die Datenbank glücklich wird. Z.B. „beschreibung“ anstelle "Artikel Beschreibung" und dann im Listing Modul bei den anzuzeigenden Spalten etwas wie

    Code:
    beschreibung AS "Artikel Beschreibung"
    zu verwenden. Ich bin mir nicht sicher, ob das so geht, denn dafür ist AS nicht unbedingt gedacht, aber probiere es einfach mal aus.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  4. #4
    Contao-Fan
    Registriert seit
    05.05.2011.
    Beiträge
    860

    Standard

    aha, vielen Dank, das probiere ich aus!

  5. #5
    Contao-Fan
    Registriert seit
    05.05.2011.
    Beiträge
    860

    Standard

    das funktioniert leider nicht, die Eingabe wird einfach im FE ausgegeben, schade. Trotzdem Danke

    Jedoch habe ich Spaltenüberschriften wie EAN-GTIN-Code, die wegen der Bindestriche Probleme machen, eine Ausgabe als EAN_GTIN_Code oder EANGTINCode funktioniert, ist aber natürlich nicht gut lesbar; was könnte ich noch versuchen?

  6. #6
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.939

    Standard

    Du könntest ein individuelles angepasstes Template für das Modul erstellen und dort den PHP-Code für die Ausgabe der Spaltennamen entfernen und die gewünschten Namen direkt als HTML-Code angeben.

    Ist halt sehr sehr quick and dirty, da es bei einer Abänderung im Modul nicht mehr passen würde.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  7. #7
    Contao-Fan
    Registriert seit
    05.05.2011.
    Beiträge
    860

    Standard

    @fiedsch,
    danke dir und ja, eine Templateanpassung wie von dir beschrieben würde mir reichen. Für meine unter 2. genannte Herausforderung des Änderns von mehreren tausend Zellinhalten zur Anzeige der eingetragenen Bilddateien ist eine Templateänderung wahrscheinlich auch die beste Wahl. Alternativ könnte ich natürlich versuchen die CSV-Datei lokal anzupassen, aber das fühlt sich irgendwie direkt falsch an. Ansonsten wäre es vielleicht eine Option via Javascript diese Inhalte zu ändern?

    Welches Vorgehen würdet ihr für meine zweite Anforderungen empfehlen? Danke für Tipps und Hinweise
    Geändert von 3dr (15.11.2020 um 22:26 Uhr)

  8. #8
    Contao-Fan
    Registriert seit
    05.05.2011.
    Beiträge
    860

    Standard

    Für meine unter 1. beschriebene Anforderung habe ich für mich diese JavaScript-Lösung gefunden:
    Code:
    window.onload = function() {
    	'use strict'
    const changes = { 
      "vorhandene_spaltenueberschrift": "Neue lesbarere Spaltenüberschrift", 
      "vorhandene_andere-spaltenueberschrift": "Neue andere Spaltenüberschrift, auch besser lesbar" 
    };
    
    [...document.querySelectorAll("th")]
    .forEach(th => {
      const text = changes[th.textContent];
      if (text) th.textContent = text;
    });
    };
    Falls das jemand brauchen oder verbessern kann, gerne
    Geändert von 3dr (20.11.2020 um 20:38 Uhr)

  9. #9
    Contao-Fan
    Registriert seit
    05.05.2011.
    Beiträge
    860

    Standard

    Da ich mit meinem unter 2. beschriebenem Problem nicht weiterkomme, habe ich das jetzt als Kleinstauftrag eingestellt.

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
  •