Ergebnis 1 bis 8 von 8

Thema: Twig Template YouTube für Consent Manager

  1. #1
    Contao-Nutzer
    Registriert seit
    11.05.2010.
    Beiträge
    24

    Frage Twig Template YouTube für Consent Manager

    Vor dem Update auf 5.3 hatte ich folgenden HTML-Code für YouTube Videos:

    HTML-Code:
    <div class="ce_youtube block">
    <figure class="video_container">
    <div class="responsive ratio-169">
    <iframe width="640" height="360" data-name="youtube" data-src="https://www.youtube.com/embed/XYZ" allow="autoplay; encrypted-media; picture-in-picture; fullscreen" allowfullscreen></iframe>
    </div>
    </figure>
    </div>
    Der Consent Manager hat dabei den Inhalt blockiert, bis der Benutzer zugestimmt hatte. Deshalb war die Quelle im Attribut data-src.

    Wie kann ich das im TWIG-Template von Contao 5.3 umsetzen?

    Ich habe bereits folgendes probiert, ohne eine Änderung zu sehen:

    Code:
    templates/content_element/youtube.html.twig
    {% extends "@Contao/content_element/youtube.html.twig" %}
    
    {#
      ** Add changes to the base template here. **
    
      Hint: Try adjusting blocks and attributes instead of
      overwriting the whole template. This way your version
      can remain compatible with future changes to the base
      template as well as adjustments made by extensions.
    
      Currently available blocks:
        "splash_screen_text", "splash_screen_component",
        "splash_screen_button_content",
        "splash_screen_content", "splash_screen_script",
        "picture_component", "image", "sources", "source",
        "schema_org", "content", "iframe",
        "video_caption", "headline_component",
        "headline_attributes", "headline_inner",
        "wrapper", "wrapper_tag", "attributes", "inner",
        "metadata", "style", "script"
    
      Example:
        {% block splash_screen_text %}
           {{ parent() }}
           My additional content for 'splash_screen_text'…
        {% endblock %}
    #}
    
    {% set iframe_attrs = attrs()
        .set('allow', 'autoplay; encrypted-media; picture-in-picture; fullscreen')
        .set('data-name', 'youtube')
        .mergeWith(iframe_attrs|default)
    %}

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

    Standard

    Die iframe_attrs kannst du nur im iframe block setzen. Aber das wird dir nichts nützen, weil du ja auch das "src" Attribut entfernen willst, ich bin mir nicht sicher ob das möglich ist. Du könntest aber einfach den gesamten iframe block überschreiben:
    PHP-Code:
    {% block iframe %}
        {% 
    set iframe_attrs attrs({widthheightallowfullscreentrue})
            .
    set('data-src'source.url)
            .
    set('data-name''youtube')
            .
    setIfExists('title'title|default)
            .
    mergeWith(iframe_attrs|default)
        %}
        {% do 
    csp_source('frame-src'iframe_attrs.src) %}
        <
    iframe{{ iframe_attrs }}></iframe>
    {% 
    endblock %} 
    » sponsor me via GitHub or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    11.05.2010.
    Beiträge
    24

    Standard

    Danke schon mal, aber wenn ich das in das Template im Backend schreibe wird das nicht im Frontend übernommen.

    Das steht jetzt im Template:

    PHP-Code:
    {% extends "@Contao/content_element/youtube.html.twig" %}

    {% 
    block iframe %}
        {% 
    set iframe_attrs attrs({widthheightallowfullscreentrue})
            .
    set('data-src'source.url)
            .
    set('data-name''youtube')
            .
    set('allow''autoplay; encrypted-media; picture-in-picture; fullscreen')
            .
    setIfExists('title'title|default)
            .
    mergeWith(iframe_attrs|default)
        %}
        {% do 
    csp_source('frame-src'iframe_attrs.src) %}
        <
    iframe{{ iframe_attrs }}></iframe>
    {% 
    endblock %} 

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

    Standard

    Applikationscache danach neu aufgebaut?
    » sponsor me via GitHub or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    11.05.2010.
    Beiträge
    24

    Standard

    Lag am Cache, danach trat ein Fehler auf den ich beheben konnte indem ich folgende Zeile ausbesserte:
    PHP-Code:
      {% do csp_source('frame-src'iframe_attrs.data-src) %} 

  6. #6
    Contao-Nutzer
    Registriert seit
    11.05.2010.
    Beiträge
    24

    Standard

    HTML-Code:
    <div class="content-youtube">
    <figure class="aspect aspect--16:9">
    <iframe width height allowfullscreen data-src="https://www.youtube.com/embed/XYZ" data-name="youtube" allow="autoplay; encrypted-media; picture-in-picture; fullscreen"></iframe>
    </figure>
    Ein Problem habe ich noch gefunden. Die Klasse aspect--16:9 kann ich im CSS nicht ansprechen, da es durch den : ungültig ist.
    Kann man da irgendwie machen, dass wie früher aspect-169 steht? Ohne den Doppelpunkt?

    Ich finde gerade das Original-Template nicht und kann nicht nachschauen, ob ich selbst drauf komme. In welchem Ordner befindet sich das?

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

    Standard

    Zitat Zitat von Matt Beitrag anzeigen
    Ein Problem habe ich noch gefunden. Die Klasse aspect--16:9 kann ich im CSS nicht ansprechen, da es durch den : ungültig ist.
    Ungültig ist die CSS Klasse nicht - aber du musst den Doppelpunkt in deinem Stylesheet escapen:
    Code:
    .aspect--16\:9 {
    
    }
    Öffne dazu aber ein Ticket auf GitHub, evt. sollte man das vielleicht im Core ändern, damit man das nicht jedes mal berücksichtigen muss.
    » sponsor me via GitHub or Revolut

  8. #8
    Contao-Nutzer
    Registriert seit
    11.05.2010.
    Beiträge
    24

    Standard

    Ok ich öffne ein Ticket auf Github, ich habe die Klasse angepasst:

    PHP-Code:
    {% set video_attributes attrs()
            .
    addClass('ratio-' aspect_ratio|replace({':'''}), aspect_ratio)
            .
    mergeWith(video_attributes|default)
        %} 

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
  •