Ergebnis 1 bis 17 von 17

Thema: Contao 5.3 Accordion HTML in Überschirften erlauben

  1. #1
    Alter Contao-Hase
    Registriert seit
    12.10.2010.
    Beiträge
    1.122

    Standard Contao 5.3 Accordion HTML in Überschirften erlauben

    Hi Leute,

    wie lassen sich in der neuen Contao 5.3 Accordion-Version HTML in der Bereichsüberschrift eines Accordions umsetzen?

  2. #2
    Contao-Urgestein
    Registriert seit
    24.02.2021.
    Beiträge
    1.792
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Beim Lesen deiner Nachricht muss ich schon anfangen zu überlegen was du meinst.
    Magst du mal genau erklären was du vorhast? Gerne mit Beispielen und Screenshots.

  3. #3
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    7.624
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wenn ich Dich richtig verstehe, dann dürfte Dir prinzipiell der Beitrag weiterhelfen https://contao-academy.de/blog/html-...iften-zulassen.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  4. #4
    Alter Contao-Hase
    Registriert seit
    12.10.2010.
    Beiträge
    1.122

    Standard

    Gerne mit Beispielen und Screenshots.
    Unbenannt-3.jpg

    Das HTML wir nicht umgesetzt..


    Wenn ich Dich richtig verstehe, dann dürfte Dir prinzipiell der Beitrag weiterhelfen https://contao-academy.de/blog/html-...iften-zulassen.
    In den Einstellungen:

    Unbenannt-5.jpg


    in der contao/dca/tl_content.php
    PHP-Code:
    <?php

    /* HTML in Überschriften zulassen */
    $GLOBALS['TL_DCA']['tl_content']['fields']['headline']['eval']['allowHtml'] = true;
    und im Template _headline.html.twig wurde das hier eingefügt:
    PHP-Code:
    {% block headline_inner %}     
        {{ 
    headline.text|insert_tag_raw|raw }}
    {% 
    endblock %} 
    Aber in den Inhaltselement Accordion > Bereichsüberschriften wird das HTML in Überschriften nicht umgesetzt..

  5. #5
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    7.624
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Symfony Cache gelehrt?
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  6. #6
    Contao-Fan
    Registriert seit
    10.11.2010.
    Beiträge
    505

    Standard

    Ich klinke mich hier mal ein, da es scheinbar nicht wie funktioniert. Auch ich würde gerne html, z. B. <span> in der Überschrift des Accordions (Verschiedenes -> Accordion) nutzen.

    Contao 5.3.54

    Unter Layout -> Templates das Template _headline.html.twig

    Code:
    {% use "@Contao/component/_headline.html.twig" %}
    
    {# Der Block headline_inner wird um die nötigen Filter ergänzt. #}
    {% block headline_inner %}     
        {{ headline.text|insert_tag_raw|raw }}
    {% endblock %}
    Ordner mit Datei erstellt /contao/dca/tl_content.php:
    Code:
    <?php
    
    /* HTML in Überschriften */
    $GLOBALS['TL_DCA']['tl_content']['fields']['headline']['eval']['allowHtml'] = true;
    Symphony Cache erneuert. Accordion-Element neu angelegt. <span>test</span> wird im Frontend mit angezeigt.
    Bei "normalen" Überschriften funktioniert es allerdings.

    Wo ist der Fehler?

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

    Standard

    Welche Überschrift meinst du in diesem Fall?
    » sponsor me via GitHub or Revolut

  8. #8
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    7.624
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Falls Du den Toggler des Accordions meinst, schaut mal in Deinen Code. Standardmäßig sind das keine Überschriften.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




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

    Standard

    Wenn du die "Bereichsüberschrift" meinst, dann wäre das im DCA das Feld sectionHeadline und nicht headline.

    Und dazu musst du dann den element_header Block im Template content_element/accordion.html.twig anpassen, und nicht das component/_headline.html.twig Template.
    » sponsor me via GitHub or Revolut

  10. #10
    Contao-Fan
    Registriert seit
    10.11.2010.
    Beiträge
    505

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Wenn du die "Bereichsüberschrift" meinst, dann wäre das im DCA das Feld sectionHeadline und nicht headline.

    Und dazu musst du dann den element_header Block im Template content_element/accordion.html.twig anpassen, und nicht das component/_headline.html.twig Template.
    Ja genau, ich meine die Bereichsüberschrift. Ausgegeben wird das als h3-button ->

    Code:
    <h3 class="handorgel__header" id="handorgel1-fold1-header">
    <button class="handorgel__header__button" type="button" aria-controls="handorgel1-fold1-content" aria-expanded="false" aria-disabled="false">Bereichsüberschrift</button>
    </h3>
    Kannst Du mir bitte sagen, was in das Template gehört, damit er das entsprechend erlaubt?

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

    Support Contao

    Standard

    Ich weiss nicht, ob das ein korrekter Weg ist ... aber mit einem Twig-Filter lässt sich dies ebenfalls lösen:

    Twig-Filter erstellen:
    PHP-Code:
    <?php 

    // src/Twig/HtmlDecodeExtension.php

    namespace App\Twig;

    use 
    Twig\Extension\AbstractExtension;
    use 
    Twig\TwigFilter;

    class 
    HtmlDecodeExtension extends AbstractExtension
    {
        public function 
    getFilters(): array
        {
            return [
                new 
    TwigFilter('html_decode'fn ($s) => html_entity_decode((string) $sENT_QUOTES ENT_HTML5'UTF-8')),
            ];
        }
    }
    und das Accordion-Twig anpassen:
    Code:
    {% extends "@Contao/content_element/accordion.html.twig" %}
    
    {% block element_header %}
        {% set accordion_header_attributes = attrs()
            .addClass('handorgel__header')
            .mergeWith(accordion_header_attributes|default)
        %}
        <{{ element.header_tag }}{{ accordion_header_attributes }}>
            {% set accordion_header_button_attributes = attrs()
                .addClass('handorgel__header__button')
                .set('type', 'button')
                .mergeWith(accordion_header_button_attributes|default)
            %}
            <button{{ accordion_header_button_attributes }}>
                {{- element.header|html_decode|raw -}}
            </button>
        </{{ element.header_tag }}>
    {% endblock %}
    wobei hier dann bei {{- element.header|html_decode|raw -}} der vorher erstellt Filter Anwendung findet.
    Grüsse
    Bernhard


  12. #12
    Contao-Fan
    Registriert seit
    10.11.2010.
    Beiträge
    505

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Wenn du die "Bereichsüberschrift" meinst, dann wäre das im DCA das Feld sectionHeadline und nicht headline.

    Und dazu musst du dann den element_header Block im Template content_element/accordion.html.twig anpassen, und nicht das component/_headline.html.twig Template.
    Danke DerRenner, aber ich denke es muss auch direkt gehen. So ist mein Ansatz, der will aber nicht greifen. Vielleicht sieht ja jemand einen Fehler?

    Code:
    {% extends "@Contao/content_element/accordion.html.twig" %}
    
    {% block element %}
    
    {# Nur die Header-Ausgabe überschreiben #}
    {% block element_header %}
        {% set accordion_header_attributes = attrs()
            .addClass('handorgel__header')
            .mergeWith(accordion_header_attributes|default)
        %}
        <{{ element.header_tag }}{{ accordion_header_attributes }}>
            {% set accordion_header_button_attributes = attrs()
                .addClass('handorgel__header__button')
                .set('type', 'button')
                .mergeWith(accordion_header_button_attributes|default)
            %}
            <button{{ accordion_header_button_attributes }}>
                {{ element.header|raw }}
            </button>
        </{{ element.header_tag }}>
    {% endblock %}

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

    Standard

    Das DCA musst du auch anpassen.
    » sponsor me via GitHub or Revolut

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

    Support Contao

    Standard

    Zitat Zitat von Dublay Beitrag anzeigen
    Vielleicht sieht ja jemand einen Fehler?
    Code:
    ...
    
    {% block element %}
    
    ...
    das dürfte zuviel sein
    Grüsse
    Bernhard


  15. #15
    Contao-Fan
    Registriert seit
    10.11.2010.
    Beiträge
    505

    Standard

    Das DCA hatte ich tatsächlich vergessen. Jetzt ist HTML im Accordion-Trigger erlaubt. Danke Euch!

  16. #16
    Contao-Nutzer
    Registriert seit
    29.09.2014.
    Beiträge
    112

    Standard

    Zitat Zitat von Dublay Beitrag anzeigen
    Das DCA hatte ich tatsächlich vergessen.
    Magst du auch noch mitteilen, wie genau diese DCA-Anpassung durchgeführt wurde. Also, welche Datei in contao/dca anlegen und welchen Code dort eingeben. Vielen Dank. Dann ist die Hilfe hier rund und abschließend.

  17. #17
    Contao-Nutzer
    Registriert seit
    29.09.2014.
    Beiträge
    112

    Standard

    Nach ein wenig Recherche bin ich nun fündig geworden. Zusammenfassend die gesamte Lösung erklärt:

    Template anlegen: content_element/accordion.html.twig

    HTML-Code:
    {% extends "@Contao/content_element/accordion.html.twig" %}
    
    {% block element_header %}
        {% set accordion_header_attributes = attrs()
            .addClass('handorgel__header')
            .mergeWith(accordion_header_attributes|default)
        %}
        <{{ element.header_tag }}{{ accordion_header_attributes }}>
            {% set accordion_header_button_attributes = attrs()
                .addClass('handorgel__header__button')
                .set('type', 'button')
                .mergeWith(accordion_header_button_attributes|default)
            %}
            <button{{ accordion_header_button_attributes }}>
                {{- element.header|raw -}}
            </button>
        </{{ element.header_tag }}>
    {% endblock %}
    Hier wurde lediglich folgende Änderung vorgenommen: {{- element.header|raw -}}
    Der Rest etspricht der Vorlage: https://github.com/contao/contao/blo...dion.html.twig

    Im Anschluss /contao/dca/tl_content.php anlegen bzw. ergänzen:
    PHP-Code:
    <?php

    // contao/dca/tl_content.php
    $GLOBALS['TL_DCA']['tl_content']['fields']['sectionHeadline']['eval']['allowHtml'] = true;
    Sofern die Anpassung für sonstige Überschriften bereits vorgenommen wurde, so müsste die Zeile
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['fields']['headline']['eval']['allowHtml'] = true
    bereits vorhanden sein.

    Das sectionHeadline konnte ich mir aus der SQL-Datenbank raussuchen.

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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