Aus unerfiondlichen Gründen gibt es in Joomla immer noch keine Möglichkeit Accesskeys einzufügen. Auch hier ist wieder ein Override notwendig.
In Joomla 2.5 habe ich einen solchen Override bereits beschrieben. Der ist auch weiterhin im Prinzip gültig, mit Ausnahme, dass sich die Zeilennummern etwas verändert haben. In diesem Tutorial beschreibe ich eine etwas einfachere Variante dieses Overrides und mache aber auch eine Abfrage, ob die Raute (#) überhaupt im Menü enthalten ist. Bisher hat das immer zu einer Fehlermeldung geführt, falls das nicht der Fall war. Außerdem ist am Ende noch eine Anpassung der Breadcrumbs als Override enthalten. Denn dort muss die Raute ja dann auch entfernt werden.
Es muss zunächst eine vorhandene Datei kopiert werden. Dazu bitte in nachfolgendes Verzeichnis gehen und die genannte Datei öffnen:
/modules/mod_content/tmpl/default_component.php
Der Gedanke ist, dass im Backend eine Raute vor dem Buchstaben eingegeben wird, der als accesskey fungieren soll. Also Beispielsweise das "S" im Menütitel "Startseite" soll als Accesskey benutzt werden und optisch soll der Buchstabe unterstrichen werden. Im Backend wird das so eingegeben:
Die Rauten (#) werden dann im Frontend gelöscht und stattdessen der nachfolgende Buchstabe mit einem Unterstrich versehen. Dieser Buchstabe wird automatsich dem HTML-Attribut accesskey zugwiesen, welcher dem Menüverweis angefügt wird. Im Quelltext sieht das nun so aus:
Ab Zeile 25 muss zunächst die Position der Raute und des davon ableitenden Accesskey berechnet werden. Am Ende wird dann die Ausgabe mit dem Accesskey ergänzt und der unterstrichene Menütitel ausgegeben.
Speichern Sie diese Datei in Ihrem Template im HTML-Verzeichnis:
[IhrTemplate]/html/mod_menu/default_component.php
Der Override arbeitet nur und ausschließlich im zugwiesenen Template. Wenn Sie ein anderes Template einsetzen möchten, müssen Sie die default_component.php wie oben angegeben in das neue Template kopieren.
Aufrufen können Sie die Accesskeys wie folgt:
- Firefox und SeaMonkey: Umschalt+ALT+[TASTE]
- Opera: Umschalt+ESC+[TASTE]
- Internet Explorer: ALT+[TASTE]+ENTER
- Chrome: ALT+[TASTE]
Etwas unschön ist nun aber, dass die Breadcrumbs natürlich auch die Raute (#) im Pfad mit ausgeben. Um das zu verhindern können Sie einen Override bei den Breadcrumbs machen. Der ist schnell gemacht. Zunächst müssen Sie die Originaldatei editieren (wenn Sie kein eigenes Template benutzen, schauen Sie nach, ob Sie vielleicht schon einen Override für die Breadcrumbs im Template haben und editieren diese Datei). Die Originaldatei finden Sie hier:
/modules/mod_breadcrumbs/tmpl/default.php
Die bitte in das Template-Verzeichnis schreiben:
/templates/[IHR TEMPLATE]/html/mod_breadcrumbs/default.php
Suchen Sie nun in dieser Datei im unteren Abschnitt den nachfolgenden Code und fügen Sie die Zeilen 6 und 25 hinzu. In den Zeilen 10, 14 und 27 müssen Sie $item->name mit $pfadname ersetzen: