Download the PHP package vtinnovations/centralized-notification-suite without Composer

On this page you can find all versions of the php package vtinnovations/centralized-notification-suite. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package centralized-notification-suite

Centralized Notification Suite für Contao 5

English version

Transaktions-Benachrichtigungen für Contao 5.3 LTS und 5.7+: Formular-, Mitglieder-, Kommentar- und Newsletter-Mails sowie Slack- oder Webhook-Meldungen – im Backend konfiguriert und über einen einzigen Service-Aufruf ausgelöst.

Inhalt

Projektübersicht

Die Centralized Notification Suite bündelt den gesamten Benachrichtigungsversand einer Contao-Installation an einer Stelle. Eine Benachrichtigung beschreibt einen Anlass, ihre Nachrichten beschreiben die konkreten Aussendungen je Sprache, und ein Absender beschreibt den Weg, über den ausgeliefert wird.

Gegenüber vergleichbaren Lösungen bietet die Suite vier Dinge zusätzlich:

Centralized Notification Suite Übliche Alternativen
Ist die Nachricht angekommen? Versandprotokoll mit echtem Zustellstatus, Fehlertext und erneutem Versand per Klick Blick in var/logs/
Test einer Benachrichtigung Vorschau und Testversand mit eigenen Token-Werten Das echte Ereignis auslösen
Eingefügte HTML-Designs CSS wird automatisch in style-Attribute überführt, damit Outlook und Gmail korrekt darstellen Manuelles Inlining
Gemeinsames Branding Wiederverwendbare Layouts mit Platzhalter für den Nachrichteninhalt Kopf und Fuß in jede Nachricht kopieren

Ergänzend: automatische Text-Alternative, eingebettete Bilder, CC/BCC/Antwort-an je Nachricht, automatische Wiederholung fehlgeschlagener Sendungen, eine typbezogene Token-Referenz im Backend sowie ein Importbefehl für bestehende Notification-Center-Installationen.

Status

Produktiv einsetzbar. Alle in diesem Dokument beschriebenen Funktionen sind implementiert und durch die mitgelieferte Testsuite abgedeckt. Die Suite setzt eine aktivierte Lizenz voraus; Einzelheiten siehe Lizenzierung.

Unterstützte Versionen

Komponente Unterstützt
Contao 5.3 LTS bis 5.7
PHP 8.1 oder neuer
Symfony Mailer / Mime 6.4 oder 7.x (von Contao mitgebracht)

Auf Contao 5.3 bis 5.6 werden die Vorschaukarten der Inhaltsblöcke über eine ältere Contao-Schnittstelle erzeugt, weil diese Kerne noch keine Datensatz-Beschriftung für Eltern-Ansichten kennen. Darstellung, Sortierung per Drag-and-drop und alle übrigen Funktionen verhalten sich identisch; die passende Schnittstelle wird anhand der laufenden Contao-Version selbst gewählt.

Systemvoraussetzungen

Installation

Optional lassen sich fertige Layouts und Beispiel-E-Mails einspielen:

Anschließend im Backend die Lizenz aktivieren (siehe unten). Ohne gültige Lizenz versendet die Suite nichts.

Dateisystemberechtigungen

Der Webserver-Benutzer benötigt Schreibrechte auf var/. Die Suite legt dort ihre privaten Daten sowie – bei Verwendung des Datei-Absenders – abgelegte Nachrichten ab. Diese Verzeichnisse liegen außerhalb des öffentlichen Web-Wurzelverzeichnisses und dürfen nicht über den Webserver ausgeliefert werden.

Lizenzierung

Die Suite wird als kostenfreies Produkt mit unbefristeter Lizenz ausgeliefert. „Kostenfrei“ bezieht sich ausschließlich auf den Preis: Eine von V-T.ONE ausgestellte Lizenz muss aktiviert sein, bevor Nachrichten versendet werden.

Verwaltung

Die Lizenzverwaltung befindet sich unter Contao → Einstellungen im Abschnitt V-T.ONE Licence management, dem gemeinsamen Abschnitt aller V-T.ONE-Pakete. Dort stehen zur Verfügung:

Der Abschnitt ist als eine Karte je V-T.ONE-Paket aufgebaut, passend zu den übrigen Paketen in der Lizenzverwaltung: der Produktname über der Karte, der aktuelle Zustand in deren erster Zeile, darunter das Schlüsselfeld und die drei Schaltflächen.

Angezeigt werden Status, Paket, lizenzierter Host, abgedeckte Hosts, Version und Laufzeit. Der Schlüssel selbst wird nie erneut in der Oberfläche ausgegeben – das Feld ist bei jedem Seitenaufruf leer, auch unmittelbar nach einer Aktivierung.

Zustände

Zustand Wirkung
Keine Lizenz aktiviert Es wird nichts versendet; Contao verhält sich wie ohne das Paket
Aktive unbefristete Lizenz Voller Funktionsumfang
Lizenz nicht prüfbar oder für diese Website nicht gültig Wie „keine Lizenz“; vorhandene Inhalte bleiben unverändert

Eine Lizenz gilt für die Hostnamen, für die sie ausgestellt wurde. Maßgeblich sind die Domains, die auf den Startseiten der Website hinterlegt sind. Unterschiedliche Hostnamen sind verschiedene Identitäten – example.com und www.example.com gelten nicht automatisch füreinander.

Fällt die Lizenzprüfung negativ aus, werden ausschließlich Versandfunktionen deaktiviert. Benachrichtigungen, Nachrichten, Layouts, Branding und Versandprotokoll bleiben vollständig erhalten.

Die Installation gleicht ihren Stand von sich aus mit dem Lizenzdienst ab – stündlich, sobald der Datensatz eine Frist dafür nennt, sonst täglich. Wird eine Lizenz auf eine andere Domain umgezogen, verliert die bisherige Installation ihre Berechtigung damit spätestens beim nächsten Abgleich, auch wenn sie von außen nicht erreichbar ist. Ein nicht erreichbarer Lizenzdienst entzieht dagegen keiner Installation ihre Lizenz.

Backend-Module

Die Suite ergänzt die Backend-Navigation um die Gruppe Centralized Notification Suite mit sechs Modulen in dieser Reihenfolge:

Modul Zweck
Benachrichtigungen Benachrichtigungen und ihre Nachrichten verwalten
E-Mail-Layouts Wiederverwendbare HTML-Layouts für Ihre Nachrichten verwalten
Branding Logo, Markenfarbe und Firmenangaben für alle Designs
Absender Die Absender (Gateways) verwalten, die Nachrichten versenden
Versandprotokoll Sehen, was versendet wurde, warum etwas fehlgeschlagen ist, und erneut senden
SMTP-Konfiguration SMTP-Zugangsdaten, über die die Website versendet

Erste Schritte

  1. Absender → einen Eintrag vom Typ E-Mail anlegen und die Absenderadresse eintragen.
  2. Benachrichtigungen → einen Eintrag anlegen. Der gewählte Typ bestimmt, welche Tokens angeboten werden und an welchen Stellen die Benachrichtigung zur Auswahl steht. Der Alias wird aus dem Titel erzeugt.
  3. Die Nachrichten der Benachrichtigung öffnen, eine Nachricht anlegen, Absender und Sprache wählen, Betreff und Inhalt erfassen.
  4. Über Vorschau das fertige Ergebnis ansehen oder über Testversand eine Probe an die eigene Adresse schicken.
  5. Verknüpfen: über das Feld Benachrichtigungen eines Formulars, das gleichnamige Feld eines Mitgliedermoduls oder aus eigenem Code.

Tokens

##token## steht in Betreff, Inhalt und Adressfeldern zur Verfügung. Contao-Insert-Tags ({{env::url}}, {{link_url::42}}) funktionieren ebenfalls, ebenso {if} / {else} / {endif}.

Die Hilfe-Schaltfläche an den Inhaltsfeldern listet alle Tokens auf, die für den Typ der jeweiligen Benachrichtigung zur Verfügung stehen. Überall verfügbar:

##admin_email## ##date## ##time## ##datim## ##host## ##url## ##page_id## ##page_title## ##page_url##

Formular-Benachrichtigungen erhalten zusätzlich jedes übermittelte Feld unter seinem Namen sowie:

Token Inhalt
##all_fields## Alle Felder als Bezeichnung: Wert
##all_fields_filled## Dasselbe ohne leere Felder
##all_fields_html## Alle Felder als formatierte Tabelle
##all_fields_filled_html## Dieselbe Tabelle ohne leere Felder
##uploads## / ##uploads_html## Namen hochgeladener Dateien
##label_<feld>## Die Bezeichnung eines Feldes

Mitglieder-, Kommentar- und Newsletter-Benachrichtigungen erhalten entsprechend ##member_*##, ##comment_*## und ##newsletter_*##.

Maskierung

In einem HTML-Inhalt werden Token-Werte maskiert und Zeilenumbrüche in <br> überführt. Eingaben aus Formularen können damit weder Markup einschleusen noch das Layout zerstören. Tokens, deren Name auf _html endet, werden bewusst als Markup eingesetzt – so arbeitet ##all_fields_html##. Im Textinhalt wird nicht maskiert.

Nachrichteninhalt

Der Inhalt einer Nachricht ist entweder in Blöcken aufgebaut oder eigenes HTML; die Einstellung Inhalt an der Nachricht entscheidet. Bestehende Nachrichten bleiben unverändert auf eigenem HTML.

Im Blockmodus erhält die Nachricht eine untergeordnete Liste Blöcke. Blöcke lassen sich per Drag-and-drop sortieren und zeigen jeweils eine Vorschaukarte. Verfügbare Blocktypen:

Typ Gruppe
Überschrift, Absatz, Liste, Tabelle, Token Text
Bild, Teaser Medien
Schaltfläche Aktion
Trenner Layout
Eigenes HTML Erweitert

Fertige E-Mails

notification:install-emails legt drei vollständig aufgebaute Beispiel-E-Mails an (Transaktion, Newsletter, Ankündigung), die als Ausgangspunkt bearbeitet werden können.

E-Mail-Layouts und Branding

Ein Layout ist der gestaltete Rahmen, den sich mehrere Nachrichten teilen. Drei Betriebsarten:

Das CSS eines Layouts wird vor dem Versand in style-Attribute überführt. Genau das lässt ein eingefügtes Design in Outlook und Gmail korrekt aussehen. @media-Regeln lassen sich nicht inline setzen und bleiben als <style>-Block erhalten, damit responsive Regeln weiter wirken.

Je Nachricht zusätzlich einstellbar:

Absender (Gateways)

Eigene Absender lassen sich ergänzen, indem GatewayInterface implementiert oder AbstractGateway erweitert wird. Die Backend-Felder deklariert der Absender selbst; contao:migrate legt die zugehörigen Spalten an.

Versandprotokoll

Jeder Versuch wird festgehalten: Empfänger, gerenderter Betreff, beide Inhaltsfassungen, Status und Fehler.

Der Status ist wörtlich zu verstehen. Bei E-Mail bedeutet In Warteschlange, dass die Nachricht an die Messenger-Warteschlange von Contao übergeben wurde; erst wenn ein Worker tatsächlich mit dem Mailserver gesprochen hat, wird daraus Versendet oder Fehlgeschlagen.

Fehlgeschlagene Einträge lassen sich erneut senden und werden einmal pro Stunde automatisch wiederholt.

Auslösen aus eigenem Code

Zustellfehler lösen keine Ausnahme aus. Eine Benachrichtigung wird in der Regel ausgelöst, nachdem etwas bereits gespeichert wurde. Würde ein SMTP-Zeitüberschreitungsfehler durchgereicht, sähe der Besucher eine Fehlermeldung für einen erfolgreichen Vorgang. Fehler werden je Nachricht abgefangen und protokolliert; die übrigen Nachrichten werden weiterhin versendet. Ein unbekannter Alias löst hingegen eine Ausnahme aus, weil das ein Programmierfehler ist.

Auf der Kommandozeile:

Über die Ereignisse PreSendEvent und PostSendEvent lässt sich der Versand abbrechen, verändern oder auswerten.

Migration aus Notification Center

Liest die bestehenden Tabellen und legt Benachrichtigungen, Nachrichten und Absender neu an. Die vorhandene Installation bleibt unangetastet, beide können parallel laufen. Tokennamen werden übersetzt; alles Unbekannte bleibt erhalten und wird am Ende aufgeführt – daher stets zuerst mit --dry-run starten.

Berechtigungen

Funktionsstatus

Funktion Status
Benachrichtigungen, Nachrichten, Mehrsprachigkeit Verfügbar
Formular-, Mitglieder-, Kommentar- und Newsletter-Auslöser Verfügbar
Auslösen aus eigenem Code und per Kommandozeile Verfügbar
Tokens inklusive Formularfeldern und Hilfe-Assistent Verfügbar
Blockbasierter Nachrichteninhalt Verfügbar
20 Designs, Branding, eigene Layouts Verfügbar
CSS-Inlining und eingebettete Bilder Verfügbar
Automatische Textfassung Verfügbar
Anhänge aus Formularuploads und aus der Dateiverwaltung Verfügbar
Vorschau und Testversand Verfügbar
Versandprotokoll, erneuter Versand, automatische Wiederholung Verfügbar
Absender E-Mail, Webhook/JSON, Datei Verfügbar
SMTP-Konfiguration im Backend Verfügbar
Import aus Notification Center Verfügbar
Versand ohne aktivierte Lizenz Nicht verfügbar
Frontend-Ausgabe durch das Paket Nicht zutreffend

Sicherheitsmodell

Diese Angaben beschreiben umgesetzte Kontrollen. Kein Schutzmechanismus ist unüberwindbar; die Suite erhebt diesen Anspruch nicht.

Betriebssicherheit

Laufzeitverzeichnisse

Verzeichnis Inhalt
var/ Private Daten der Suite, darunter der Lizenzzustand
var/notification-mail Vom Datei-Absender abgelegte Nachrichten

Beide liegen außerhalb des öffentlichen Web-Wurzelverzeichnisses und gehören in die Sicherung, nicht in die Versionsverwaltung.

Externe Kommunikation

Ohne ausdrückliche Konfiguration nimmt die Suite folgende ausgehende Verbindungen auf:

Anlass Ziel
Lizenz aktivieren, aktualisieren, prüfen Fest hinterlegter Lizenzdienst von V-T.ONE, ausschließlich per HTTPS
Nutzungsmeldung Derselbe Dienst; wird nach dem Ausliefern der Antwort gesendet und beeinflusst weder Darstellung noch Versand
Webhook-Absender Ausschließlich die im jeweiligen Absender eingetragene Adresse
E-Mail-Versand Der konfigurierte Mailserver

Die Suite nimmt darüber hinaus eine Anfrage entgegen: Der Lizenzdienst kann einen aktualisierten Lizenzstand an /rest/api/v1/centralized-notification-suite-license-updater übermitteln. Der Endpunkt nimmt ausschließlich authentifizierte Anfragen an und muss erreichbar bleiben, damit Aktualisierungen ankommen.

Protokollierung

Betriebsmeldungen gehen in das Contao-Systemprotokoll. Festgehalten werden Vorgang, Ergebnis und – beim Versand – die betroffene Nachricht.

Nicht protokolliert werden vollständige Lizenzschlüssel, Authentifizierungsdaten, übertragene Datenpakete sowie deren Prüfwerte. Das Versandprotokoll speichert Betreff und Inhalt nur, wenn store_body aktiviert ist; auf Installationen ohne Speicherung personenbezogener Daten sollte diese Option ausgeschaltet werden.

Deployment

Zu beachten:

Cache leeren

Nach Änderungen an der SMTP-Konfiguration im Backend erneuert die Suite den Cache selbstständig.

Tests

Die Testsuite läuft ohne Contao-Bootstrap und ohne Netzwerkzugriff. composer release:check prüft vor dem Paketieren, ob das ausgelieferte Paket überhaupt in der Lage ist, Lizenzdaten zu prüfen, und bricht andernfalls ab.

Fehlerbehebung

Beobachtung Ursache und Abhilfe
„Es wurde nichts versendet: Diese Installation ist nicht aktiviert.“ Keine gültige Lizenz. Unter Einstellungen aktivieren.
Lizenz lässt sich nicht aktivieren Prüfen, ob auf der Startseite eine Domain hinterlegt ist und ob ausgehendes HTTPS möglich ist. Der Schlüssel muss für diesen Hostnamen ausgestellt sein.
E-Mails bleiben „In Warteschlange“ Es läuft kein Messenger-Worker. Warteschlange abarbeiten oder Worker einrichten.
Formular versendet nichts Im Formular muss die Benachrichtigung ausgewählt sein, die Nachricht veröffentlicht und für die Sprache vorhanden sein.
Design wird in Outlook falsch dargestellt Prüfen, ob das Layout veröffentlicht und der Nachricht zugewiesen ist.
Webhook meldet einen Fehler Der Fehlertext des Zielsystems steht im Versandprotokoll.
Dateiauswahl öffnet sich als ganze Seite, ohne Übernehmen und Abbrechen Eine andere Erweiterung lädt jQuery ohne noConflict() ins Backend und nimmt MooTools damit das globale $. Dieses Paket stellt es auf seinen eigenen Bildschirmen wieder her; ist die Dateiauswahl auch auf Contao-eigenen Bildschirmen defekt, muss die Erweiterung korrigiert werden, die jQuery lädt.

Bekannte Einschränkungen

Lizenz und Urheberrecht

Softwarelizenz: proprietär (proprietary, siehe composer.json). Alle Rechte vorbehalten. Weitergabe, Veränderung und Weiterverbreitung sind nur im Rahmen des mit V&T Innovations geschlossenen Vertrags zulässig.

Copyright: V&T Innovations Team, https://www.v-t.one.

Der Betrieb der Suite erfordert zusätzlich eine aktivierte Produktlizenz; siehe Lizenzierung.

Support und Fehlermeldungen: github.com/vtinnovations/centralized-notification-suite


English version


All versions of centralized-notification-suite with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
ext-curl Version *
ext-json Version *
ext-sodium Version *
contao/core-bundle Version ^5.3
symfony/mailer Version ^6.4 || ^7.0
symfony/mime Version ^6.4 || ^7.0
tijsverkoyen/css-to-inline-styles Version ^2.2
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package vtinnovations/centralized-notification-suite contains the following files

Loading the files please wait ...