die System Messages
Die System Messages sind als "parametrisierbare, halb-statische Texte zu verstehen".
Wir verwenden System Messages dazu, um z.B. Button- oder Formularfeld-Beschriftungen sowie Validierungsmeldungen sprachabhängig zu gestalten.
Die System Message wird über ein eindeutiges Kürzel angesprochen, es sollten "sprechende" Namen dazu verwendet werden, wie z.B. "err_email_syntax". Diese System Message wäre eine Fehlermeldung über eine syntaktisch falsche Email Adresse.
Parametrisierbar deshalb, weil innerhalb der System Message Platzhalter definiert werden können, die zur Laufzeit ersetzt werden. Die Platzhalter haben das Format §[fortlaufende Nummer]§, also z.B. §00§, §01§, ...
Zurück zu obigem Beispiel:
Eine System Message könnte also folgendermassen aussehen:
Die angegebene E-Mail Adresse "§00§" scheint nicht korrekt zu sein
An der Stelle, an der diese Fehlermeldung erzeugt wird, muss die System Message mit 1 Parameter (der eingegebenen Email Adresse) aufgerufen werden.
Hinweis für Developer:
jpeto_system_message::getTextMessage("err_email_syntax", $email)
Sollten mehrere Platzhalter innerhalb der System Message definiert sein, muss stattdessen ein Array von Parametern übergeben werden.
z.B.
forgot_password
Die angegebene E-Mail Adresse "§00§" stimmt mit dem Nickname §01§ nicht überein
Hinweis für Developer:
jpeto_system_message::getTextMessage("err_email_syntax", array($email,$nickname))
Prinzipiell läßt sich jede System Message als HTMLMessage und als TextMessage darstellen, erstere mit, letztere ohne HTML Formatierungen.
Hinweis für Developer:
jpeto_system_message::getHTMLMessage("err_email_syntax", $email)
jpeto_system_message::getTextMessage("err_email_syntax", $email)
Anlage von System-Messages aus dem Sourcecode heraus:
Wenn eine neue System Message (bzw. ein Kürzel) im Sourcecode vergeben wird, wird diese beim 1. Aufrufen dieses Code-Bereichs automatisch angelegt, mit dem Inhalt "please set the System Message '[KÜRZEL]'".
Daher sollte beim Befüllen von neuen Projekten immer wieder mal die Liste auf leere System Messages überprüft werden.
Default-Values für System-Messages
Hinweis für Developer
Wenn man im Sourcecode eine neue System-Message anlegt, ist es oft angenehm, hier bereits einen Default-Value zu vergeben. Das funktioniert mit folgendem Aufruf:
jpeto_system_message::getHTMLMessage("err_email_syntax", $email, "Die angegebene E-Mail Adresse "§00§" scheint nicht korrekt zu sein")
Zu beachten: Die System-Message wird beim 1. Aufruf dieses Codes angelegt, der Default-Wert wird übergeben. Achtung: dieser Default-Wert ist unabhängig von der aktuellen Sprache, d.h. sollte der Code in der Sprache "EN" aufgerufen werden, wird die englische System-Message mit deutschem Defaultwert belegt.
Abhilfe: Default-Werte als ARRAY: (ab Revision 1.11)
jpeto_system_message::getHTMLMessage("err_email_syntax", $email,
array("DE"=>"Die angegebene E-Mail Adresse "§00§" scheint nicht korrekt zu sein",
"EN"=>"The given e-mail address "§00§" does not seem to be correct"))
Falls der Wert der aktuellen Sprache nicht gesetzt worden ist, wird der erste Wert genommen.
Neue Oberfläche ab Q3/2013
Seit Q3/2013 gibt es für die Verwaltung der System Messages eine neue Oberfläche, die u.a. spezielle Vorteile für mehrsprachige Projekte bietet und eine bessere Bearbeitungsperformance bietet.
So werden nun System Messages in den unterschiedlichen Sprachen parallel nebeneinander dargestellt, auf diese Weise können fehlende System Messages in einzelnen Sprachen unkompliziert identifiziert und ergänzt werden.
Die gewohnte Volltextsuche über alle Einträge ist wieder vorhanden, zusätzlich kann die Größe der Anzeigeliste eingeschränkt werden.
Neue Einträge können über die Angabe des ShortKeys (Kürzels) schnell und einfach hinzugefügt werden.
Bearbeiten von System Messages
Um eine System Message zu bearbeiten, können Sie entweder den ShortKey klicken und den Editor der System Message in allen vorhandenen Sprachen "aufklappen", oder gezielt nur einzelne Sprachversionen aufklappen.
Das Bearbeiten erfolgt direkt innerhalb der Liste. Es gibt Buttons für "TextMessage auf HtmlMessage kopieren" (und umgekehrt), "clear", "cancel" und "store".
System Messages können komplett (in allen vorliegenden Sprachen) durch das rote Symbol ganz rechts gelöscht werden, oder aber in einer speziellen Sprache über den Link [del] gelöscht werden.
Der Link [edit] öffnet das umfangreichere Einzelobjekt-AdminInterface (inkl. Sichtbarkeitssteuerung und Restrictions) in einem neuen Fenster.