Ergebnis 1 bis 12 von 12

Thema: HTML-Tags in Event Headline/Titel

  1. #1
    Contao-Nutzer Avatar von btosh
    Registriert seit
    11.12.2015.
    Beiträge
    58

    Standard HTML-Tags in Event Headline/Titel

    Hallo,

    in der dcaconfig-Datei habe ich die Nutzung von HTML-Tags für den Titel der Events (tl_calendar_events) erlaubt.

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['title']['eval']['allowHtml'] = true
    In der Übersicht (mod_eventlist) funktioniert es im Teaser auch super, da hier die Headline auch als Link übergeben wird:
    PHP-Code:
    <?= $this->link ?>
    Wenn es hier keine Details gibt, entsteht der gleiche Fehler, wie auf der Detailsseite. Denn die Headline wird über den Titel definiert:
    PHP-Code:
    <?= $this->title ?>
    Auf der Detailsseite des Events (mod_eventreader) wird die Headline auch wie folgt dargestellt:
    PHP-Code:
    <h1><?= $this->title ?></h1>
    Meine Frage: Woran liegt es, dass das HTML-Tag (<strong>) schon als Text dargestellt wird, die Formatierung aber nicht stattfindet.
    Muss ich in der dcaconfig etwas ändern?

    Danke schon mal für Eure Hilfe!

  2. #2
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.862
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo

    probier mal

    Code:
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['title']['eval']['preserveTags'] = true;
    Grüsse
    Bernhard


  3. #3
    Contao-Nutzer Avatar von btosh
    Registriert seit
    11.12.2015.
    Beiträge
    58

    Standard

    Hallo Bernhard,

    vielen Dank für deine Antwort. Leider entsteht hier das gleiche Ergebnis.
    Die HTML-Tags bleiben erhalten, werden im Frontend ausgegeben, aber nicht als HTML erkannt.

    HTML-Code:
    <h1><strong>Hervorgehobener Text</strong> und Rest der Headline</h1>
    Alles innerhalb der H1 wird als Text ausgegeben.
    Hast du noch eine andere Idee?

    Gruß
    Stefan

  4. #4
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    allowHtml reicht aus, aber du musst $this->link benutzen. $this->title wird auch für das TITLE-Attribute benutzt, wo keine Tags erlaubt sind, und deswegen wird dort specialchars() angewendet.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  5. #5
    Contao-Nutzer Avatar von btosh
    Registriert seit
    11.12.2015.
    Beiträge
    58

    Standard

    Hallo Andreas,

    danke für Deine Antwort!
    Mir ist gerade aufgefallen, dass ich es auch genau so schon mal ausprobiert hatte. Im Frontend wird aber der Link nicht ausgegeben.
    Code im Template ist wie folgt:

    PHP-Code:
    <h1><?= $this->link ?></h1>
    Im Frontend ist der Bereich zwischen den H1-Tags leer.
    Hast Du eine Idee woran das liegen könnte?

    Danke!

    Stefan

  6. #6
    Contao-Nutzer Avatar von btosh
    Registriert seit
    11.12.2015.
    Beiträge
    58

    Standard

    Habe es jetzt wie folgt gelöst. Wenn Jemand Verbesserungsvorschläge hat, gerne her damit.
    Da ich eine Buchnavigation im event_full-Template eingebaut habe, habe ich deren Code einfach adaptiert.

    PHP-Code:
    <?php

    $objCurrentEvent 
    = \CalendarEventsModel::findOneBy(
      array(
    "startDate = ?""published = '1'""pid = ?"), 
      array(
    $this->startDate$this->pid), 
      array(
    'order' => 'startDate DESC'));

    ?>

    <h1><?= $objCurrentEvent->title ?></h1>

  7. #7
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das brauchst du nicht. Du musst unterscheiden zwischen der Liste und dem Leser. In der Liste kannst du ->link und im Leser kannst du ->title benutzen.

    Dadurch, dass in der Liste und im Leser die gleichen Templates angeboten werden, kann man schnell denken, dass man die gleich behandeln kann, aber es sind ja zwei verschiedene Module, welche auch unterschiedliche Variablen anbieten.

    Beachte auch, dass ein erneutes Speichern des Events den Titel mit den Tags nicht neu in der DB speichert. Du musst dort erst eine Änderung vornehmen. Sonst kannst du bei deinen Tests mit allowHtml schnell mal aufs Glatteis geführt werden.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  8. #8
    Contao-Nutzer Avatar von btosh
    Registriert seit
    11.12.2015.
    Beiträge
    58

    Standard

    Hallo Andreas,

    danke für Deine Antwort und entschuldige, dass wir noch 'ne Runde fahren müssen.
    Ich benutze zwei Templates für die Eventdarstellung:

    • Den Teaser event_teaser.html5 in der Eventliste
    • Den ganzen Event event_full.html5 im Eventleser


    Für den Teaser reicht die Änderung in der dca_config.php aus und ich kann
    PHP-Code:
    <?= $this->title ?>
    benutzen.
    Bei dem Eventleser geht weder
    PHP-Code:
    <?= $this->title ?>
    noch
    PHP-Code:
    <?= $this->link ?>
    .
    Bei Link bleibt die Ausgabe leer. Und bei Title werden die HTML-Tags als Text ausgegeben.

    Ich habe jetzt nicht verstanden, was ich deiner Meinung nach machen soll? Pardon.

  9. #9
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Erstmal sind die Templates irrelevant, die Namen sind ja frei erfunden. Du solltest nicht von Teaser oder so sprechen, es geht nur um Eventliste oder Eventleser.

    ->link hatte bei meinen Tests mit der Liste und ->title beim Leser funktioniert.

    Lass die dir Variablen mit
    PHP-Code:
    $this->showTemplateVars(); 
    ausgeben.

    Stelle vorher auch sicher, dass der Titel korrekt im Feld tl_calendar_events.title gespeichert ist. Z.B. mit phpMyAdmin nachsehen, oder mit HeidiSQL o.ä.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  10. #10
    Contao-Fan Avatar von jenda
    Registriert seit
    20.06.2009.
    Ort
    Berlin
    Beiträge
    494

    Standard

    Hallo, hast du eine Lösung? Bei mir funktioniert das auch nur bei der Liste, aber nicht bei dem Leser.

    Ich habe folgende Sachen in dcaconfig.php

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['fields']['headline']['eval']['allowHTML'] = true;
    $GLOBALS['TL_DCA']['tl_content']['fields']['headline']['eval']['preserveTags'] = true;

    $GLOBALS['TL_DCA']['tl_calendar']['fields']['title']['eval']['allowHtml'] = true;
    $GLOBALS['TL_DCA']['tl_calendar']['fields']['headline']['eval']['allowHtml'] = true
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['title']['eval']['allowHtml'] = true;  
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['headline']['eval']['allowHtml'] = true;

    $GLOBALS['TL_DCA']['tl_calendar']['fields']['title']['eval']['preserveTags'] = true
    $GLOBALS['TL_DCA']['tl_calendar']['fields']['headline']['eval']['preserveTags'] = true
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['title']['eval']['preserveTags'] = true;  
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['headline']['eval']['preserveTags'] = true
    In der Datenbank ist alles richtig eingetragen.

  11. #11
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich hab's mir nochmal angesehen, und obwohl ich in meinem Post #9 damals Erfolg mit ->title im Event-Leser hatte, muss ich jetzt feststellen, dass dies nicht stimmt. Die Variable mit dem reinen Inhalt des Feldes tl_calendar_events.title ist jetzt bei meinen Tests als Variable nicht verfügbar. Ich denke ich werde das als Ticket eröffnen.

    Hier die Lösung bis dahin. Entweder:
    PHP-Code:
    ALT
      <h1><?= $this->title ?></h1>

    NEU
      <h1><?= htmlspecialchars_decode($this->title?></h1>

    ODER
      <h1><?= \CalendarEventsModel::findById($this->id)->title ?></h1>
    @jenda
    Die einzige Zeile die du brauchst ist diese hier.
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['title']['eval']['allowHtml'] = true
    Zitat Zitat von btosh Beitrag anzeigen
    Wenn Jemand Verbesserungsvorschläge hat, gerne her damit.
    Der zweite Vorschlag von oben wäre der Verbesserungsvorschlag, du kannst natürlich auch den ersten Vorschlag benutzen.

    Nicht vergessen während der Tests den internen Cache zu deaktivieren.

    Ticket: https://github.com/contao/core/issues/8496
    Geändert von Andreas (21.09.2016 um 00:32 Uhr)
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  12. #12
    Contao-Fan Avatar von jenda
    Registriert seit
    20.06.2009.
    Ort
    Berlin
    Beiträge
    494

    Standard

    Vielen Dank für deine Mühe. Ich dachte auch schon, dass ich es auf Github vorschlagen werde, weil ich überall gesehen hatte, dass es nicht ohne zusätzliche PHP-Anweisung funktioniert. Hoffentlich werden das die Contao-Entwickler bald umsetzen. Sowieso finde ich, dass der Kalender mehr vernachlässig als die Nachrichten wird. Bei Kalender fehlen ein paar Funktionen, die bereits bei Nachrichten laufen und die ich sehr wichtig finde - wie Eventzähler, um z.B. Events in Spalten darstellen zu lassen.

    Mach es gut.

    Jan

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
  •