Leider bietet Joomla noch nicht einmal die Möglichkeit bei den einzelnen Menüpunkten ein Tastaturkürzel anzugeben.
Jeder Browser hat eine Tastenkombination, mit der er wiederrum erlaubt, einen Tasturkürzel von Verweisen aufzurufen. Voraussetzung dafür ist, dass der Verweis das Attribut accesskey beinhaltet. Ein Link würde dann so aussehen:
Drückt man nun die vorgegebene Tastaturfolge seines Browsers plus dem "a" würde man direkt zu dem Verweis springen, ohne das man die Maus benutzen muss.
Für die einzelnen Browser sind das diese Tastaturkürzel:
- Firefox und SeaMonkey: Umschalt+ALT+[TASTE]
- Opera: Umschalt+ESC+[TASTE]
- Internet Explorer: ALT+[TASTE]+ENTER
- Chrome: ALT+[TASTE]
Man kann davon ausgehen, dass derjenige, der möglichst ohne Maus arbeiten will oder muss, bei seinem Browser "seinen" Tastaturkürzel kennt.
Um nun unsere Menüs mit einem accesskey zu versehen, müssen wir das vorhandene PHP-Skript anpassen. Am sinnvollsten machen wir das, in dem wir einen Override für das Menü-Modul programmieren. Wir können dann im Backend bequem zwischen den verschiedenen Layouts auswählen. Also dem Standard-Layout, so wie wir es kennen oder unserem Layout, das zu den Menüverweisen einen accesskey zufügt.
Damit das funktioniert, habe ich mir überlegt, dass man beim Eingeben des Menütiels für den einzelnen Menüpunkt, einfach eine Raute (#) vor dem Buchstaben schreibt, den man als Accesskey benutzen möchte.
Desweiteren würde es auch Sinn machen, wenn im Menütitel des Menüpunktes, der Buchstabe gleich automatsich unterstrichen wird, der als accesskey fungiert.Tastenkombination
Die entsprechenden Dateien die wir anpassen müssen, liegen im Menü-Modul-Verzeichnis: /modules/mod_menu/tmpl
In diesem Verzeichnis finden wir mehrere Default-Dateien. Die kopieren wir alle und ändern anschließend den Namen, in dem wir aus dem default ein key machen.
Die default-Dateien und unsere umbenannten Dateien
Editieren wir nun die key.php und beginnen mit den Anpassungen.
Am Anfang ermittelt diese Datei die verschiedenen Parameter, die wir eventuell im Modul eingegeben haben und überprüft danach den Zustand des Verweises zur Laufzeit.
In den Zeilen 49 und 53 wird es dann interessant für uns. Es wird auf Dateien verwiesen, die mit default_ beginnen. Da wir mittlerweile ja unsere eigenen Dateien erzeugt haben, ändern wir hier das default auch in key
Damit wird sicher gestellt, dass unsere Dateien aufgerufen warden. Wobei wir für den accesskey eigentlich nur eine Datei verändern müssen, wie wir gleich sehen werden, aber da hier zu allen Dateien verwiesen werden, die mit key_ beginnen und die Datei die wir verändern müssen in diesem "Stapel" liegt, müssen wir hier entsprechende Anpassungen vornehmen.
Nachdem wir das gespeichert haben, beginnen wir nun mit der eigentlichen Arbeit. Dazu editieren wir die Datei key_component.php
Oben werden einige Attribute und Klassen ausgelesen. In $linktype steht der Verweisname - also der Menüpunkttitel. Das ist also die Variable, die wir nun untersuchen müssen, ob und wo eine Raute angegeben ist. Ab Zeile 25 gebe ich diesen Code ein:
$pos ermittelt die Position, an der die Raute steht. Mit str_replace schneide ich nun zunächst das Rautezeichen aus dem Titel heraus, da das doch etwas merkwürdig aussehen würde, wenn wir das im Menü mit ausgeben würden.
In $key wird nun unser Accesskey gespeichert.
Danach muss ich den Menülink zusammensetzen. Ich muss zunächst den Anfang des Titels bis zum Tastaturkürzel ermitteln, danach das Kürzel untersteichen, in dem ich die HTML-Tags u für underline vergebe und dann den Rest des Menütitels ermittel und alles wieder zusammensetzen.
In $menutitel steht am Ende unser Verweistext, den wir dann auch etwas weiter unten ausgeben. In der default_component.php ist das in Zeile 28 und 32. In unserer Datei weiter unten, da wir Code zwischengefügt haben.
Dort muss anstelle des $linktype nun unser $menutitel und der accesskey mit ausgeben werden:
Die Datei speichern und wir sind mit der Programmierung fertig. Um das nun nutzen zu können, müssen wir in das Backend wechseln und dort unser Menü-Modul editieren und rechts unter Erweiterte Optionen unser Alternatives Layout auswählen.
Alternatives Layout = Override
Jetzt müssen wir noch einen neuen Menüpunkt anlegen und dort im Titel eine Raute für unser Tastaturkürzel angeben:
Die Raute wird dann zum Tastaturkürzel umgewandelt und der nachfolgende Buchstabe im Menü unterstrichen
Und so sieht es im Frontend aus