Wie genau interagieren Module mit Drupal ?
am 31.01.2008 - 01:34 Uhr in
Halli Hallo
Ich setze mich seid einigen Tagen mit der Entwicklung für Drupal auseinander.
Mittlerweile habe ich echt alles gelesen was man auf Drupal.org so findet.
Aber eines habe ich echt noch nicht verstanden...
Und zwar genau die Frage aus dem Topic ;)
Also wenn z.B. das Module "User Points" Points auf des Users Konto added sobald dieser z.B. einen Artikel gepostet hat, dann verstehe ich nicht wie kann das Module wissen das gerade etwas gepostet wurde ?
Da wohl kaum ein Daemon des Modules läuft der das über wacht :-p muss ja quasi ein Aufruf einer Funktion statt finden. Wie erzählen die Module also Drupal "bitte ruf mich auf wenn dies und das getan wird" ???
Diese Frage beschäftigt mich noch am meisten...
Anonsten sind die Infos auf Drupal.org ja echt super.
Obwohl nicht English sprechenden damit natürlich eine Menge verborgen bleibt...
Lg Uhu
- Anmelden oder Registrieren um Kommentare zu schreiben
Das geschieht über sog.
am 31.01.2008 - 10:17 Uhr
Das geschieht über sog. Hooks, Funktionen die einem bestimmten Namensschema folgen und durch dieses steuern bei welchem Ereignis sie von Drupal aufgerufen werden.
--
"Look, Ma, I'm dead!"
Cell, Stephen King
Hallo Danke für deine
am 01.02.2008 - 08:45 Uhr
Hallo
Danke für deine Hilfe.
Das wusste ich so schon.
Aber nur dadurch das die Hooks irgendwann mal deklariert werden weiß ja Durpal noch lange nicht welcher wann zuständig ist !?
Es muss doch eine Art Zuordnung geben die sagt wenn "dies und das" dann rufe die "Hook-Funktion" aus Modul XY auf.
Irgendwie sowas...!?
Wäre toll wenn da jemand nochmal genauere Infos zu hat.
Lg Uhu
Doch, das weiß es
am 01.02.2008 - 10:40 Uhr
Doch, das weiß es :P
Schickst du z.B. ein Formular ab, werden die entsprechenden Submit-Hooks gesucht und ausgeführt. In der Core-Submit-Funktion wird über node_invoke() und node_invoke_nodeapi() dafür gesorgt, dass evtl. vorhandene node-spezifischem Submit-Hooks aufgerufen werden. So funktioniert es im Grunde mit allem was Drupal an Funktionalität zur Verfügung stellt.
--
"Look, Ma, I'm dead!"
Cell, Stephen King
Module Aufrufe über module_invoke
am 01.02.2008 - 11:27 Uhr
Module (im Speziellen) werden über module_invoke aufgerufen:
http://api.drupal.org/api/function/module_invoke
Dieses ruft wiederum die Funktionen auf.
Sowohl die Hook-Funktionen als auch die User-Funktionen werden
dynamisch (aus den Funktionsparametern) zusammengesetzt.
Für Beispiele siehe auch; die core-Module z.B. von CCK das content.module
wie dort die Field-Hooks zusammengesetzt werden...
Super Danke Das klingt sehr
am 01.02.2008 - 11:51 Uhr
Super Danke
Das klingt sehr einleuchtend.
Wenn aber z.B. ein Modul wie User Points nach jedem schreiben eines Artikels eine seiner Funktionen aufruft muss das doch vorher in Drupal igrendwo hinterlegt sein ?
Sprich woher weiß die "Artikel-Speicher-Funktion" oha jetzt ist User Points installiert und aktiviert jetzt muss ich es auch aufrufen ???
Freue mich über eure Unterstützung!
Lg Uhu
Hooks
am 01.02.2008 - 13:21 Uhr
Drupal geht duch alle aktivierten Module (alphabetisch) und ruft alle Hooks jedes Moduls auf.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
das heißt: je mehr module
am 02.02.2008 - 11:53 Uhr
das heißt: je mehr module man installiert hat, um so langsamer wird drupal? ich mein, er muß ja immer mehr dateien öffnen usw.
gruß, paul
Eppi schrieb das heißt: je
am 02.02.2008 - 16:10 Uhr
das heißt: je mehr module man installiert hat, um so langsamer wird drupal? ich mein, er muß ja immer mehr dateien öffnen usw.
Gegenfrage: Wird dein Wagen schneller, wenn du ihn mehr belädtst?
--
"Look, Ma, I'm dead!"
Cell, Stephen King
ich vertiele ja die last auf
am 04.02.2008 - 11:58 Uhr
ich vertiele ja die last auf mehrere autos (seiten) und damit sollte das einzelne auto nicht langsamer werden. hier wird leider jedes auto langsamer :-(
gruß, paul
Eppi schrieb ich vertiele
am 04.02.2008 - 13:06 Uhr
ich vertiele ja die last auf mehrere autos (seiten) und damit sollte das einzelne auto nicht langsamer werden. hier wird leider jedes auto langsamer :-(
Ich habe eben nochmal den Thread überflogen und kann mir gerade keinen Reim drauf machen, worauf du dich beziehst. Mal abgesehen, dass die Ausführungseinheiten Server sind und nicht "Seiten". Pack 1000 Durchschnittskunden auf eine Karre und auf eine baugleiche nur 500, was denkst du welche wird "schneller" sein?
--
"Look, Ma, I'm dead!"
Cell, Stephen King