Ich versuche zu lernen, wie man einen benutzerdefinierten belichteten Filter für ein beigesteuertes Modul (Auswahl oder anderes) erstellt. Ich habe dieses Tutorial für Drupal 6 gefunden, aber der Code scheint auf Drupal 7 nicht sofort zu funktionieren.
Ich habe auch versucht, den Code im hierarchischen Auswahlmodul zu betrachten, aber er scheint viel komplexer zu sein als das, was ich versuche.
Hat jemand Vorschläge für Tutorials oder Module, mit denen benutzerdefinierte Filter auf relativ einfache Weise implementiert werden (z. B. nicht viele benutzerdefinierte Handler wie das Standortmodul), von denen ich lernen kann?
Ich habe mich im Internet herumgetrieben und versucht, eine Antwort auf die gleiche Frage zu finden, und dies ist das Ergebnis, das ich erhalten habe:
Implementieren Sie mehrere Hooks in Ihrem benutzerdefinierten Modul. Ersetzen Sie
modulename
undfiltername
mit Ihren tatsächlichen Namen.Erstellen Sie einen Ordner mit dem Namen
inc
in Ihrem Modulordner und erstellen Sie eine Datei mit dem Namenmodulename_handler_filter_filtername.inc
dort (siehe obigen Code für einen impliziten Verweis auf diese Datei). Vergessen Sie nicht, die tatsächlichen Modul- und Filternamen zu verwenden.Füge folgenden Code in diese
modulename_handler_filter_filtername.inc
Datei ein. Der Code, den ich für dieses Beispiel verwendet habe, erstellt eine Reihe von Optionsfeldern, die Jahre darstellen. So können Sie Knoten nach dem Erstellungsjahr filtern, wobei Sie nur die Jahre verwenden, in denen Knoten erstellt wurden.Das ist alles, was Sie brauchen, um den einfachsten benutzerdefinierten belichteten Filter zum Laufen zu bringen!
Beachten Sie, dass die Verwendung von
FROM_UNIXTIME
inSELECT
Abfragezustand Ihre Datenbank verlangsamen kann.quelle
$this->query->add_where($this->options['group'], $real_field_name, $this->value['value'], $this->operator);
. Es kann im obigen Link gefunden werden.quelle