Search by

schachbulle / contao-dsbapplayout-bundle

Samson1964

Schaltet für Aufrufe aus der App des Deutschen Schachbundes automatisch auf ein eigenes Seitenlayout um.

Package info

github.com/Samson1964/contao-dsbapplayout-bundle

Type:contao-bundle

pkg:composer/schachbulle/contao-dsbapplayout-bundle

Statistics

Installs: 9

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.1.0 2026-09-03 07:20 UTC

This package is auto-updated.

Last update: 2026-09-03 07:22:11 UTC


README

Schaltet Seitenaufrufe aus der App des Deutschen Schachbundes automatisch auf ein eigenes, schmuckloses Seitenlayout um.

Wozu

Die DSB-App bettet Seiten dieser Contao-Installation in einen eigenen Rahmen ein und bringt Kopfbereich, Navigation und Fußbereich selbst mit. Würde die Seite ihr reguläres Layout ausliefern, stünde alles doppelt auf dem Schirm. Das Bundle erkennt solche Aufrufe und ersetzt das Layout für die Dauer des Aufrufs durch eines, das ausschließlich die Hauptspalte ausgibt.

Erkennung

Die App setzt die Cookies appId und deviceId. Ist mindestens eines von beiden gesetzt, greift die Umschaltung; andernfalls bleibt alles unverändert.

Weil die Entscheidung an einem Cookie hängt, wird die Antwort von jeder Zwischenspeicherung ausgenommen — sowohl vom geteilten Zwischenspeicher (Reverse-Proxy) als auch vom privaten des Browsers. Sonst bekäme irgendwann ein gewöhnlicher Besucher das App-Layout zu sehen oder umgekehrt.

Was ersetzt wird

Das erzeugte Layout ist bewusst minimal: eine Zeile, eine Spalte, als einziges Element der Artikelbereich der Hauptspalte, dazu das Template fe_page_app. Vom ursprünglichen Layout werden nur die Themen-Zuordnung und die Bilddichten übernommen. Das Layout wird ausschließlich im Arbeitsspeicher gebaut und niemals gespeichert.

Das Template fe_page_app.html5 gibt nur $this->main aus. Wer die Ausgabe anpassen will, legt eine eigene Fassung unter templates/ an.

Voraussetzungen

  • PHP 8.1 oder neuer (geprüft bis 8.4)
  • Contao 4.13 LTS oder Contao 5

Einschränkung unter Contao 5

Contao 5.7 kennt zwei Layout-Arten. Bei der Art „Standard" rendert weiterhin PageRegular, und der Hook getPageLayout feuert — das Bundle arbeitet wie gewohnt. Bei der Art „Modern" übernimmt stattdessen der ContentCompositionBuilder, der diesen Hook gar nicht mehr aufruft; das Bundle bleibt dort wirkungslos. Dasselbe gilt für Seitentypen mit eigenem Layout-Template.

Wer unter Contao 5 auf ein modernes Layout wechselt, braucht für die App also einen anderen Weg.

Installation

Über den Contao Manager oder per Composer:

composer require schachbulle/contao-dsbapplayout-bundle

Prüfstand

tests/pruef-kompatibilitaet.php prüft die Hook-Klasse gegen eine vorhandene Contao-Installation: ob alle benutzten Contao-Klassen dort existieren, ob die Signatur zum Aufruf in PageRegular passt und ob das Attribut #[AsHook] gelesen wird.

php tests/pruef-kompatibilitaet.php /pfad/zur/contao-installation

Entwickler

Frank Hoppe