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

  • Netx360
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • 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
Weiter

Neue Kommentare

  • Arrrrg. Nix Tabelle :-D /*
    vor 2 Wochen 2 Tagen
  • Textboxen mit Tabelle
    vor 2 Wochen 2 Tagen
  • Du sollst ja auch keine
    vor 2 Wochen 2 Tagen
  • Theme
    vor 2 Wochen 2 Tagen
  • Welches Theme benutzt du
    vor 2 Wochen 3 Tagen
  • Mit Responsive Raster hatte
    vor 2 Wochen 3 Tagen
  • Hallo Alex,um das Häkchen
    vor 2 Wochen 3 Tagen
  • Modul view_unpublished
    vor 2 Wochen 5 Tagen
  • Modul "override node options"
    vor 2 Wochen 5 Tagen
  • Im Grunde ist dass ein
    vor 3 Wochen 1 Tag

Statistik

Beiträge im Forum: 250271
Registrierte User: 20479

Neue User:

  • Floydphymn
  • Stevebok
  • Robertnobia

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
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