承接 erdmannfreunde/contao-status-update-bundle 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

erdmannfreunde/contao-status-update-bundle

Composer 安装命令:

composer require erdmannfreunde/contao-status-update-bundle

包简介

Status-Updates Bundle for Contao - Display important status updates in the backend dashboard

README 文档

README

Zeige wichtige Status-Updates wie anstehende Contao Updates im Contao Backend-Dashboard an.

Funktionen

  • Backend-Modul: Verwalte Status-Updates über das Menü "Status-Updates" im Backend
  • Datumsbasierte Sichtbarkeit: Steuere, wann Updates erscheinen (X Tage vor/nach einem Ereignis)
  • Rich-Text-Editor: TinyMCE-Integration für detaillierte Beschreibungen
  • Dashboard-Widget: Automatische Anzeige im Backend basierend auf Sichtbarkeitsregeln
  • Flexible Anzeigeregeln: Konfiguriere, wie lange Updates sichtbar bleiben
  • Farbcodierte Anzeige: Visuelle Indikatoren für bevorstehende, aktuelle und vergangene Ereignisse
  • Abgeschlossen-Status: Markiere Updates als erledigt – das Dashboard zeigt sie dann grün mit einem Häkchen-Hintergrund-Icon
  • E-Mail-Benachrichtigung: Sende beim Abschließen eines Updates automatisch eine Mail an ausgewählte Backend-Benutzer (siehe Abschnitt "Benachrichtigungen")
  • Frontend-Anzeige: Zeige Status-Updates auch im Frontend an – z.B. Urlaubshinweise mit Zeitraum, Wartungsfenster oder Marketing-Aktionen mit Rabattcode (siehe Abschnitt "Frontend-Anzeige")

Installation

Installation über Composer:

composer require erdmannfreunde/contao-status-update-bundle

Verwendung

Status-Updates erstellen

  1. Navigiere zu Backend → System → Status-Updates
  2. Klicke auf "Neu", um ein Status-Update zu erstellen
  3. Fülle die Felder aus:
  • Titel: Kurzer beschreibender Titel
  • Beschreibung: Detaillierte Informationen (unterstützt HTML über TinyMCE)
  • Ereignisdatum: Das Datum des Ereignisses
  • Benachrichtigung vor Ereignis anzeigen: Wie viele Tage vor dem Ereignis das Update angezeigt werden soll
    • 7 Tage vorher (Standard)
    • 10 Tage vorher
    • 30 Tage vorher
    • Nur am Ereignistag
  • Benachrichtigung nach Ereignis anzeigen: Wie viele Tage nach dem Ereignis das Update weiterhin angezeigt werden soll
    • Nur am Ereignistag (Standard)
    • 1 Tag danach
    • 7 Tage danach
  • Veröffentlicht: Aktivieren, um im Dashboard sichtbar zu machen
  • Abgeschlossen: Markiert das Update als erledigt. Im Dashboard wird es dann grün dargestellt und erhält ein dezentes Häkchen-Icon im Hintergrund. Lässt sich auch direkt aus der Übersicht über das Checkbox-Icon umschalten.
  1. Speichere das Status-Update

Dashboard-Anzeige

Contao Status-Updates Dashboard

Status-Updates erscheinen automatisch im Backend-Dashboard basierend auf den Sichtbarkeitsregeln:

  • Rot/Wichtig: Ereignisse, die heute stattfinden
  • Gelb/Warnung: Ereignisse innerhalb der nächsten 3 Tage
  • Blau/Info: Zukünftige Ereignisse
  • Grün/Erfolg: Vergangene Ereignisse (innerhalb der "Danach"-Anzeigedauer) sowie als abgeschlossen markierte Updates (zusätzlich mit Häkchen-Hintergrund-Icon)

Sichtbarkeitslogik

Das Bundle berechnet, welche Status-Updates angezeigt werden, basierend auf:

  1. Aktuelles Datum vs. Ereignisdatum
  2. Vorher anzeigen-Einstellung (wie viele Tage im Voraus)
  3. Danach anzeigen-Einstellung (wie viele Tage nach dem Ereignis)

Beispiel: Wenn du "7 Tage vorher" und "1 Tag danach" für ein Ereignis am 15. Januar einstellst:

  • Das Status-Update wird ab dem 8. Januar angezeigt
  • Das Status-Update wird nach dem 16. Januar nicht mehr angezeigt

Benachrichtigungen

Beim Markieren eines Status-Updates als abgeschlossen kann das Bundle automatisch eine E-Mail an ausgewählte Backend-Benutzer versenden.

Einrichtung

Die Einstellungen sind über das Zahnrad-Icon oben rechts in der Status-Updates-Übersicht erreichbar (keine eigener Sidebar-Menüpunkt).

Verfügbare Felder:

  • E-Mail-Benachrichtigung aktivieren: Master-Schalter. Wenn aus, wird nichts versendet.
  • Betreff: Betreff der Mail. Unterstützt die Platzhalter ##title##, ##date##, ##description##.
  • Nachricht: HTML-Body der Mail (TinyMCE). Unterstützt dieselben Platzhalter sowie Contao-Insert-Tags.
  • Empfänger: Mehrfach-Auswahl aller Backend-Benutzer. Der aktuell angemeldete Benutzer wird immer automatisch ergänzt – auch wenn niemand sonst angehakt ist.

Verhalten

  • Der Versand läuft pro Status-Update genau einmal (Flag notification_sent). Auch wenn der Status zwischendurch wieder geöffnet und erneut abgeschlossen wird, geht keine zweite Mail raus.
  • Der Versand erfolgt über die in Contao konfigurierte Standard-Versandart (Symfony MailerInterface, gesteuert über MAILER_DSN).
  • Als Absenderadresse wird die unter „System → Einstellungen → Administrator-E-Mail-Adresse" hinterlegte Adresse verwendet.
  • Backend-Benutzer ohne hinterlegte E-Mail-Adresse oder mit ungültiger Adresse werden übersprungen.
  • Insert-Tags in den Settings (z.B. {{date}}) werden ausgewertet; Insert-Tags in nutzergenerierten Status-Update-Feldern (Titel/Beschreibung) werden bewusst nicht ausgewertet, um eine Insert-Tag-Injection durch Editoren mit eingeschränkten Rechten zu verhindern.

Frontend-Anzeige

Status-Updates können auch im Frontend ausgegeben werden – z.B. für:

  • Urlaubs- oder Abwesenheitshinweise mit konkretem Zeitraum
  • Wartungsfenster oder Störungsinfos
  • Marketing-Aktionen wie zeitlich begrenzte Rabattcodes

Einrichtung

  1. Beim Status-Update das Feld Anzeigebereich auf "Nur im Frontend" oder "Backend und Frontend" stellen
  2. Optional: Anzeigen bis setzen – das Update läuft automatisch aus, sobald dieses Datum überschritten ist. Leer lassen für ein dauerhaftes Update
  3. Typ wählen (Neutral, Info, Erfolg, Warnung, Kritisch, Aktion) – steuert die Standard-Farben
  4. Optional: Kann geschlossen werden aktivieren, damit Besucher:innen den Hinweis schließen können (Auswahl wird per localStorage gemerkt, bis das Update erneut bearbeitet wird)
  5. Optional: Auf Seiten einschränken – leer lassen, um den Hinweis auf allen Seiten anzuzeigen. Bei Auswahl einer Seite wird das Update auf dieser Seite und allen Unterseiten angezeigt
  6. Im Seitenlayout das Frontend-Modul „Status-Updates" platzieren (z.B. im Header oder als Banner-Slot)

Auswahllogik

Im Frontend wird ein Update angezeigt, wenn:

  • veröffentlicht und nicht als abgeschlossen markiert
  • Scope ist "Frontend" oder "Backend und Frontend"
  • Heute liegt im Zeitraum DatumAnzeigen bis (jeweils inkl.) bzw. ab Datum, falls kein Anzeigen-bis gesetzt ist
  • Aktuelle Seite (oder eine ihrer Elternseiten) gehört zur Auswahl – oder die Auswahl ist leer

Mehrere aktive Updates werden nach Typ-Priorität sortiert: Kritisch > Warnung > Info > Erfolg > Aktion > Neutral.

Styling

Die Default-Styles liegen in public/css/frontend_status_updates.css. CSS und Dismiss-JS werden nur dann geladen, wenn das Modul auf der Seite tatsächlich aktive Updates rendert – verwaltet über {% block style %} / {% block script %} im Twig-Template (add 'key' to stylesheets/body-Pattern wie beim Contao-Swiper). Das JS lädt zusätzlich nur, wenn mindestens ein Update als „schließbar" markiert ist.

Override im Theme-SCSS in einer separaten Override-Datei (LASR/SOLO-Konvention) – nicht direkt im Theme-SCSS.

Die Twig-Templates lassen sich überschreiben:

  • frontend_module/status_updates.html.twig (Modul-Wrapper inkl. Asset-Blöcke)

Das Template stellt benannte Override-Blöcke bereit, sodass ein Theme nur den relevanten Teil austauschen muss, ohne das gesamte Template zu kopieren:

Block Zweck
status_updates_styles Stylesheet-Einbindung — Bundle-CSS unterdrücken oder eigenes laden
status_updates_scripts Script-Einbindung — Dismiss-JS ersetzen oder weglassen
status_updates_noscript <noscript>-Fallback für dismissible Items
status_updates_items Wrapper-Div + Items-Schleife — komplettes Markup ersetzen
status_updates_item Markup eines einzelnen <article>
status_updates_close Schließen-Button

Beispiel: Bundle-CSS unterdrücken und eigenes Stylesheet aus dem Theme laden:

{% extends "@Contao/frontend_module/status_updates.html.twig" %}

{% block status_updates_styles %}
    {% add 'theme_status_updates_css' to stylesheets %}
        <link rel="stylesheet" href="{{ asset('files/theme/css/status-updates.css') }}">
    {% endadd %}
{% endblock %}

Anforderungen

  • PHP 8.2 oder höher
  • Contao 5.3 oder höher
  • Symfony 6.4 oder 7.0

Lizenz

Dieses Bundle ist unter LGPL-3.0-or-later lizenziert.

erdmannfreunde/contao-status-update-bundle 适用场景与选型建议

erdmannfreunde/contao-status-update-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 138 次下载、GitHub Stars 达 4, 最近一次更新时间为 2026 年 01 月 22 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「notifications」 「backend」 「dashboard」 「status」 「contao」 「updates」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 erdmannfreunde/contao-status-update-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 erdmannfreunde/contao-status-update-bundle 我们能提供哪些服务?
定制开发 / 二次开发

基于 erdmannfreunde/contao-status-update-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 138
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 24
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: LGPL-3.0-or-later
  • 更新时间: 2026-01-22