2009-06-08 13 views
0

Ich arbeite an einem RSS-Feed, wo Volltext-Suche angeboten werden muss - Sie suchen aus einer Box, und erhalten Sie das Ergebnis als RSS. Ich habe versucht, node_search und do_search arbeiten zu lassen, aber mir fehlt etwas ... aber was?Drupal node_seach

So weit ich sagen kann, etwas wie $ find = node_search ('search', 'type: article'); sollte mir ein Ergebnis geben, das alle übereinstimmenden Knoten enthält, wo der Typ = 'Artikel'. Aber wie lege ich das Keyword/Suchbegriff fest?

Was fehlt mir?

+1

Sind Sie mit D5 oder D6? –

+0

das ist drupal 5 –

Antwort

0

Die OpenSearch module macht Suchergebnisse als RSS verfügbar, keine Notwendigkeit, sie selbst zu codieren.

Wenn Sie ein spezialisiertes Formular wünschen, können Sie nach der Bearbeitung Ihres Formulars einfach zum OpenSearch-Ergebnis umleiten.

Nachtrag: Wenn Sie wirklich Ihre eigene wollen tun, Sie search_data wie diese verwenden:

<?php 
$data = search_data('your searchterms here'); 

Dies sucht Knoten (als Standard zweiten Parameter für search_data), kann aber auch Benutzer verwendet werden, um zu suchen und andere Dinge, die hook_search implementiert haben.

Auch, search_data, unter dem Namen, gibt tatsächlich die formatierten Suchergebnisse zurück. Wenn Sie die rohen Suchergebnisse haben möchten, können Sie direkt invokehook_search oder do_search verwenden. Beispiele:

<?php 
$results = module_invoke('node', 'search', 'your searchterms here'); 
$data = do_search($query, 'node'); 

Der Unterschied ist, dass der Haken Aufruf gibt Ihnen viel mehr Knoten bezogenen Daten (da es die knotenspezifische Suchcode durchläuft, neben der generischen do_search (hook_search Umsetzung des node.module ruft do_search auf, um die tatsächliche Arbeit zu erledigen) und eine möglicherweise genauere Suche, da die Knotensuche die Gewichte berücksichtigt, die Sie in den Sucheinstellungen festgelegt haben. Der Kompromiss ist eine langsamere Suchanfrage.

+1

danke, aber ich muss es codieren, ich brauche das als Teil eines vorhandenen Moduls, alles was ich wissen muss ist, wie gebe ich den eigentlichen Suchbegriff ein? –

+0

Okay, ich habe meine Antwort geändert (da die Formatierung in Kommentaren nicht erlaubt ist) mit ein paar Details über den direkten Zugriff auf Suchdaten :) – mikl

0

Es sollte nur Schlüssel sein: Wert, den Sie verwenden können - und "" auch.

hook_search

Phil

+0

yup, ich bekomme diesen Teil, aber was ist der Schlüssel für den Suchbegriff? –

+0

sein "Schlüssel"! Die verwendeten Dokumentations- und Benennungskonventionen sind für Drupal ziemlich dürftig, die Suche rangiert auf der wirklich schlechten Dokumentationsskala ziemlich hoch. –