de en
← Zur Artikel-Übersicht

Neu in Craft CMS 4.3

Craft CMS 4.3 Teaser
Gut einen Monat nach der Dot All 2022, hat das Team von Pixel & Tonic Craft CMS 4.2 veröffentlicht. Es gibt eine neue Element-Index-Ansicht, neue Condition-Regeln, neue Twig-Funktionen und Verbesserungen im Bereich a11y und User Interface.

Positiv erwähnen möchte ich hierbei die Changelogs, die durch ihr neues Format deutlich übersichtlicher und leserfreundlicher geworden sind. Unterteilt in Sektionen wie Authoring, Accessibility, Development oder Extended, sollte jeder Nutzer schneller zu den für ihn wichtigen Informationen gelangen.

Element und Asset Indexe

Die Element-Index-Werkzeugleiste hat eine neue Ansicht bekommen, in der sich die Tabellenspalten ein- und ausblenden sowie sortieren lassen. Außerdem kann dort eingestellt werden, wonach sortiert und ob dies auf- oder absteigend werden soll. Auf- und absteigend wurde aus Gründen der Barrierefreiheit in zwei Buttons aufgeteilt.

Zudem haben die Indexseiten einen neuen Button am Ende der Seitenleiste erhalten, wo man die Option „Quellen anpassen“ auswählen kann und somit seine eigenen Quellen anlegen und verwalten kann.

Die Indexseite für Assets wurde aktualisiert und enthält nun einen Button mit den Aktionen "Neuer Unterordner", "Ordner umbenennen" und "Ordner löschen“. Craft CMS 4.3 Ansicht

Bedingte Regeln

Die Bedingungsregeln für Datumsbereiche wurden erweitert und unterstützen jetzt relative Bereichstypen wie "Heute", "Diese Woche", "Dieser Monat", "Dieses Jahr", "Letzte 7 Tage", "Letzte 30 Tage", "Letztes Jahr", "Bevor..." und "Danach..." , zusätzlich zur Angabe von spezifischen Datumsbereichen.

Zahlenbedingungsregeln unterstützen den "is between…"-Operator, um einen Minimal- und Maxmialwert definieren zu können. Alle Text-, Zahlen- und Datumsbereichs-Bedingungsregeln unterstützen jetzt die Operatoren "has a value" und "is empty".

Twig Global Variables

Mit Craft 4.3 sind einige neue Twig Global Variables dazu gekommen. Es gibt etwa jetzt Today, tomorrow und yesterday als Date-Objekte, die per Filter formatiert werden. Wie die Namen vermuten lassen, kann so das heutige, gestrige und morgige Datum ausgegeben werden.

  {{ today | date('M d, Y') }}
{{ tomorrow | date('M d, Y') }}
{{ yesterday | date('M d, Y') }}
Ryan Irelan hat in einem Video auf Craftquest die Funktionen alle im Detail vorgestellt. Dort gab er auch ein Beispiel, wie man diese neue Twig Globals auch in Element Queries nutzen und die exakte Zeitspanne von heute definieren kann. Wer genau wissen möchte, warum er die Abfragen so geschrieben hat, sollte sich das Video anschauen.
  {% set todayPosts = craft.entries
.section('testimonials')
.postDate([
'and',
">= #{today|date('Y-m-d')}",
	"< #{tomorrow|date('Y-m-d')}"
])
.all() %}

{% for post in todaysPosts %}
<li>{{ post.title }} - {{ post.postDate | date("M d, Y") }}</li>
{% endfor %}

Twig Filter

Mit boolean, float, integer und string sind neue Twig Filter hinzugekommen. Eine willkommene Neuerung, da Craft mit Version 4 zu einer expliziert typisierten API überging und mit den neuen Filtern nun sichergestellt werden kann, dass die Parameter den zu erwarteten Typ haben.

  {% set val1 = true | boolean %} {# true #}
{% set val2 = "Hello" | integer %} {# 0 #}
{% set val3 = 12345.1 | float %} {% {# 12345.1 #}
{% set val4 = 12345 | string %} {# '12345' #}

Twig function

Es gibt mit canCreateDrafts() , canDelete(), canDeleteForSite(), canDuplicate(), canSave() und canView() neue globale Twig-Funktionen zur Elementautorisierung für Craft 4.3. Diese Funktionen beinhalten Element- und Benutzerargumente, der Benutzer ist dabei aber optional und als Standardwert wird der aktuelle Benutzer gesetzt.

  {% if not canView(entry) %}
    {% redirect siteUrl %}
{% endif %}

Wer alle Details wissen möchte, liest am Besten den Changelog.

Foto von  Thomas Sausen<

Selbstständiger Webentwickler, der 2005 mit WordPress-Websites anfing, dann zu ExpressionEngine wechselte und 2013 sein Herz an Craft CMS verlor. Als Gründer von Craftentries, berichtet er seit 2015 über das Craft-Ökosystem.

Thomas Sausen Web Developer