Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Backend: tl_member um textarea erweitert - Frontend: speichert HTML-Tags als Entities

  1. #1
    Contao-Nutzer Avatar von marq
    Registriert seit
    20.03.2010.
    Ort
    Göttingen
    Beiträge
    195
    User beschenken
    Wunschliste

    Standard Backend: tl_member um textarea erweitert - Frontend: speichert HTML-Tags als Entities

    Hallo,

    ich habe heute mal die tl_member um folgenden DCA erweitert:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['text'] = array 

        
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['text'], 
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'textarea',
        
    'eval'                    => array('rte'=>'tinyMCE','feEditable'=>true,'doNotSaveEmpty'=>false,'allowHtml'=>true),
        
    'sql'                     => "mediumtext NULL"
    ); 
    Zur Ausgabe und zum editieren benutze ich das Frontend-Modul: Personendaten.

    Ein Member soll in die neue Textarea HTML-Code einfügen und speichern dürfen.

    Nun ist es leider so, dass halt statt die HTML-Tags das ganze in HTML-Entities gespeichert wird.

    Beispiel Member schreib:
    Code:
    <p>Hallo das ist ein Test</p>
    Gespeichert wird:
    Code:
    &lt;p&gt;Hallo das ist ein Test&lt;/p&gt;
    Hat jemand eine Idee? (preserveTags habe ich auch getestet, Ergebnis ist gleich).

  2. #2
    Contao-Nutzer Avatar von marq
    Registriert seit
    20.03.2010.
    Ort
    Göttingen
    Beiträge
    195
    User beschenken
    Wunschliste

    Standard

    Lösungsansatz

    Ich habe das ganze jetzt erst einmal so gelöst, dass ich halt ein neues Template member_default angelegt habe und dort

    PHP-Code:
            <?=$this->fields?>
    durch:

    PHP-Code:
            <?php
            preg_match_all
    ("#cols=\"8\">(.*?)</textarea>#s"$this->fields$array);  
            
    str_replace($array[1][0], html_entity_decode($array[1][0]), $this->fields);
            
    ?>
    ersetzt habe.

    Die Ausgabe (gerade auch in Verbindung mit TinyMCE im Frontend) funktioniert jetzt, nichts desto trotz werden die Daten weiterhin falsch in der Datenbank abgespeichert und die meisten evals aus dem DCA ignoriert.

  3. #3
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Standard

    Hi marq,

    hast Du schon einmal versucht im dca folgendes zu setzen:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['text']['eval']['decodeEntities'] = false
    Details findest Du unter: https://docs.contao.org/books/api/dc...tml#evaluation
    Viele Grüße,
    eS_IT
    --
    e@sy Solutions IT - Ihr Partner für professionelle Softwareentwicklung
    Website - Contao Codebook - Partnerprofil - GitHub

  4. #4
    Contao-Fan Avatar von mdoll
    Registriert seit
    25.06.2009.
    Ort
    Wietze
    Beiträge
    334

    Standard

    Hi marq,

    hast Du eine Lösung gefunden? Ich habe gerade dasselbe Problem.

    Habe ebenfalls die tl_member um eine Textarea erweitert. Im Backend kann ich die auch wie gewünscht mit dem TinyMCE befüllen und alles wird korrekt abgespeichert. Im Frontend halt nicht. allowHTML, preserveTags und decodeEntities haben keine Abhilfe geschaffen.

    Und noch eine Frage. Wie hast Du den tinyMCE ins Frontend bekommen?

    Danke und Gruß
    Mathias
    “Ah," said Mr Pin. "Right. I remember. You are concerned citizens." He knew about concerned citizens. Wherever they were, they all spoke the same private language, where 'traditional values' meant 'hang someone'.”
    ― Terry Pratchett, The Truth

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
  •