Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

Theming in Drupal 8 mit TWIG

Eingetragen von AndyLicht (260)
am 22.05.2015 - 08:11 Uhr in
  • Themes & Theming
  • Drupal 8.x oder neuer

Hallo Forum,
ich versuche mich gerade ein wenig mit dem Theming in Drupal 8, das klappt aus meiner Sicht ziemlich gut. TWIG scheint echt Spaß zu machen. In den Template - Dateien ist auch sehr gut einzusehen, welche Variablen genutzt werden können. Leider gibt es in Drupal noch kein Field-Permission-Modul, daher wollte ich gerne über field--node--field-fieldname.html.twig meine Felder so konfigurieren, dass Sie nur für registrierte Nutzer sichtbar sind. Leider komme ich in diesen Templates nicht an die Variablen "logged_in" und "is_admin".
Hat von euch jemand das Wissen oder eine Idee, wie ich diese Variablen durchgereicht bekomme?

mit bestem Gruß
Andy

‹ [gelöst] Fields aus anderer Node in page.tpl.php anzeigen Bootstrap Active Link Menü ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Variablen

Eingetragen von stBorchert (6003)
am 22.05.2015 - 08:58 Uhr

Moin.
Kannst Du mal das Template (bzw. den relevanten Ausschnitt) hier pasten?
Beide von Dir genannten Variablen werden in [api:_template_preprocess_default_variables:8] definiert und sollten damit in jedem Template zur Verfügung stehen.

Notfalls musst Du in der Funktion mal einen Breakpoint setzen und debuggen ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sorrie, klar kann ich das

Eingetragen von AndyLicht (260)
am 22.05.2015 - 09:33 Uhr

Sorrie,
klar kann ich das hier posten:
Vielleicht noch die Information, dass ich das Bartik-Theme kopiert habe und darauf aufbaue. Ich habe bis dato aber lediglich die CSS-Dateien geändert.
Ich benutze folgendes Template:link zur API

{% set field_name_class = field_name|clean_class %}
{%
  set classes = [
    'field',
    'field-' ~ entity_type|clean_class ~ '--' ~ field_name_class,
    'field-name-' ~ field_name_class,
    'field-type-' ~ field_type|clean_class,
    'field-label-' ~ label_display,
    'clearfix',
  ]
%}
{%
  set title_classes = [
    'field-label',
    label_display == 'inline' ? 'inline',
  ]
%}
<p>Dump:{{dump() }}</p>
<p>Logged-in:{{dump(logged_in) }}</p>
<p>Admin:{{dump(is_admin)}}</p>
<p>Test:{{dump(field_type)}}</p>
<div{{ attributes.addClass(classes) }}>
  {% if not label_hidden %}
    <h3{{ title_attributes.addClass(title_classes) }}>{{ label }}</h3>
  {% endif %}
  <ul{{ content_attributes.addClass('links', 'field-items','meinoverride') }}>
   {% for item in items %}
      <li{{ item.attributes }}>{{ item.content }}</li>
    {% endfor %}
  </ul>
</div>

Ich stelle mir das wie folgt vor:

{% if logged_in is 1 %}
{% set field_name_class = field_name|clean_class %}
{%
  set classes = [
    'field',
    'field-' ~ entity_type|clean_class ~ '--' ~ field_name_class,
    'field-name-' ~ field_name_class,
    'field-type-' ~ field_type|clean_class,
    'field-label-' ~ label_display,
    'clearfix',
  ]
%}
{%
  set title_classes = [
    'field-label',
    label_display == 'inline' ? 'inline',
  ]
%}
<p>Dump:{{dump() }}</p>
<p>Logged-in:{{dump(logged_in) }}</p>
<p>Admin:{{dump(is_admin)}}</p>
<p>Test:{{dump(field_type)}}</p>
<div{{ attributes.addClass(classes) }}>
  {% if not label_hidden %}
    <h3{{ title_attributes.addClass(title_classes) }}>{{ label }}</h3>
  {% endif %}
  <ul{{ content_attributes.addClass('links', 'field-items','meinoverride') }}>
   {% for item in items %}
      <li{{ item.attributes }}>{{ item.content }}</li>
    {% endfor %}
  </ul>
</div>
{% endif %}

mit folgendem Code funktioniert mein Gedanke schonmal, ich muss jetzt nur noch die Bedingung austauschen:

{% if 'Fabian' starts with 'F' %} oder alternativ um das Gegenteil zu testen {% if 'Fabian' starts with 'A' %}
{% set field_name_class = field_name|clean_class %}
{%
  set classes = [
    'field',
    'field-' ~ entity_type|clean_class ~ '--' ~ field_name_class,
    'field-name-' ~ field_name_class,
    'field-type-' ~ field_type|clean_class,
    'field-label-' ~ label_display,
    'clearfix',
  ]
%}
{%
  set title_classes = [
    'field-label',
    label_display == 'inline' ? 'inline',
  ]
%}
<p>Dump:{{dump() }}</p>
<p>Logged-in:{{dump(logged_in) }}</p>
<p>Admin:{{dump(is_admin)}}</p>
<p>Test:{{dump(field_type)}}</p>
<div{{ attributes.addClass(classes) }}>
  {% if not label_hidden %}
    <h3{{ title_attributes.addClass(title_classes) }}>{{ label }}</h3>
  {% endif %}
  <ul{{ content_attributes.addClass('links', 'field-items','meinoverride') }}>
   {% for item in items %}
      <li{{ item.attributes }}>{{ item.content }}</li>
    {% endfor %}
  </ul>
</div>
{% endif %}

vielen Dank für deine Mühen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, ich habe jetzt erstmal

Eingetragen von AndyLicht (260)
am 22.05.2015 - 09:45 Uhr

Hi, ich habe jetzt erstmal das Debugging aktiviert, da sehe ich dass das logged_in und is_admin tatsächlich vorhanden ist, leider scheint der Wert immer true zu sein. Kann das eventuell an Caching-Funktion liegen?

Ich habe jetzt einmal den Cache gellert und die Seite erstmalig als Gast aufgerufen und siehe da ich bekomme sowohl als Gast für logged_in und is_admin false, wenn ich mich dann aber einlogge, bekomme ich ebenso false zurück, obwohl ich dann eigentlich ein true zurückkriegen sollte.

mfg
Andy

  • Anmelden oder Registrieren um Kommentare zu schreiben

Cache

Eingetragen von stBorchert (6003)
am 22.05.2015 - 09:57 Uhr
AndyLicht schrieb

Hi, ich habe jetzt erstmal das Debugging aktiviert, da sehe ich dass das logged_in und is_admin tatsächlich vorhanden ist, leider scheint der Wert immer true zu sein. Kann das eventuell an Caching-Funktion liegen?

Jup, das kann durchaus sein. Ich kann mir vorstellen, dass gerade die field-Templates ziemlich stark gecached werden (die Erzeugung dauert ja relativ "lange").
Ich bin mir nicht wirklich sicher, ob man einzelne Templates vom Cache ausschliessen kann; eventuell findest Du in diesem Video eine zufriedenstellendere Antwort dazu: https://www.youtube.com/watch?v=NHe9JtIp5fk

  • Anmelden oder Registrieren um Kommentare zu schreiben

Super besten Dank, ein

Eingetragen von AndyLicht (260)
am 22.05.2015 - 10:21 Uhr

Super besten Dank, ein ähnliches Phänomen habe ich bei einem Block der auf Random gestellt wird, solange ich den Cache nicht leere bleibt die Reihenfolge identisch, obwohl unter den advanced Settings cache auf 'none' gestellt ist. Egal ich schweife ab, gibt es einen alternativen Weg um nicht allen Usern alle Inhalte anzeigen zulassen.
mit bestem Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 1 Woche 2 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Woche 3 Tagen
  • melde mich mal wieder, da ich
    vor 9 Wochen 6 Stunden
  • Hey danke
    vor 9 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 9 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 9 Wochen 6 Tagen
  • Da scheint die Terminologie
    vor 9 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 10 Wochen 3 Tagen
  • In der entsprechenden View
    vor 10 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 10 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250235
Registrierte User: 20462

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 17 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association