<?php function phptemplate_search_item($item, $type) { if ($item['type'] <> "Page") { // I use my Page content type for 'household stuff', which I don't want included in my search. $output = ' <dt class="title"><a href="'. check_url($item['link']) .'">'. check_plain($item['title']) .'</a></dt>'; $info = array(); //echo "<pre>"; //var_dump($item); // Do this!! It'll tell you everything which is in your search variable!! //echo "</pre>"; if ($item['type']) { $info[] = check_plain($item['type']); } if ($item['node']) { $somevar1 = $item['node']->field_one_of_your_fields[0]['value']; $somevar2 = $item['node']->field_anoother_field[0]['value']; // you can add these somevars to the $info array, which Search uses for its result $info[] = "Something nice: " . $somevar1 . " - " . $somevar2; // OR you could also leave them out :-) . That way, these cck fields won't show up. }
//if ($item['user']) { //$info[] = $item['user']; // name of submitter //} //if (is_array($item['extra'])) { // $info = array_merge($info, $item['extra']); // information like nr. of comments etc. //} $output .= ' <dd>'. ($item['snippet'] ? '<p>'. $item['snippet'] .'</p>' : '') .'<p class="search-info">'. implode(' - ', $info) .'</p></dd>'; return $output; } else { return ""; }
}
?>
Но не смогу справиться с кодом самостоятельно.
Если кто может помочь буду признателен.
Условие: для типа материалов typename, поиск только по стандартному полю ноды "Заголовок".
Может кому пригодится, простой способ настройки вывода в поиске своего типа материала - http://ВашСайт/admin/content/node-type/ВашТипМатериала/display/search
В друпал 7 есть hook_node_search_result($node). Судя по описанию - то, что надо.
В template.php пишу:
function themename_node_search_result($node) {
//код, который не выполняется
}
Да. да... столкнулся тоже с этой проблемой, помогите решить пожалуйста!
Нашел еще один хук для Друпала 7: hook_search_execute(). Там вроде можно прописать фильтры для запросов к БД. Но я не шипкий друпал апи программер. Надеюсь на помощь...
Комментарии
Либо как определить конкретные поля CCK по которым должен происходить поиск?
Предположим только по заголовку но не по содержимому.
http://www.google.com/search?q=exclude+cck+fields+from+search&ie=utf-8&o...
Нашел ответ тут http://drupal.org/node/175762
template.php
<?php
function phptemplate_search_item($item, $type) {
if ($item['type'] <> "Page") {
// I use my Page content type for 'household stuff', which I don't want included in my search.
$output = ' <dt class="title"><a href="'. check_url($item['link']) .'">'. check_plain($item['title']) .'</a></dt>';
$info = array();
//echo "<pre>";
//var_dump($item); // Do this!! It'll tell you everything which is in your search variable!!
//echo "</pre>";
if ($item['type']) {
$info[] = check_plain($item['type']);
}
if ($item['node']) {
$somevar1 = $item['node']->field_one_of_your_fields[0]['value'];
$somevar2 = $item['node']->field_anoother_field[0]['value'];
// you can add these somevars to the $info array, which Search uses for its result
$info[] = "Something nice: " . $somevar1 . " - " . $somevar2;
// OR you could also leave them out :-) . That way, these cck fields won't show up.
}
//if ($item['user']) {
//$info[] = $item['user']; // name of submitter
//}
//if (is_array($item['extra'])) {
// $info = array_merge($info, $item['extra']); // information like nr. of comments etc.
//}
$output .= ' <dd>'. ($item['snippet'] ? '<p>'. $item['snippet'] .'</p>' : '') .'<p class="search-info">'. implode(' - ', $info) .'</p></dd>';
return $output;
} else {
return "";
}
}
?>Но не смогу справиться с кодом самостоятельно.
Если кто может помочь буду признателен.
Условие: для типа материалов typename, поиск только по стандартному полю ноды "Заголовок".
Может кому пригодится, простой способ настройки вывода в поиске своего типа материала - http://ВашСайт/admin/content/node-type/ВашТипМатериала/display/search
Та же проблема. В друпал 7 есть hook_node_search_result($node). Судя по описанию - то, что надо.
В template.php пишу:
function themename_node_search_result($node) {
//код, который не выполняется
}
В чем тут подвох? И что вообще надо писать в теле?
Нашел еще один хук для Друпала 7: hook_search_execute(). Там вроде можно прописать фильтры для запросов к БД. Но я не шипкий друпал апи программер. Надеюсь на помощь...