Nach der Installation ein mit MCM erzeugten Komponente per J!Installer, soll die Komponente als Menüpunkt in eines der Menü eingebunden werden. Dabei zeigt sich, dass das nicht sofort möglich ist. Die Komponente erscheint zwar als Eintrag in der Auswahlliste der Menütypen, aber wenn darauf geklickt wird, reagiert dieser Link nicht wie erwartet mit dem Aufruf einer Konfigurationsseite. Hier muss also Hand angelegt werden.

Zu dieser Problematik zunächst die Sammlung von etwas Grundlagenwissen, darüber wie Joomla mit den Menülinks für Komponenten umgeht.



Ein auf eine Komponente kann in der Menütyp-Auswahlliste zwei mgl. Formen haben, entweder es klappen zur Komponente Unterlayouts auf (z.B. wie bei den Komponenten search, contact oder poll), oder die Komponente bietet keine Unterlayouts zur Auswahl an, dann gibt es auch keine Auswahlmöglichkeit (wie beispielsweise bei virtuemart, breezingforms oder sh404SEF).

1. Aufbau eines Links ohne Unterlayouts

Bsp. Komp. ohne Unterlayout option task type url[option] menutype cid[]
BreezingForms com_menus edit component com_componentname usermenu 0

2. Aufbau eines Links mit Unterlayouts

Bsp. Komp. mit Unterlayouts option task type expand menutype cid[]
Shiftscheduling com_menus type -- componentname usermenu 0

Für componentname ist entspr. der sichere Name der Komponente einzusetzen.

Wie zu erkennen besteht der Unterschied in beiden Links hauptsächlich darin, dass es in dem einem url[option] und im anderen expand als GET-Parameter gibt.

3. Aufbau eines Links für die Auswahl eines Komponenten-Layouts

Als 3. Variante eine Links gibt es die die zur Auswahl eine Komponenten-Layouts dienen. Diese entsprechen immer diesem GET-Parameter-Aufbau - hier am Beispiel der Kontakt-Komponente für die zwei Layoutvarianten der Kontaktkategorieansicht und der Kontakteinzelansicht:

Bsp. Komp. mit Unterlayouts option task type url[option] menutype url[view]
Kontakt Layout: Kontakt com_menus edit component com_contact usermenu contact
Kontakt Layout: Kontaktkategorie com_menus edit component com_contact usermenu category

Noch ungeprüfte Vermutung: Vermutlich steht damit im direkten Zushg. die Existenz des Scriptes router.php, die auf Grund des GET-Parameters url[view] in die verschiedenen Layouts verzweigt.