Zur Hauptnavigation springen Zum Inhalt springen Zur Fußnavigation springen

Überschreiben der Partikel-Einstellungen

Partikel sind extrem flexibel. Sie können auf ihre Einstellungen auf mehreren Ebenen zugreifen und ihre Standardeinstellungen für die gesamte Website, eine bestimmte Gliederung oder sogar eine Instanz im Layout-Manager oder Menü-Editor ändern.

Die Partikel verfügen jeweils über einen eigenen Satz von Standardeinstellungen, die in der YAML-Datei des Partikels konfiguriert werden können oder nicht. Diese Standardwerte werden dann von der Basisskizze im Bereich Partikelvorgaben übernommen. Von dort aus können Sie diese Standardeinstellungen innerhalb der Basisskizze, der Teilskizzen und sogar in der spezifischen Partikelinstanz ändern, wie sie im Layout-Manager, Menü-Editor, Modul oder Widget angezeigt wird.

Hier ist eine schnelle Aufschlüsselung der verschiedenen Vererbungsebenen eines Partikels.

Partikel-YAML-Datei:
Alle in dieser Datei zugewiesenen Standardwerte gelten als absolute Standardwerte für das Partikel. Diese Standardwerte werden durch alle Änderungen in der Grundstruktur, Teilumrisse überschrieben.

Standardwerte für Basislinienpartikel:
Änderungen, die im Panel Particle Defaults in der Basisskizze vorgenommen wurden, werden zu globalen Standardeinstellungen für die Website.
Standardeinstellungen für Nicht-Basis-Umrisse von Partikeln: Das Fenster Particle Defaults auf dieser Ebene legt die Standardeinstellungen für das Partikel fest, wie es in dieser bestimmten Kontur existiert, und betrifft nur diese Kontur.

Individuelle Partikelpartikel-Standards im Layout-Manager, Menü-Editor, Modul oder Widget:
Änderungen, die auf dieser Ebene vorgenommen werden, sind die überschriebenen Einstellungen für den Partikel nur in dieser Instanz oder in allen direkt vererbten Instanzen.

Kurz gesagt, die Vererbung für Partikeleinstellungen läuft so ab: Partikel YAML Datei > Base Outline Particle Defaults > Non-base Outline Particle Defaults > Individuelle Instanz mit jedem Schritt, der Einstellungen von der vorherigen übernimmt und/oder überschreibt.

Grundriss Partikel-Standardeinstellungen Panel

Beispielbild

Innerhalb der Basisumrandung können Sie im Administrationsbereich Partikel-Standards globale Standardeinstellungen für jeden Partikel festlegen. Die hier platzierten Einstellungen werden zu den globalen Standardeinstellungen, die für jede Outline und einzelne Partikelinstanz gelten, sofern sie nicht überschrieben werden. Hier würden Sie Ihre am häufigsten verwendeten Einstellungen für einen bestimmten Partikel platzieren.

Wenn Sie beispielsweise möchten, dass Ihr Logo Partikel das gleiche Quellbild auf allen Ihren Seiten mit Ausnahme von einem oder zwei verwendet, würden Sie dieses Bild hier festlegen und es überschreiben, indem Sie entweder die Einstellungen für Nicht-Basisumrisse verwenden, die auf diese Ausnahmeseiten angewendet werden, oder in den einzelnen Partikelinstanzen im Layout-Manager.

Nicht-Basis Umriss Partikel Standardeinstellungen Panel

Beispielbild

Innerhalb von Umrissen, die nicht als Standard festgelegt sind, können Sie feststellen, dass das Administrationspanel Particle Defaults die Particle Defaults für die meisten (wenn nicht sogar alle) Ihrer Partikel ausgegraut hat. Durch Ändern einer Einstellung und/oder Aktivieren des Kontrollkästchens auf der rechten Seite des Einstellungskästchens für diesen Partikel können Sie die Standardeinstellungen für die Kontur überschreiben.

Nun hat jeder Partikel, der im Layout-Manager für diese bestimmte Kontur platziert wird, standardmäßig diese neuen Einstellungen.

Individuelle Partikel-Einstellungen im Layout-Manager

Beispielbild

Wenn Sie ein Partikel im Layout-Manager einer Outline platzieren, erstellen Sie eine Instanz. Diese Instanz ermöglicht es Ihnen, die Partikeleinstellungen für dieses bestimmte Partikel anzupassen, ohne andere Instanzen dieses Partikels zu beeinflussen. Wenn Sie z.B. das Logo in einem Fall anders darstellen möchten, würden Sie hier die Einstellungen ändern.

Beispielbild

Im obigen Beispiel haben wir das Startjahr für den Partikel über das Einstellungsfenster im Layoutmanager geändert. Das Kontrollkästchen rechts neben dem Feld zeigt an, dass es überschrieben wird, während die anderen Felder grau und nicht markiert bleiben. Diese Einstellungen werden von höheren Standardstufen übernommen.

Auf diese instanzenspezifischen Einstellungen können Sie zugreifen, indem Sie im Layout-Manager das Zahnrad auf der rechten Seite des Partikels auswählen.

Überschreiben von Partikel-Quelldateien

Manchmal erfordern die Änderungen, die Sie an einem Partikel vornehmen möchten, eine Änderung der Quelldateien, aus denen sich die Datei zusammensetzt. Die Quelle für alle Partikel sind Twig- und YAML-Dateien.

In diesem Beispiel fügen wir einen Link zum Copyright-Partikel hinzu, der direkt auf die Startseite der Website über den Namen des Rechteinhabers führt. Dies ist nur ein kleines Beispiel dafür, was du ändern kannst.

Beispielbild

Im obigen Bild sehen Sie auf der linken Seite den Copyright-Partikel. Es gibt keine Links oder irgendetwas, das im Core-Partikel enthalten ist. Wenn Sie möchten, dass der Name des Rechteinhabers zu einem Link auf die Website dieses Rechteinhabers wird, können Sie einige einfache Änderungen an den Quelldateien des Partikels vornehmen.

Das erste, was Sie tun müssen, ist, die Dateien copyright.html.twig und copyright.yaml in ROOT/media/gantry5/engines/nucleus/particles/ zu kopieren und die Kopien in TEMPLATE_DIR/custom/particles einzufügen. Wenn das Partikelverzeichnis nicht bereits in Ihrem benutzerdefinierten Ordner vorhanden ist, müssen Sie es erstellen.

Das gesuchte Partikel kann sich an einer anderen Stelle befinden. Ein vorlagenspezifischer Partikel, der mit der Vorlage geliefert wurde und nicht der Kern von Gantry ist, befindet sich beispielsweise in /THEME_DIR/particles.

Indem Sie die Dateien duplizieren und die Kopien in den benutzerdefinierten Ordner legen, machen Sie Ihre Änderungen aktualisierungssicher. Dadurch wird sichergestellt, dass Ihre Änderungen nicht gelöscht werden, wenn Sie entweder das Gantry-Framework oder das Design aktualisieren.

Alles, was Sie mit den doppelten Partikeldateien in Ihrem Ordner TEMPLATE_DIR/custom/particles tun, überschreibt das, was in der Originaldatei erscheint.

Da wir dem Copyright-Partikel ein neues Feld hinzufügen, müssen wir die YAML-Datei bearbeiten. Hier ist, wie die copyright.yaml YAML-Datei vor den Änderungen aussieht.

name: Copyright
description: Display copyright information.
type: particle

form:
  fields:
    enabled:
      type: input.checkbox

      label: Enabled
      description: Globally enable the particle.
      default: true

 date.start:
      type: input.text
      label: Start Year
      description: Select the copyright start year.
      default: now

date.end:
      type: input.text
      label: End Year
      description: Select the copyright end year.
      default: now

owner:
      type: input.text
      label: Copyright owner
      description: Add copyright owner name.

Beispielbild

Dadurch werden die Felder erstellt, die im Fenster Particle Defaults des Gantry-Administrators sowie in allen Fällen im Layout-Manager, in denen der Copyright-Partikel platziert wurde, angezeigt werden. Diese Einstellungen werden dann mit der Zweigdatei (Twig) des Partikels verknüpft. In diesem Fall fügen wir ein Verknüpfungsfeld hinzu, damit Benutzer einen Link zum Partikel hinzufügen können.

Wir können das Link-Feld erstellen, indem wir folgendes am Ende der YAML-Datei hinzufügen.

site:
   type: input.url

   label: Copyright Link
   description: Add the link to the copyright owner's site.

Beispielbild

Nun werden Sie feststellen, dass das neue Feld im Backend erscheint.

Auch die Datei copyright.html.twig muss geändert werden, um die neuen Daten zu übernehmen und die Verknüpfung herzustellen. Nachfolgend finden Sie den Inhalt der Original-Twig-Datei:

{% extends '@nucleus/partials/particle.html.twig' %}

{% set start_date = particle.date.start|trim in ['now', ''] ? 'now'|date('Y') : particle.date.start|e %}
{% set end_date = particle.date.end|trim in ['now', ''] ? 'now'|date('Y') : particle.date.end|e %}

{% block particle %}
Copyright ©
{% if (start_date != end_date) %}{{ start_date|e }} - {% endif %}
{{ end_date|e }}
{{ particle.owner|e }}
{% endblock %}

Die Zeile {{ particle.owner|e }} muss geändert werden, um den Link basierend auf der über die YAML-Datei zugewiesenen Variablen hinzuzufügen. In diesem Beispiel werden wir es durch diese drei Zeilen ersetzen:

{% if particle.site %}<a href="{{ particle.site | default(gantry_base) }}">{% endif %}
{{ particle.owner }}
{% if particle.site %}</a>{% endif %}

Beispielbild

Nun, im Frontend der Website, erscheint das Partikel mit einem Link über den Namen des Rechteinhabers. Dies ist nur ein kleines Beispiel dafür, was Sie tun können, um die Fähigkeiten eines Partikels mit Twig und YAML zu erweitern.