Ergebnis 1 bis 20 von 20

Thema: Layout Twig Contao 5.6: Einbinden von CSS/JS-Files

  1. #1
    Contao-Nutzer
    Registriert seit
    06.01.2014.
    Beiträge
    36

    Standard Layout Twig Contao 5.6: Einbinden von CSS/JS-Files

    Mit dem Erscheinen von Contao 5.6 machte ich mich nun einige Stunden hinter das Layout mit dem default.html.twig.
    Während die Einrichtung zusätzlicher Slots fehlerfrei klappte, gelingt es mir trotz diversen Versuchen und Recherchen nicht, CSS-Stylesheets einzubinden.
    Ich habe das praktische Template Studio benutzt und bin insbesondere nach der Entwickler-Dokumentation vorgegangen (Reference>Twig>Tags>add), Fehlermeldung im Template Studio gibt es keine, aber trotz Neuaufbau des Cache und Leeren des Browsercaches wird die CSS-Datei einfach nicht eingebunden. Auch mit js und zum Beispiel 'content' schaffe ich es nicht.
    Vermutlich stehe ich irgendwo auf dem Schlauch...

    Code:
    {% extends "@Contao/layout/default.html.twig" %}
    
    {#
        Adjust how any blocks of parent or used component templates are rendered.
        Try typing "block" or "use" to get autocompletion for available options.
    #}
    {% use "@Contao/component/_stylesheet.html.twig" %}
    {% block head %}
        {{ parent() }}
        {# Adds a stylesheet #}
    {% add "style" to stylesheets %}
        {% with {file: asset('files/css/style.css')} %}
            {{ block('stylesheet_component') }}
        {% endwith %}
    {% endadd %}
    {% endblock %}

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

    Standard

    Dieses neue Feature ist noch experimentell.

    Verwendest du für deine Assets so etwas wie Webpack?
    » sponsor me via GitHub or Revolut

  3. #3
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.515
    Partner-ID
    6122

    Standard

    An den Vorgehensweisen & bez. möglicher Optimierungen wird gearbeitet:
    s.a.: https://github.com/contao/contao/issues/8705
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  4. #4
    Contao-Nutzer
    Registriert seit
    06.01.2014.
    Beiträge
    36

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Dieses neue Feature ist noch experimentell.

    Verwendest du für deine Assets so etwas wie Webpack?
    Nein, ich habe mich an einer nativen Neuinstallation meine ersten Versuche mit dem layout twig gemacht.

  5. #5
    Contao-Nutzer
    Registriert seit
    06.01.2014.
    Beiträge
    36

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    An den Vorgehensweisen & bez. möglicher Optimierungen wird gearbeitet:
    s.a.: https://github.com/contao/contao/issues/8705
    Zitat Zitat von Spooky Beitrag anzeigen
    Dieses neue Feature ist noch experimentell.
    Alles klar, werde mich noch etwas in Geduld üben.
    Schön wäre natürlich, wenn in Zukunft solche Basis-Anpassungen wie bisher bei fe_page vom Backend her steuerbar wären und so ebenfalls wie bisher nur "ausserordentliche" Veränderungen am Layout der manuellen Einträge bedürfte. Aber ich gehe davon aus, dass dies wohl vom Core-Team schon längst so angedacht ist

  6. #6
    Contao-Urgestein
    Registriert seit
    24.02.2021.
    Beiträge
    1.769
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Toubibe Beitrag anzeigen
    Alles klar, werde mich noch etwas in Geduld üben.
    Schön wäre natürlich, wenn in Zukunft solche Basis-Anpassungen wie bisher bei fe_page vom Backend her steuerbar wären und so ebenfalls wie bisher nur "ausserordentliche" Veränderungen am Layout der manuellen Einträge bedürfte. Aber ich gehe davon aus, dass dies wohl vom Core-Team schon längst so angedacht ist
    Die Idee ist es, dass du das nun im Template machst. Gerade für einfache Sachen braucht es ja keine Checkbox oder Einstellungen, für die es dann in der Datenbank gespeichert werden muss. Moritz hat hier sicher schon einige Ideen, wie man das Template-Studio anpassen wird

    Denn Datenbank kannst du nicht so einfach versionieren und Layout ist ja schon Theme Sache

  7. #7
    Contao-Nutzer
    Registriert seit
    27.02.2013.
    Beiträge
    4

    Standard Falls es noch nicht zu spät ist, mein Work-Around

    HTML-Code:
    {% extends "@Contao/layout/default.html.twig" %}
    
    {% block head %}
        <meta charset="UTF-8">
        <meta name="generator" content="Contao Open Source CMS">
        {%- block title %}
            {% set title = head.title|default %}
            {% if title and contao.page.rootPageTitle|default %}
                {% set title = title ~ ' - ' ~ contao.page.rootPageTitle %}
            {% endif %}
             <title>{{ title }}</title>
        {%- endblock -%}
    
        {# @var \Contao\CoreBundle\Routing\ResponseContext\HtmlHeadBag\HtmlHeadBag head_bag #}
        {% set head_bag = response_context.head %}
    
        <meta name="robots" content="{{ head_bag.metaRobots }}">
        <meta name="description" content="{{ head_bag.metaDescription|u.truncate(320, '…') }}">
        {% if page['enableCanonical'] -%}
            <link rel="canonical" href="{{ head_bag.canonicalUriForRequest(app.request) }}">
        {% endif %}
        
        {# Eigenes CSS-File #}
        <link rel="stylesheet" href="files/css/iliyev.css">
    
        {%- block end_of_head -%}
            {% for element in response_context.end_of_head %}
                {{ element|raw }}
            {% endfor %}
        {%- endblock -%}
    {%- endblock -%}
    Geändert von Spooky (17.09.2025 um 09:02 Uhr)

  8. #8
    Contao-Nutzer
    Registriert seit
    27.05.2016.
    Beiträge
    53

    Standard Workaround von RalfPuppe gekürzt?

    Zitat Zitat von RalfPuppe Beitrag anzeigen
    {% extends "@Contao/layout/default.html.twig" %}

    {% block head %}
    <meta charset="UTF-8">
    <meta name="generator" content="Contao Open Source CMS">
    {%- block title %}
    {% set title = head.title|default %}
    {% if title and contao.page.rootPageTitle|default %}
    {% set title = title ~ ' - ' ~ contao.page.rootPageTitle %}
    {% endif %}
    <title>{{ title }}</title>
    {%- endblock -%}

    {# @var \Contao\CoreBundle\Routing\ResponseContext\HtmlHea dBag\HtmlHeadBag head_bag #}
    {% set head_bag = response_context.head %}

    <meta name="robots" content="{{ head_bag.metaRobots }}">
    <meta name="description" content="{{ head_bag.metaDescription|u.truncate(320, '…') }}">
    {% if page['enableCanonical'] -%}
    <link rel="canonical" href="{{ head_bag.canonicalUriForRequest(app.request) }}">
    {% endif %}

    {# Eigenes CSS-File #}
    <link rel="stylesheet" href="files/css/iliyev.css">

    {%- block end_of_head -%}
    {% for element in response_context.end_of_head %}
    {{ element|raw }}
    {% endfor %}
    {%- endblock -%}
    {%- endblock -%}
    Danke @RalfPuppe für Deinen Workaround!

    Ggf. (bin kein Twig-Experte) geht's updatesicherer und kürzer wie folgt?
    Hab noch die Einbindung einer .js-Datei am Body-Ende ergänzt.

    PHP-Code:
    {% extends "@Contao/layout/default.html.twig" %}

    {% 
    block head %}
        {{ 
    parent() }}
        <
    link rel="stylesheet" href="/files/css/css-file.css">
    {%- 
    endblock -%}

    {% 
    block body %}
        {{ 
    parent() }}
        <
    script src="/files/js/js-file.js"></script>
    {%- endblock -%} 
    Geändert von t.mayer (17.09.2025 um 10:36 Uhr)

  9. #9
    Contao-Fan Avatar von k-webdesign
    Registriert seit
    07.06.2010.
    Ort
    Karlsruhe
    Beiträge
    662
    Partner-ID
    5911
    User beschenken
    Wunschliste

    Standard

    Verstehe ich das richtig, dass das Basis-Template der Seite, sowie das Layout, per default keine Möglichkeit geben, CSS einzubinden? Das ist absolut am User vorbei.

    Ich verstehe den Sinn, dass dadurch Flexibilität erreicht wird. Aber es sollte für den ganz normalen Nutzer irgendein Basispfad vorgegeben sein, dass man es einfach in z.B. files/css/styles.css ablegen kann und dort gefunden wird. Es ist einfach eine Hürde, die meiner Meinung nach vieles unnötig erschwert.

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

    Standard

    Zitat Zitat von k-webdesign Beitrag anzeigen
    Verstehe ich das richtig, dass das Basis-Template der Seite, sowie das Layout, per default keine Möglichkeit geben, CSS einzubinden?
    Doch klar, du kannst natürlich im Template einbinden was du willst. Im Template Studio werden dafür voraussichtlich dann auch Hilfs-Funktionen hinzugefügt.
    » sponsor me via GitHub or Revolut

  11. #11
    Contao-Fan Avatar von k-webdesign
    Registriert seit
    07.06.2010.
    Ort
    Karlsruhe
    Beiträge
    662
    Partner-ID
    5911
    User beschenken
    Wunschliste

    Standard

    Wo? Im "Twig-Layout mit Slots" kann ich die Elemente einbinden, sonst nichts

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

    Standard

    Zitat Zitat von k-webdesign Beitrag anzeigen
    Wo? Im "Twig-Layout mit Slots" kann ich die Elemente einbinden, sonst nichts
    Im Template deines Layouts (templates/layout/default.html.twig - wird aber noch zur templates/layout/regular.html.twig umbenannt wahrscheinlich).
    » sponsor me via GitHub or Revolut

  13. #13
    Contao-Urgestein
    Registriert seit
    24.02.2021.
    Beiträge
    1.769
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du kannst hierfür die asset component von Symfony nutzen @k-webdesign:

    Wenn die CSS so heißt und hier liegt:
    files/big_animated_flashy_button_for_my_clients.css

    PHP-Code:
    {% use "@Contao/component/_stylesheet.html.twig" %}

    {% 
    add "big_animated_flashy_button_for_my_clients" to stylesheets %}
        {% 
    with {fileasset('/files/big_animated_flashy_button_for_my_clients.css'))} %}
            {{ 
    block('stylesheet_component') }}
        {% 
    endwith %}
    {% 
    endadd %} 
    Sowas wie Autovervollständigung kommt ja ins Templatestudio. Moritz sein Vortrag auf der Konferenz 25 hat das Template-Studio gut erklärt

  14. #14
    Contao-Fan Avatar von Kopfnuss
    Registriert seit
    05.09.2012.
    Ort
    Zwickau
    Beiträge
    357
    Partner-ID
    11375
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von zoglo Beitrag anzeigen
    Moritz sein Vortrag auf der Konferenz 25 hat das Template-Studio gut erklärt
    Gibt es davon noch ein Video?

  15. #15
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.589
    User beschenken
    Wunschliste

    Standard

    Guckst du hier, ganz unten. Datum ist geraten, es hieß in 3-4 Wochen nach Konferenz.
    https://contao.ninja/contao-konferenz-2025.html
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  16. #16
    Contao-Fan Avatar von Kopfnuss
    Registriert seit
    05.09.2012.
    Ort
    Zwickau
    Beiträge
    357
    Partner-ID
    11375
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von BugBuster Beitrag anzeigen
    Guckst du hier, ganz unten. Datum ist geraten, es hieß in 3-4 Wochen nach Konferenz.
    https://contao.ninja/contao-konferenz-2025.html
    Danke, dann mach ich in 3-4 Wochen einen Video-Tag

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

    Standard

    iirc werden die Videos dann nur für die Konferenzteilnehmer*innen zur Verfügung stehen, oder? Erst später irgendwann für den Rest.
    » sponsor me via GitHub or Revolut

  18. #18
    Contao-Fan Avatar von Kopfnuss
    Registriert seit
    05.09.2012.
    Ort
    Zwickau
    Beiträge
    357
    Partner-ID
    11375
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Naja, es würde schon Sinn machen, die Videos nach 3–4 Wochen auch denjenigen anzubieten, die nicht auf der Konferenz waren. Dafür wäre ich auch bereit zu bezahlen – so wie es offenbar ohnehin geplant ist.

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

    Standard

    Genau, über die Contao Academy kannst du sie beziehen dann.
    » sponsor me via GitHub or Revolut

  20. #20
    Contao-Nutzer
    Registriert seit
    27.05.2016.
    Beiträge
    53

    Standard

    Zitat Zitat von zoglo Beitrag anzeigen
    Du kannst hierfür die asset component von Symfony nutzen @k-webdesign:

    PHP-Code:
    {% use "@Contao/component/_stylesheet.html.twig" %}

    {% 
    add "big_animated_flashy_button_for_my_clients" to stylesheets %}
        {% 
    with {fileasset('/files/big_animated_flashy_button_for_my_clients.css'))} %}
            {{ 
    block('stylesheet_component') }}
        {% 
    endwith %}
    {% 
    endadd %} 
    Wenn ich dem Vorschlag von zoglo folge und im Template-Studio unter component/_stylesheet ein Template mit dem Code erstelle, erhalte ich folgende Fehlermeldung:
    PHP-Code:
    Template "@Contao_Global/component/_stylesheet.html.twig" cannot be used as trait in "@Contao/content_element/swiper.html.twig"

Aktive Benutzer

Aktive Benutzer

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

  1. Dean

Berechtigungen

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