Konflikt wenn zwei Module denselben Url-Pfad per hook_menu(_alter) brauchen
Eingetragen von ansiman (5)
am 24.02.2009 - 13:49 Uhr in
am 24.02.2009 - 13:49 Uhr in
Hi,
es gibt da ein Dritt-Modul, das den URL-Pfad "taxonomy/term/%" auf eine eigene Callback-Funktion legt. Dort ruft es zunächst die ursprüngliche Callback-Funktion aus dem Drupal Core auf und modifiziert dann den Output.
Ich möchte ein Modul schreiben, dass etwas ähnliches macht. Wenn ich jetzt allerdings per hook_menu_alter den URL-Pfad auf meine Callback-Funktion leite und dort die Core-Callback-Funktion aufrufe, dann würde das andere Dritt-Modul nicht mehr funktionieren. Gibt es da eine schlaue Möglichkeit, dass mehrere voneinander unabhängige Module den selben URL-Pfad abfangen?
Danke & Grüße vom ansiman
- Anmelden oder Registrieren um Kommentare zu schreiben
und dann hintereinandere
am 24.02.2009 - 15:21 Uhr
und dann hintereinandere ausführen? du hast den callback von vorher, dann kannste einen neuen machen, der den alten annimt, und den neuen extra ausführt.
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
Danke und ja, hintereinander
am 24.02.2009 - 15:49 Uhr
Danke und ja, hintereinander ausführen. Ich frage mich nur jetzt: Wenn ich über hook_menu_alter meinen Callback setze, über welchen Hook kann ich _vorher_ den aktuellen Callback auslesen und wo zwischenspeichern damit ich ihn dann in meiner Callback-Funktion triggern kann?
der selbe :) ist alles
am 25.02.2009 - 14:17 Uhr
der selbe :)
ist alles gespeichert
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
Ah, mein erstes Modul nimmt
am 25.02.2009 - 18:50 Uhr
Ah, mein erstes Modul nimmt langsam Gestalt an, danke!
(Hoffentlich) letzte Frage in diesem Zusammenhang: Die ursprünglichen (und inzwischen gespeicherten) Werte von $items['taxonomy/term/%'] aus hook_menu_alter() will ich ja in meinem hook_uninstall() zurückschreiben.
Wie bekomme ich jetzt von dort Zugang zu den $items[], sprich den Einträgen in der menu_router-Tabelle? Muss ich das per SQL machen oder gibt es einen eleganteren Weg?
muste nicht machen, denn
am 26.02.2009 - 12:53 Uhr
muste nicht machen,
denn wenn das modul nicht mehr aktiviert ist, dann wird beim nächsten durchgang einfach das $items ohne deine Veränderungen gebaut, und fertig
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
Ja, hatte ich auch schon
am 26.02.2009 - 13:21 Uhr
Ja, hatte ich auch schon überlegt. Aber folgendes Szenario: Modul A biegt ein Callback auf sich um. Dann komme ich und biege das Item auf mich um, bin aber so nett und rufe danach Modul A auf. Wenn mich der Admin irgendwann deinstalliert und ich nicht aufräume, dann ruft Drupal nach dem nächsten Rebuild die Core-Funktion und nicht die des Modul A auf. Daher war meine Überlegung, dass es evtl. nett wäre, bei meinem Uninstall wieder das Callback von Modul A einzusetzen. Oder denke ich da zu weit?