Kalender Notification Badge

Keiner hat dran geglaubt, doch es ist passiert, WBB Support ist auf 6.2.
Neuer Shop von Pur Digital, ich hoffe es funktioniert alles so wie es soll.
Habe extra kein Update gemacht, da ich so viel besser alten Schrott losgeworden bin.
  • Hallo,

    per CSS könnten zwar per data-page-identifier="com.woltlab.calendar.Calendar" , data-application="calendar" , data-template="calendar" bzw. auch data-page-id="XYZ" auf den Kalender zugegriffen werden, allerdings bezieht sich der Zugriff direkt auf dem Kalender und die verbundenen Seiten des Kalenders. Lediglich data-page-id="XYZ" bezieht sich explizit nur auf die entsprechende Seite (z.B. Kalenderübersicht), jedoch nicht die weiteren Kalenderseiten (z.B. Wochenansicht, etc.). Gleichermaßen welche Methode gewählt würde, würde dies jedoch nicht im Hauptmenü greifen und somit auch weiterhin die Badges dort angezeigt werden würden.

    Eine Bearbeitung des __menu-Templates, welches für das Hauptmenü zuständig ist, kommt ebenfalls nicht in Frage, da in diesem Template das Hauptmenü automatisch generiert wird. Hier ließe sich wenn dann nur etwas ergänzen, hinzufügen oder entfernen. Würde hier jedoch die Badges entfernt werden, so würde dies auch alle anderen Apps (Forum, Galerie, Filebase, Blog, etc.) betreffen.

    Möglichkeit der Umsetzung wäre, insofern dies von Dir angemessen ist, im ACP den Menüeintrag zum Kalender zu deaktivieren / entfernen und per Anpassung des Templates manuell (hardcoded) im __menu-Template ohne Badge-Funktion einzufügen.

    [info='warning']Das Anpassen, Editieren oder Verändern von Templates kann, selbst bei kleinen Fehlern, zu einen Fatal-Error führen! Entsprechend dem ist vorher stets ein Backup zu machen und etwaige Tests in einer Testumgebung vorzunehmen![/info]

    Dazu öffne das __menu-Template und suche am Ende des Templates nach:

    HTML
        {event name='menuAfter'}
      </ol>
    </nav>

    Füge davor folgenden Quellcode ein:

    HTML
    <li class="{if $menuItemNode->isActiveNode()}active{/if}{if $menuItemNode->hasChildren()} boxMenuHasChildren{/if}" data-identifier="{@$menuItemNode->identifier}">
      <a href="HIER_URL_ZUM_KALENDER_EINTRAGEN" class="boxMenuLink" {if $menuItemNode->isExternalLink()}{if EXTERNAL_LINK_REL_NOFOLLOW} rel="nofollow"{/if}{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}>
        <span class="boxMenuLinkTitle">{lang}HIER_SPRACHVARIABLE_ZUM_KALENDER_EINTRAGEN{/lang}</span>
      </a>
    </li>

    Passe nun den eingetragenen Quellcode an (u.a. href="HIER_URL_ZUM_KALENDER_EINTRAGEN" und die Sprachvariable {lang}HIER_SPRACHVARIABLE_ZUM_KALENDER_EINTRAGEN{/lang}) und speicher dieses ab. Damit würde nach allen anderen Menüeinträgen der Kalender ohne Badges als letzten Menüeintrag angezeigt werden. Die Badges auf den Kalenderseiten, ließe sich wie im ersten Abschnitt genannt, per CSS mit z.B. [tt]data-page-identifier="com.woltlab.calendar.Calendar" span .boxMenuLinkOutstandingItems badge badgeUpdate { display: none; }[/tt] entfernen.

    Gruss,
    Andreas

  • Wow, vielen Dank. Da hast du ja richtig arbeit reingebuttert. Abbbberrr....
    Ich habe es anders gelöst bekommen: ich habe einfach nur ein neuen Menüpukt angelegt und den Kalender als externen Link eingetragen :saint:

    Das Badge ist weg und meine User zufrieden, Kalender funktioniert wie er soll.

    Aber dennoch ein dickes Danke für deine Mühen ;)

  • Wow, vielen Dank. Da hast du ja richtig arbeit reingebuttert. Abbbberrr....

    Nichts zu danken und immer gern geschehen, doch das "Abbbberrr" obliegt hier in anderen Händen, mit welchen Du Dich an dieser Stelle einmal genauer auseinandersetzen solltest. Nur im kurzen gesagt ist die einfachste Möglichkeit (auf Dauer) nicht immer gleich die bessere und das meine ich jetzt nicht nur im Bezug der Umsetzung und der Benutzerfreundlichkeit. Sicherlich ist damit alles getan um es allen (Dir und Deinen Benutzern) recht zu machen, doch der entscheidende Knackpunkt liegt nicht nur daran, sondern auch an der Umsetzung im Detail ;)

    Gruss,
    Andreas

  • Da hast du natürlich recht und ich habe es in der Tat mal in einen Testboard weitab von der Piste ausprobiert.

    Die Badges auf den Kalenderseiten, ließe sich wie im ersten Abschnitt genannt, per CSS mit z.B. data-page-identifier="com.woltlab.calendar.Calendar" span .boxMenuLinkOutstandingItems badge badgeUpdate { display: none; } entfernen.


    Gruss,
    Andreas

    Allerdings komme ich hier nicht so ganz voran.

    ich nehme mal an das hier muss ich in die CSS eintragen ja?

    Code
     [tt]data-page-identifier="com.woltlab.calendar.Calendar" span .boxMenuLinkOutstandingItems badge badgeUpdate { display: none; }[/tt]

Jetzt mitmachen!

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