Alerts
Alerts (z.B. Fehler-, Hinweis- oder Erfolgsmeldungen) werden ab JTL-Shop 5.0 mit dem Alert-Service erzeugt. Sie können im sowohl Shop-Frontend als auch im Adminbereich angezeigt werden.
Eine Referenz zum Alert-Service erhalten Sie über die Shop-Klasse:
<?php
use JTL\Services\JTL\AlertServiceInterface;
$alertService = Shop::Container()->getAlertService();
Zum Erzeugen einer neuen Alert-Meldung nutzen Sie die Methode \JTL\Services\JTL\AlertService::addAlert !
Syntax:
addAlert(string $type, string $message, string $key, array $options = null): ?Alert;
$message bestimmt den Text, der in der Alertbox enthalten ist.
$type legt einen Anzeigetyp fest. Diese Anzeigetypen entsprechen den Klassennamen der Bootstrap Alert-Komponente
(siehe Bootstrap-Dokumentation).
Folgende Werte stehen als Konstanten aus der Klasse \JTL\Alert\Alert zur Verfügung:
| Konstante | Werte |
|---|---|
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) |
Für die wichtigsten Anzeigetypen empfehlen wir die Nutzung der entsprechenden Wrapper-Methoden:
addError(string $message, string $key, array $options = null): ?Alert
addWarning(string $message, string $key, array $options = null): ?Alert
addInfo(string $message, string $key, array $options = null): ?Alert
addSuccess(string $message, string $key, array $options = null): ?Alert
addDanger(string $message, string $key, array $options = null): ?Alert
addNotice(string $message, string $key, array $options = null): ?Alert
Mit dem Parameter $key legen Sie einen eindeutigen Identifikator fest, über den das Alert identifiziert und ggf.
überschrieben werden kann. $key wird zudem im HTML-Attribut data-key des Alert-Elements hinterlegt damit es per
Javascript oder CSS angesteuert werden kann.
Für den optionalen Parameter $options siehe weiter unten.
Beispiel
Dieses Beispiel erzeugt eine simple Alertbox vom Typ info und weißt diesem den Schlüssel testInfo zu:
<?php
$alertService->addInfo('Das ist eine Testinfo!', 'testInfo');
Optionen
Der optionalen Parameter $options erlaubt einige Feineinstellungen. Diese werden als assoziatives Array an die
Methode übergeben.
Alle möglichen Optionen:
| Option | Typ | Standardwert | Beschreibung |
|---|---|---|---|
dismissable |
bool | false | Alert kann vom Nutzer ausgeblendet werden |
fadeOut |
int | 0 | Zeit in Millisekunden wie lange der Ausblendeffekt des Alerts dauert. |
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 | URL, falls ganzes Alert als Link dargestellt werden soll | |
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-Element des Alerts ein id-Attribut hinzu |
Beispiel
Mit diesem Aufruf wird ein Info-Alert erzeugt, welches einen zusätzlichen Button zum Ausblenden erhält:
<?php
$alertHelper->addAlert(
Alert::TYPE_INFO,
'Das ist eine Testinfo!',
'testInfo',
['dismissable' => true]
);
Anzeige im Frontend
Die Alerts sind 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 statt im Header an einer speziellen Stelle in einem Template ausgeben lassen wollen, dann setzen
Sie die Option showInAlertListTemplate auf false. Geben Sie dann das Alert an gewünschter Stelle wie folgt aus:
{$alertList->displayAlertByKey('testInfo')}