Template & Custom Fields
Ein individuelles Gantry-5-Particle soll Werte aus Joomla Custom Fields ausgeben. Diese Praxisnotiz zeigt die konkrete Anpassung der Gantry-Content-Klasse, die Einbindung im Particle und die Prüfungen nach Updates.
Ausgangslage
Das verwendete Content-Particle greift auf Joomla-Beiträge zu. Für die Ausgabe werden neben Titel, Text und Beitragsbildern auch projektspezifische Felder wie teaser-image-icon, startseite-ueberschrift und startseite-teaser benötigt. Diese Werte standen dem Twig-Template in der benötigten Form zunächst nicht zur Verfügung.
Umsetzung im Template
- Gantry-Content-Klasse erweitern: Die angepasste Datei liegt unter
templates/g5_hydrogen/custom/gantry-overrides/Gantry/Joomla/Content/Content.php. Sie lädt die zu einem Beitrag gespeicherten Joomla-Feldwerte und stellt sie dem Content-Objekt bereit. - Zugriffsmethode bereitstellen: Über
getCustomField()kann das Particle einen Feldwert anhand seines technischen Namens abrufen und bei fehlenden Werten einen Standardwert verwenden. - Particle-Ausgabe ergänzen: Blueprint und Twig-Datei liegen unter
templates/g5_hydrogen/custom/particles/. Dort werden die zusätzlichen Felder konfiguriert und nur ausgegeben, wenn tatsächlich ein Wert vorhanden ist.
Beispiel für den Zugriff in Twig
{% raw %}{% if article.getCustomField('startseite-teaser', '') %}
{{ article.getCustomField('startseite-teaser', '')|raw }}
{% endif %}{% endraw %}
Prüfung und Wartung
Die Lösung ist ein projektspezifischer Gantry-Override und keine allgemeine Joomla-Core-Funktion. Vor der Übernahme sollte eine Sicherung angelegt und die Anpassung in einer Testumgebung geprüft werden. Nach Joomla- oder Gantry-Updates sind mindestens Listenansicht, Detailansicht, leere Feldwerte und die Ausgabe der verwendeten Feldtypen zu testen.
Da der Override von Gantry-internen Klassen abhängt, kann bei einem Framework-Update ein Abgleich mit der aktuellen Originalklasse erforderlich werden. Die Anpassung liegt bewusst im custom-Bereich des Templates; damit wird die Originaldatei nicht direkt verändert.
Einordnung
Diese Lösung entstand aus einer konkreten Anforderung der Website und zeigt den tatsächlich eingesetzten Aufbau. Für ein anderes Template oder Particle muss der Datenfluss separat geprüft werden.