[АКТУАЛЬНО] Как исключить cck поле из результатов поиска

Главные вкладки

Комментарии

Аватар пользователя molp molp 5 августа 2010 в 11:14

Либо как определить конкретные поля CCK по которым должен происходить поиск?
Предположим только по заголовку но не по содержимому.

Аватар пользователя molp molp 5 августа 2010 в 13:03

Нашел ответ тут 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, поиск только по стандартному полю ноды "Заголовок".

Аватар пользователя staryi staryi 25 августа 2011 в 16:01

Может кому пригодится, простой способ настройки вывода в поиске своего типа материала - http://ВашСайт/admin/content/node-type/ВашТипМатериала/display/search

Аватар пользователя kreaton kreaton 20 января 2012 в 19:42

Та же проблема. В друпал 7 есть hook_node_search_result($node). Судя по описанию - то, что надо.
В template.php пишу:

function themename_node_search_result($node) {
//код, который не выполняется
}

В чем тут подвох? И что вообще надо писать в теле?

Аватар пользователя Belpirat Belpirat 21 января 2012 в 14:17

"kreaton" wrote:
В друпал 7 есть hook_node_search_result($node). Судя по описанию - то, что надо.
В template.php пишу:
function themename_node_search_result($node) {
//код, который не выполняется
}

Smile Да. да... столкнулся тоже с этой проблемой, помогите решить пожалуйста!

Аватар пользователя kreaton kreaton 21 января 2012 в 14:47

Нашел еще один хук для Друпала 7: hook_search_execute(). Там вроде можно прописать фильтры для запросов к БД. Но я не шипкий друпал апи программер. Надеюсь на помощь...