Zum Inhalt

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')}