Hook_install überwachen
am 28.01.2011 - 09:30 Uhr in
Hallo
es geht schon wieder um ein bereits existierendes Modul, dass vermutlich nicht auf D7 portiert werden wird. Das liebe ich an der World Wide Open Source Community. :-)
Es geht vermutlich um eine grundsätzliche Frage. Das Modul lässt sich unter D7 nicht korrekt installieren, obwohl es dann als installiert angezeigt wird. Es fehlen einige Inhaltstypen, Views und mir ist nicht so ganz klar woran dieses liegt. Ich habe das Modul durch den Coder für die Portierung gejagt.
Nun wollte ich mir selber helfen und habe nach Mitteln und Wege gesucht die einzelnen Schritte der hook_install Routine zu loggen mittels watchdog usw., aber leider ohne Erfolg. Es sind in D7 keine Einträge unter Protokollnachrichten zu finden. Daher mal die Frage.
1) Wie gehe ich vor, um den Fehler zu finden
2) Kann ich in hook_install bereits Nachrichten, Variablen oder sonstige Informationen über watchdog ausgeben
3) Wenn 2) geht, woran kann es liegen das hook_install nicht ausgeführt wird.
Danke
Joachim
- Anmelden oder Registrieren um Kommentare zu schreiben
error_log
am 28.01.2011 - 10:11 Uhr
Hallo.
Verwende die PHP-eigene Funktion
error_log()
. Das schreibt die Nachrichten in das error-Log PHP.[api:hook_install:7] wird übrigens nur ausgeführt, solange das Modul noch nicht in der Tabelle system vermerkt ist. Wenn Du das Modul also deaktivierst und dann wieder aktivierst, wird [api:hook_install:7] nicht nocheinmal ausgeführt.
Stefan
PS: und ja, Open Source bedeutet auch manchmal, das bestehende Modul nicht weiterentwickelt werden. Die Entwicklung erfolgt ja nur, weil man Spass daran hat, nicht, weil man dafür bezahlt wird.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Hallo Stefan Das mit der Open
am 28.01.2011 - 16:31 Uhr
Hallo Stefan
Das mit der Open Source war nicht so gemeint, aber es nervt hin und wieder... :-) Bzgl. der Fehlerprotokollierung bin ich zu mindestens mal ein Stück weiter. Jetzt hat er ein Problem mit dem installieren eines Inhaltstypen, der über content_copy installiert wird. Das Modul gibt es in 7 auch wieder nicht, d.h. die Frage lautet wie installiere ich ein Inhaltstyp, der als Datei vorliegt in D7.
Also ich bin wirklich nicht auf den Kopf gefallen, aber das muss doch einfach im Web zu finden sein. Das müsste doch eigentlich auch die Coreinstallation tun? Hast du hierfür auch noch eine Idee?`
Danke und Gruß
Joachim
Inhaltstypen
am 28.01.2011 - 16:51 Uhr
... die Frage lautet wie installiere ich ein Inhaltstyp, der als Datei vorliegt in D7.
Verwende das Modul [do:features Features] als Abhängigkeit zu Deinem Modul. Das ist der sicherste Weg, Inhaltstypen (und nicht nur die) bei der Installation anzulegen.
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Danke erstmal. Ich werde mir
am 28.01.2011 - 18:17 Uhr
Danke erstmal. Ich werde mir das Modul mal anschauen. In dem Code für D6 sind es allerdings nur 5-6 Zeilen Code, daher finde ich ein Modul etwas überdimensioniert.
Schönes Wochenende
Joachim
Also ich habe dann doch noch
am 03.02.2011 - 00:33 Uhr
Also ich habe dann doch noch etwas gefunden.
http://api.drupal.org/api/examples/node_example--node_example.module
Das funktioniert auch so weit. Nur leider scheinen nicht alle Optionen zur Verfügung zu stehen. Ich habe bisher vergeblich versucht die Kommentare zu deaktivieren, aber ich bleibe dran.
Gruß
Mal ne grundsätzliche Frage:
am 03.02.2011 - 08:55 Uhr
Mal ne grundsätzliche Frage: Dir ist bekannt, dass du Inhaltstypen bereits über den Core anlegen kannst, ja? Nicht das wir hier komplett aneinander vorbei schreiben ;-)
Neben error_log gibts auch noch syslog() mit dem PHP die Nachrichten in das Systemlog und nicht das PHP Error Log schreibt. Noch eine Anmerkung zu hook_install. Das wird ausgeführt:
1. Wenn das Modul zum ersten Mal installiert wird oder
2. Wenn das Modul inaktiviert (/admin/modules haken raus) und anschließend deinstalliert wurde (/admin/modules/uninstall).
Wenn du mit im Core anlegen
am 03.02.2011 - 09:35 Uhr
Wenn du mit im Core anlegen meinst, dass ich über die Verwaltungsoberfläche Inhaltstypen anlegen kann, dann ist mir das schon klar.
Also vielleicht muss ich noch sagen, dass ich kein echter Entwickler bin. Was wahrscheinlich schon an den Fragen erkennbar ist. Ich würde halt gerne ein Modul zusammenstellen, dass bei Aktivierung die Inhaltstypen dann entsprechend anlegt.
In dem auf D6 basierten Modul, dass ich auf D7 umsetzen möchte, wurden die Typen exportiert und im Rahmen der Installation über content copy wieder angelegt. Diese Möglichekeit scheint es in D7 ja nicht zu geben?!? Es muss ja für Modulentwickler eine Möglichkeit existieren (mal abgesehen von dem Featue Modul) Inhaltstypen programmgesteuert anzulegen.
Vielleicht bin ja auf dem völlig falschen Pfad, dann möge man mir das bitte mitteilen. :-)
Danke und Gruß
Joachim