ВопросКак исключить поля CCK из результатов поиска?

Всем привет. Нужно что бы в результатах поиска не выводились определенные поля определенного типа материала. Друпал 7. Нагуглил кое-какую информацию, но вся очень старая.

Комментарии

Аватар пользователя Belpirat
Belpirat написал:

[quote]Всем привет. Нужно что бы в результатах поиска не выводились определенные поля определенного типа материала. Друпал 7. Нагуглил кое-какую информацию, но вся очень старая.[/quote]
=) Да. да... столкнулся тоже с этой проблемой, помогите решить пожалуйста!

21.01.2012 14:18
Аватар пользователя Spleshka
Spleshka написал:

В Друпале есть замечательный хук hook_node_view(). В нём вы можете указать, что выводить при любом просмотре материала. Он получает 2 параметра - $node (объект материала) и $view_mode (режим просмотра). Так вот, в момент просмотра результатов поиска $view_mode равен search_result. Исходя из этого вы легко можете написать что-то типо такого:

/**
 * Implements hook_node_view().
 */
function ИМЯМОДУЛЯ_node_view($node, $view_mode) {
  if ($view_mode == 'search_result') {
    $node->field_fieldname['#access'] = FALSE;
  }
}

Тем самым вы закрываете поле от просмотра.

22.01.2012 23:39
Аватар пользователя автор вопроса
автор вопроса написал:

Спасибо! А я уже решил так:

function mymodule_node_view_alter(&$build) {
  if ($build['field_name']['#view_mode'] == 'search_result'){
    unset($build['field_name']);
  }
}

Но самое интересное - есть UI настройка для этого всего: /admin/structure/types/manage/имя_типа_материала/display (расширенные параметры вывода).

23.01.2012 22:12
Аватар пользователя KA4AH
KA4AH написал:

Попробовал через UI настроить поиск... в админке настраиваю, а на результатах поиска это никак не отражается... в чём может быть дело...

16.05.2012 22:12
Аватар пользователя Spleshka
Spleshka написал:

Кстати да, в интерфейсе же это есть :) Совсем забыл. Спасибо, что напомнили!

25.01.2012 03:27

Комментировать