Benachrichtigungsanzeige in der Menüleiste scripten

  • Guten Tag.

    Ich habe mit Hilfe von cms: PHP in Seite plugin eine eigene Seite in PHP und template erstellt. Dort greift die Seite auf die Datenbank zu, da Einträge erstellt werden können. Es ist eine Wettbewerb Seite, bei dem sich jeder Benutzer teilnehmen kann mit Bilder upload. Immer wenn ein neuer Eintrag stattgefunden hat, dann würde ich gerne für alle das sichtbar machen in der Menüleiste unter dem Menüpunkt Challenge die von mir erstellt wurde. Wie mache ich das am besten?

    MFG sleepy

    • Offizieller Beitrag

    Für den entsprechenden Eintrag muss in der page.xml-Datei ein handler angegeben werden, der wcf\system\page\handler\IMenuPageHandler implementiert, indem die entsprechende Klasse von wcf\system\page\handler\AbstractMenuPageHandler. Hier ist die Methode getOutstandingItemCount() relevant, die genau die Anzahl neuer Challenges zurückgeben sollte. Diese Methode muss also von der selbstgeschriebenen Klasse überschrieben werden.

  • Danke für die Richtung, ich werde mir das noch genauer anschauen, aber evtl kannst du, oder jemand anderer mir noch sagen, wie ich das am besten löse mit der Datenbank. Es muss doch irgendwo hinterlegt werden, dass dieser User schon die Nachricht gesehen hat. Oder wie ist es hier in wsf gelöst? Ich brauch nur so ein Tip, also keine Komplette Beschreibung, obwohl das auch nicht schlecht wäre :)

  • Danke, aber wie bekomme ich meine Challenge Seite mit dem ObjektTypes in Verbindung. Oder ich verstehe die ObjektTypes nicht so. Ich habe sie in der Datenbank mal angeschaut, aber kapiere die Verbindung damit nicht.

    • Offizieller Beitrag

    Du musst für Deine Wettbewerbe einen Objekt-Typ der Definition com.woltlab.wcf.visitTracker.objectType registieren:

    Code
    <type>
        <name>com.example.wcf.challenge</name>
        <definitionname>com.woltlab.wcf.visitTracker.objectType</definitionname>
    </type>

    Wenn Du dann überprüfen willst, ob ein bestimmter Wettbewerb schon gelesen wurde, oder wenn Du einen bestimmten Wettbewerb als gelesen markieren willst, verwendest Du neben den relevanten Wettbewerb-IDs com.example.wcf.challenge als Wert für den $objectType-Parameter.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!