Such-Resultat verändern? Wie ein verstecktes CCK Field im Such-Resultat anzeigen?
am 28.01.2010 - 18:28 Uhr in
Hallo,
bitte verzeiht mein CrossPosting im Forum Modul-Suche. Ich möchte hier mit Eurer Hilfe nach einer Lösung mit Core-/Bordmitteln suchen.
Meine Frage:
Wie kann ich in den Search-Results einer Suche das Fundstellen-Zitat (das den Treffer enthält) ändern? Wie kann ich im Search-Result ein ansonsten versteckten Feld anzeigen, für das der User keine Berechtigung hat?
Ich habe ein CCK-Feld in den Nodes, für das der unangemeldete Besucher keine Anzeigeberechtung hat. Dieses Feld bleibt ihm verborgen. Es wird aber schön indexiert, und das soll es auch. Und wenn der Benutzer sucht, soll er auch Treffer erhalten, wenn das Suchwort in dem versteckten Feld liegt. Das klappt schon soweit. Aber im Search-Result, wird der Text um die Funstelle nicht korrekt angezeigt, weil der Benutzer ja keine Berechtigung hat, dieses Feld anzuzeigen. Stattdessen zeigt Drupal den Node-Teaser ohne Fundstellen-Horvorhebung.
ANSATZ?
Irgendwie geht das wohl mit nodeapi('search result'), aber ich brauche eine Hilfestellung, eine Ansatz von Euch, von dem aus ich mich weiter reinfuchsen kann. Wie benutze ich "nodeapi('search result')"
Danke und Gruß,
Stephan
- Anmelden oder Registrieren um Kommentare zu schreiben
Hook nodeapi, Operator "search result"
am 28.01.2010 - 18:49 Uhr
Um den Hook nodeapi zu verwenden brauchst Du ein eigenes Modul.
In dem Modul kannst Du die Funktion my_custom_module_nodeapi() verwenden. Wobei "my_custom_module" der Name Deines Modules ist. Dein Modul ist also my_custom_module.module und my_custom_module.info.
In dieser Funktion my_custom_module_nodeapi() kannst Du auf den Operator "search result" reagieren:
<?php
function my_custom_module_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
switch ($op) {
case 'search result':
// Der Code um was zu machen.
// dsm($node);
break;
}
}
?>
Ich hoffe Du verwendest das Modul Devel? Dann sind auch solche Sachen wie dsm($node) moeglich.
Edit
Du hast unter Drupal 5 gepostet. Da ist das mit der *.info Datei nicht so wie bei Drupal 6 - beachte dies.
------------------------
Quiptime Group
Da geht noch was.
Klasse. Vielen Dank für
am 28.01.2010 - 19:29 Uhr
Klasse. Vielen Dank für Deine Zeit!
Ich werde jetzt erst selbst versuchen herauszufinden, wie ich an der Stelle // Der_Code_um_was_zu_machen das Such-Resultat ersetze. Soweit war ich bisher ja noch nicht. Also, Danke.
Beachte den Devel Modul
am 28.01.2010 - 20:20 Uhr
Beachte den Devel Modul Hinweis und lass dir mal mit dsm($node) das Nodeobject anzeigen. Eventuell ergeben sich aus den Parametern des Nodeobject $node Ansatzpunkte zu dem was Du machen willst.
------------------------
Quiptime Group
Da geht noch was.
Danke, quiptime! Habs
am 10.03.2010 - 04:18 Uhr
Danke, quiptime! Habs geschafft! In das eigene Hilfmodul habe ich folgenden Code gesetzt:
function myhelper_nodeapi($node, $op) {
if ($op =='update index') {
$text = $node->field_heft_volltext_index[0]['value'];
return $text;
}
}
Beim Indexieren wird dieses Feld nun mitindexiert und in den Suchresultaten auch schön eine Trefferstelle im Kontext hervorgehoben. Das Feld wird aber ansonsten durch das Con-Template nicht angezeit und ist damit für den Benutzer immernoch unsichtbar beim normalen Nodeview.
KLASSE!
Gruß,
Stephan