So überschreiben / implementieren Sie den Hook eines Moduls

7

Gibt es eine Möglichkeit, den Haken eines Moduls zu überschreiben? Ich möchte einen search__query_alter()Hook schreiben , um die Suchergebnisse einzuschränken. Aber achive dies, sollte ich den Haken in Einbaumodul schreiben Suche ‚s .module Datei.

Auf diese Weise hacke ich in Drupal-Kerndateien, was schlecht sein muss. Gibt es eine Möglichkeit , den Haken für ein anderes Modul in meinem zu schreiben Thema ‚s - template.phpDatei oder woanders, nicht zu berühren die Kern Drupal - Dateien? Wenn ich search_query_alter()in die template.phpDatei meines Themas schreibe, funktioniert es einfach nicht.

Aus meiner Frage können Sie verstehen, dass ich bei Drupal sehr neu bin! Danke für die Hilfe.

Shafiul
quelle

Antworten:

6

Sie müssen ein benutzerdefiniertes Modul erstellen und eine benutzerdefinierte Hook-Funktion hinzufügen. Der Funktionsname lautet modulename_query_alter (). Drupal führt eine Liste aller enthaltenen Hooks, indem die aktivierten Module nach Funktionen durchsucht werden, die diesem Muster folgen.

Anweisungen zum Erstellen einer finden Sie hier . Dies ist das grundlegende Mittel, um benutzerdefinierte Verhaltensweisen auf Ihrer Website einzuführen. Das Hook-System wird hier erläutert , und Sie sollten sich die Verwendung der Funktion hook_query_alter hier ansehen .

Dies wird Ihnen den Einstieg erleichtern und zweifellos zu weiteren Fragen führen.

Quader
quelle
2

Sie können Hooks überschreiben oder Hooks zum Hinzufügen von Daten verwenden, indem Sie ein kleines benutzerdefiniertes Modul erstellen. Beginnen Sie hier mit dem Erstellen von Modulen: http://drupal.org/node/361112

Grundsätzlich fügen Sie dann hinzu:

function MYMODULE_query_alter () {
  //put your code here
}

Wobei MYMODULE der Name Ihres benutzerdefinierten Moduls ist.

Quentin Campbell
quelle