schachbulle/contao-boxes4ward-bundle

Inhaltsboxen für Contao: Artikel mit Inhaltselementen, die je nach Seite, Wochentag, Monat oder Nachricht ein- und ausgeblendet werden.

Maintainers

Package info

github.com/Samson1964/contao-boxes4ward-bundle

Type:contao-bundle

pkg:composer/schachbulle/contao-boxes4ward-bundle

Transparency log

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

3.0.1 2026-08-09 07:16 UTC

This package is auto-updated.

Last update: 2026-08-09 07:21:09 UTC


README

Verwaltet Inhalte in Boxen, die unabhängig von Seitenartikeln gepflegt und je nach Seite, Wochentag, Monat oder Nachricht ein- und ausgeblendet werden.

Diese Fassung ist eine Portierung der Contao-3-Erweiterung psi/boxes4ward von Christoph Wiechert auf Contao 4.13 und Contao 5.7 mit PHP 8.3.

Wofür das gut ist

Ein Seitenartikel gehört immer zu genau einer Seite. Inhalte, die an derselben Stelle des Layouts auf vielen Seiten erscheinen sollen — ein Hinweiskasten in der Randspalte, ein Saisonbanner, ein Aufruf neben bestimmten Nachrichten — müssten dafür vielfach angelegt werden.

Boxes4ward dreht das um: Der Inhalt wird einmal als Box gepflegt und bekommt Regeln, wo und wann er erscheint. Ausgegeben wird er von einem Frontend-Modul, das im Seitenlayout an der gewünschten Stelle steht.

Aufbau

Kategorie (tl_boxes4ward_category)   Klammer für die Rechtevergabe
└── Box (tl_boxes4ward_article)      Anzeigeregeln, verweist auf ein Frontend-Modul
    └── Inhaltselemente (tl_content) der gewohnte Contao-Editor

Eine Box wird nicht einer Seite zugeordnet, sondern einem Frontend-Modul vom Typ „Inhaltsbox“. Sie erscheint dort, wo dieses Modul im Seitenlayout eingebunden ist — und nur auf den Seiten, die ihre Regeln erlauben. Mehrere Boxen können auf dasselbe Modul zeigen; sie werden dann in ihrer Sortierreihenfolge untereinander ausgegeben.

Installation

composer require schachbulle/contao-boxes4ward-bundle

Danach im Contao Manager oder über die Konsole die Datenbank aktualisieren:

vendor/bin/contao-console contao:migrate

Voraussetzungen: PHP 8.3 sowie Contao 4.13 oder Contao 5.7. contao/news-bundle ist optional — ohne dieses Bundle entfällt lediglich das Feld „Nachrichten“.

Einrichtung

  1. Frontend-Modul anlegen: unter Layout → Module ein Modul vom Typ „Inhaltsbox“ erstellen und im Seitenlayout an der gewünschten Stelle einbinden.
  2. Kategorie anlegen: unter Inhalte → Inhaltsboxen eine Kategorie erstellen. Sie dient der Gliederung und der Rechtevergabe.
  3. Box anlegen: in der Kategorie eine Box erstellen, ihr das Modul aus Schritt 1 zuweisen und die Anzeigeregeln setzen.
  4. Inhalt pflegen: über die Schaltfläche „Inhaltselemente bearbeiten“ den Inhalt der Box wie gewohnt zusammenstellen.

Anzeigeregeln

Alle Regeln sind mit UND verknüpft — eine Box erscheint nur, wenn jede gesetzte Bedingung erfüllt ist.

Einstellung Wirkung
Seiten Die Box erscheint auf den ausgewählten Seiten.
Unterseiten einschließen Zusätzlich auf allen Unterseiten der Auswahl.
Seitenauswahl umkehren Die Box erscheint überall außer auf der Auswahl. Ohne ausgewählte Seite heißt das „auf allen Seiten“.
Nachrichten Nur auf Seiten mit einem Nachrichtenleser wirksam: Die Box erscheint dort ausschließlich bei den gewählten Nachrichten.
Wochentage Nur an den gewählten Wochentagen.
Monate Nur in den gewählten Monaten.
Veröffentlichung, Anzeigen ab/bis Wie bei Nachrichten und Seitenartikeln.

Enthält eine Box kein sichtbares Inhaltselement, wird sie übersprungen. Bleibt keine Box übrig, gibt das Modul überhaupt nichts aus — auch keinen leeren Rahmen mit Überschrift.

Rechte

Die Rechte hängen an der Kategorie. Unter Benutzer beziehungsweise Benutzergruppen gibt es dafür den Abschnitt „Rechte für Inhaltsboxen“:

  • Erlaubte Kategorien — auf welche Kategorien der Benutzer zugreifen darf. Boxen und Inhaltselemente erben dieses Recht.
  • Rechte für Kategorien — ob er Kategorien anlegen und löschen darf.

Legt ein Benutzer mit Anlegerecht eine Kategorie an, wird sie beim ersten Bearbeiten automatisch in seine Rechte übernommen. Administratoren umgehen sämtliche Prüfungen.

Template

Die Ausgabe steckt in mod_boxes4ward.html5 und lässt sich wie jedes Contao-Template im Verzeichnis templates/ überschreiben. Jede Box wird in einen div mit der Klasse boxes4ward_article gehüllt, dazu kommen die Positionsklassen first, last, even und odd sowie die in der Box hinterlegte CSS-ID und -Klasse.

Umstieg von psi/boxes4ward

Tabellen, Feldnamen und der Modultyp boxes4ward sind unverändert — bestehende Boxen laufen nach dem Umstieg weiter. Das alte Verzeichnis system/modules/boxes4ward muss entfernt werden; das Paket ersetzt psi/boxes4ward und contao-legacy/boxes4ward über den replace-Eintrag.

Bei Installationen, die aus Contao 3 stammen, kann die Elterntabelle der Inhaltselemente falsch gesetzt sein. Das räumt eine Migration beim contao:migrate von selbst auf; Einzelheiten stehen im CHANGELOG.

Entwicklung

composer install
vendor/bin/phpunit

Die Tests prüfen die Anzeigeregeln und kommen ohne laufende Contao-Installation aus.

Lizenz

LGPL-3.0-or-later, wie das Ursprungsprojekt. Siehe LICENSE.