Alerts

Alle Alerts (Meldungen wie z.B. Fehler/Hinweise) werden ab Shop 5.0 mit dem Alert-Service erzeugt.

Den Alert-Service beziehen Sie über die Shop-Klasse:

<?php

use Services\JTL\AlertServiceInterface;

$alertHelper = Shop::Container()->getAlertService();

Eine Meldung wird mithilfe der Methode addAlert() erzeugt.
Diese Methode kennt die drei Parameter type, message und key. Für den Parameter type können Sie die Konstanten der Alert-Klasse nutzen:

Konstante Wert
TYPE_PRIMARY primary
TYPE_SECONDARY secondary
TYPE_SUCCESS success
TYPE_DANGER danger
TYPE_WARNING warning
TYPE_INFO info
TYPE_LIGHT light
TYPE_DARK dark
TYPE_ERROR error (ehemals für $cFehler genutzt)
TYPE_NOTE note (ehemals für $cHinweis genutzt)

Die Spalte Wert steht für die jeweilige Bootstrap 4 CSS-Klasse.

<?php

$alertHelper->addAlert(Alert::TYPE_INFO, 'Das ist eine Testinfo!', 'testInfo');

Der Typ wird als CSS-Klasse alert-type für das jeweilige Alert hinzugefügt, was in diesem Beispiel einer Bootstrap 4 alert-info-Klasse entspricht.
Der letzte Parameter key stellt einen Schlüssel-String dar, über welchen ein Alert identifiziert und ggf. überschrieben werden kann. Dieser key wird zudem im HTML ausgegeben (data-Attribut data-key) und ist per Javascript/CSS ansprechbar.

Optionen

Des Weiteren können dem Alert Optionen übergeben werden.
Mit der Option dismissable kann z. B. erzwungen werden, das Alert erst durch Benutzerinteraktion zu schließen.

<?php

$alertHelper->addAlert(
    Alert::TYPE_INFO,
    'Das ist eine Testinfo!',
    'testInfo',
    ['dismissable' => true]
);

Alle möglichen Optionen:

Option Typ Default Beschreibung
dismissable bool false Alert wegklickbar
fadeOut int 0 Fadeout Timer (z. B. per Konstante: Alert::FADE_SLOW =9000, was 9 Sekunden entspricht, oder direkt einen Integer eingeben)
showInAlertListTemplate bool true Alert an zentraler Stelle im header ausgeben
saveInSession bool false Alert in der SESSION speichern (z.B. für Redirects)
linkHref string   Ganzes Alert als Link
linkText string   Wenn linkHref und linkText gesetzt sind, wird an die Message der Text als Link angehängt
icon string   Fontawesome-Icon
id string   Fügt dem HTML den Wert der id hinzu

Anzeige im Frontend

Die Alerts werden in der Smarty-Variable alertList als Collection gespeichert. Alle Alerts, bei denen showInAlertListTemplate === true gesetzt ist, werden zentral im Header ausgegeben.

{include file='snippets/alert_list.tpl'}

Falls Sie ein Alert an einer speziellen Stelle in einem Template ausgeben lassen wollen, anstatt allgemein im Header, dann setzen Sie die Option showInAlertListTemplate auf false. Geben Sie dann das Alert an gewünschter Stelle wie folgt aus:

{$alertList->displayAlertByKey('testInfo')}