Mit Community Framework 2 schaffte WoltLab die Möglichkeit, eigene interne Links im Hauptmenü anzugeben, die beim Aufruf dann auch als aktiv markiert werden. Hierzu ist jedoch leider etwas Hintergrundwissen notwendig, das ich hier erläutern möchte.
Externe Links lassen sich wie gehabt hinzufügen - einfach per Direktlink. Ruft man allerdings die Funktion zum Hinzufügen eines internen Links auf (Darstellung -> Seitenmenü -> Menüpunkt hinzufügen), so erhält man einmal das Feld "Controller" und einmal das Feld "Parameter". Zumindest ersteres muss man zwingend ausfüllen.
Controller
Der Controller ist praktisch die PHP-Klasse der Seite und immer in Verzeichnissen
Parameter
Ein Parameter muss nicht zwingend angegeben werden, da er nicht immer benötigt wird. Parameter sind normal auf der jeweiligen Seite in der Adressleiste sichtbar. Als Beispiel nehme ich mal den Link "Ungelesene Beiträge" in Burning Board 4. Dieser sieht folgendermaßen aus:
Der Controller wäre hier z. B.
Der Parameter wäre dann alles nach dem
Mit diesem einfachen Wissen ist es somit möglich, eigene interne Links anzulegen, die dann beim Aufruf der jeweiligen Seite auch korrekt als aktiv markiert werden.
Externe Links lassen sich wie gehabt hinzufügen - einfach per Direktlink. Ruft man allerdings die Funktion zum Hinzufügen eines internen Links auf (Darstellung -> Seitenmenü -> Menüpunkt hinzufügen), so erhält man einmal das Feld "Controller" und einmal das Feld "Parameter". Zumindest ersteres muss man zwingend ausfüllen.
Controller
Der Controller ist praktisch die PHP-Klasse der Seite und immer in Verzeichnissen
/lib/action
, /lib/form
oder /lib/page
der jeweiligen Endanwendung oder von Community Framework (/wcf/lib/action
bzw. /wcf/lib/form
oder /wcf/lib/page
) zu finden. Im Falle von Burning Board 4 erhält man im Verzeichnis /lib/page
folgende Dateien aufgelistet:- BoardFeedPage.class.php
- BoardListPage.class.php
- BoardPage.class.php
- ThreadLogPage.class.php
- ThreadPage.class.php
- WatchedThreadListPage.class.php
- BoardFeedPage
- BoardListPage
- ThreadLogPage
- ThreadPage
- WatchedThreadListPage
namespace wbb\page;
Der Namespace lautet demnach wbb\page
und muss dem Klassennamen vorangestellt sein. Der richtige vollständige Controller für die oben genannten Seiten wäre demnach:- wbb\page\BoardFeedPage
- wbb\page\BoardListPage
- wbb\page\ThreadLogPage
- wbb\page\WatchedThreadListPage
/lib
) mit vorangestellter Abkürzung der Endanwendung inklusive Dateiname ohne das .class.php
.Parameter
Ein Parameter muss nicht zwingend angegeben werden, da er nicht immer benötigt wird. Parameter sind normal auf der jeweiligen Seite in der Adressleiste sichtbar. Als Beispiel nehme ich mal den Link "Ungelesene Beiträge" in Burning Board 4. Dieser sieht folgendermaßen aus:
/index.php/BoardQuickSearch/?mode=unreadPosts
Der Controller wäre hier z. B.
wbb\action\BoardQuickSearchAction
.Der Parameter wäre dann alles nach dem
?
, in diesem Fall demnach mode=unreadPosts
. Es wird nur dann ein Parameter benötigt, wenn er von dem jeweiligen Controller - also innerhalb von PHP - dann auch verarbeitet werden kann. Ansonsten wird er einfach ignoriert.Mit diesem einfachen Wissen ist es somit möglich, eigene interne Links anzulegen, die dann beim Aufruf der jeweiligen Seite auch korrekt als aktiv markiert werden.
2.993 mal gelesen
Black Rider -
Diese findest du im jeweiligen Verzeichnis der Anwendung auf dem Webspace.