Referenz
Wichtige Eigenschaften & Methoden
Die Member, die Sie am häufigsten verwenden.
Items
Items ist eine TsgcHTMLInboxItems-Sammlung; jedes TsgcHTMLInboxItem hat Id, Title, Text, Timestamp, Url, Icon und Read. Alles in einer Zeile sind Daten und wird beim Rendern maskiert, auch das Icon: Übergeben Sie ein literales Zeichen, nie eine HTML-Entität oder Markup. Url wird bereinigt, und Links mit javascript: und data: werden abgelehnt.
Speicherereignisse
Die Komponente hält nur, was sie gerade darstellt. OnLoadNotifications(aUserID, aList) wird mit bereits geleertem aList ausgelöst: Füllen Sie sie mit den Benachrichtigungen des Benutzers, die neueste zuerst. OnMarkRead(aUserID, aNotificationID) wird ausgelöst, nachdem das Element als gelesen markiert wurde, und OnMarkAllRead(aUserID), nachdem alle Elemente als gelesen markiert wurden.
Serverseitige Aktionen
LoadNotifications(aUserID), MarkRead(aUserID, aNotificationID) und MarkAllRead(aUserID) erledigen die Arbeit. ProcessAction(aUserID, aAction, aNotificationID) leitet eine gesendete Aktion an die richtige davon weiter und gibt False zurück, wenn die Aktion keine Posteingangs-Aktion ist, sodass Sie weiter nach der zuständigen Komponente suchen können.
Aktionen, die sie sendet
Das Dropdown sendet inboxMarkRead (Felder action, inbox, id), inboxMarkAllRead und inboxRefresh (Felder action, inbox) als data-sgc-ws-send-Formulare. Das Feld inbox enthält die Element-ID des Posteingangs, der das Formular gerendert hat, also InboxID, wenn Sie sie gesetzt haben, und so leitet eine Seite mit mehreren Posteingängen die Aktion an die richtige Komponente weiter.
Autorisierung
Die Komponente stellt die Oberfläche dar und erzwingt keine Autorisierung. Jede Aktion wird als vom Client gesendete Daten übertragen, sodass ein böswilliger Client jede Aktion und jede Benachrichtigungs-ID fälschen kann. Es wird keine Benutzer-ID in das Markup geschrieben: Entnehmen Sie den handelnden Benutzer der Sitzung der Anfrage (sgcHTMLRequestSession), nie dem Formular, und prüfen Sie, dass dem Benutzer die eingegangene Benachrichtigungs-ID gehört, bevor Sie etwas speichern.
Erscheinungsbild
Title ist die Dropdown-Überschrift, EmptyText der Platzhalter, wenn es nichts anzuzeigen gibt, und BellIcon das Trigger-Symbol, vertrauenswürdiges Markup, standardmäßig mit einer HTML-Entität. MaxItems begrenzt die sichtbaren Zeilen (Standard 10, 0 zeigt alle), ShowMarkAllRead und ShowBadge sind standardmäßig aktiviert, und AddNotification(aId, aTitle, aText, aTimestamp, aUrl, aIcon) fügt eine Zeile hinzu oder aktualisiert die mit derselben ID.
Live-Aktualisierungen
Jede Benachrichtigung, das Abzeichen und die Liste tragen eine stabile Element-ID. Rendern Sie nach einer Änderung nur das betroffene Markup mit GetItemFragmentHTML(aId), GetBadgeFragmentHTML oder GetListFragmentHTML und senden Sie es mit TsgcHTMX_Engine_Server.PushFragment oder BroadcastFragment, statt die Seite neu zu rendern. UnreadCount zählt die Elemente, deren Read False ist.
Editionen und Kanäle
Die Unit kompiliert, wenn SGC_HTML definiert ist, was sgcVer.inc für Android und iOS nicht tut. Sie funktioniert in jeder Edition, über WebSocket oder Server-Sent Events. sgcHTML ist ein eigenständiges Paket, das unabhängig von sgcWebSockets verkauft wird.
Seite oder Push
Der Posteingang entscheidet nicht selbst zwischen der Seite und einem Push: Das übernimmt TsgcHTMLComponent_Notification, siehe Notification und WebPush. Welche Kanäle jeder Benutzer möchte, wird in NotificationPreferences festgelegt.