Search by

heimseiten / contao-primary-page-image-bundle

heimseiten.de - Webdesign aus Köln

Rüstet das Contao-6-Feature „Seitenbild“ für Contao 5.7 nach: In den Seiteneinstellungen lässt sich ein Bild festlegen, das als primaryImageOfPage in die JSON-LD-Daten der Seite geschrieben wird und im Template über contao.page.primaryImage zur Verfügung steht.

Package info

github.com/heimseiten/contao-primary-page-image-bundle

Type:contao-bundle

pkg:composer/heimseiten/contao-primary-page-image-bundle

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.1.0 2026-08-27 09:58 UTC

This package is auto-updated.

Last update: 2026-08-27 10:56:31 UTC


README

Rüstet das Contao-6-Feature „Seitenbild“ (Primary Page Image) für Contao 5.7 nach.

In den Seiteneinstellungen lässt sich unter Bildeinstellungen ein Bild wählen. Contao schreibt es als primaryImageOfPage in die JSON-LD-Daten der Seite — damit ist gesteuert, welches Bild Suchmaschinen der Seite zuordnen.

Installation

composer require heimseiten/contao-primary-page-image-bundle
vendor/bin/contao-console contao:migrate

Die Migration legt die Spalte tl_page.primaryImage an.

Verwendung im Template

Das Bild steht als UUID am Seitenmodell zur Verfügung und lässt sich wie jede andere Bildquelle verarbeiten, etwa als Kopfgrafik:

{% set myimage = figure(contao.page.primaryImage|default, [1200, 500, 'crop']) %}

Verhältnis zu Contao 6

Feldname (primaryImage), Spaltentyp (binary(16)) und Palettenposition entsprechen exakt dem Contao-Kern ab Version 6 (contao/contao#9565).

Ab Contao 6 wird die Erweiterung nicht mehr benötigt, denn der Kern bringt das Seitenbild selbst mit. Der Versionsbereich endet deshalb bewusst bei Contao 5: Ein Update auf Contao 6 meldet einen Konflikt, solange die Erweiterung installiert ist. Das ist als Hinweis gedacht, sie bei dieser Gelegenheit zu entfernen. Die Spalte bleibt dabei bestehen und der Kern übernimmt die vorhandenen Daten unverändert.

Unabhängig davon hält sich die Erweiterung auch technisch zurück, falls das Feld schon vorhanden ist: Das DCA-Feld wird nur registriert, wenn es noch nicht existiert, und die JSON-LD-Eigenschaft nur ergänzt, wenn sie nicht bereits gesetzt ist.

Wie im Kern erscheint das Feld nur beim Seitentyp „Reguläre Seite“.

Wie es funktioniert

Contao 6 ergänzt den JSON-LD-Knoten direkt in der CoreResponseContextFactory. In Contao 5.7 ist dieselbe Stelle ohne Eingriff in den Kern erreichbar: Das JsonLdEvent wird in JsonLdManager::collectFinalScriptFromGraphs() ausgelöst, also unmittelbar vor der Ausgabe der Graphen. Contao selbst nutzt diesen Weg für seinen ContaoJsonLdSchemaListener.

Voraussetzungen

PHP 8.2+, Contao 5.7

Lizenz

GPL-3.0-or-later