Как отобразить пользовательское поле CCK (текст или изображение) на странице результатов поиска Drupal?Как показать поле CCK в результатах поиска?
ответ
Это зависит от того, как вы выполняете поиск.
Если вы используете представления для создания поиска, вы можете сами решить, что показывать.
Если вы используете какую-либо другую поисковую механику, вы можете использовать комбинацию пропроцессного крючка, функции тематики, шаблона, который вы получите, который вы хотите. У вас должен быть доступ к узлу, поэтому отображение CCK должно быть достаточно простым.
Edit:
Для модуля ядра поиска Drupal вам нужно перезаписать поиск-result.tpl.php в вашей теме, чтобы изменить как распечатываются результаты поиска. Здесь вы можете добавить или удалить информацию. Если вам нужно больше переменных, вы можете создать их для использования в шаблоне в process hook. Это базовая тематика Drupal, проверьте handbook.
Вам необходимо переопределить поиск-результат-tpl.php в своей теме. Скопируйте его из модулей/поиска в каталог тем, очистите кэш тем, и вы настроены. Вы увидите, что имеется массив, доступный для файла темы с именем «result», который содержит кучу данных, включая объект узла. Таким образом, ваш файл выглядит примерно так:
<dt class="title">
<a href="<?php print $url; ?>"><?php print $title; ?></a>
</dt>
<dd>
<?php
// Here is the change
print $result['node']->field_name_of_cck_field['view'];
?>
<?php if ($snippet) : ?>
<p class="search-snippet"><?php print $snippet; ?></p>
<?php endif; ?>
<?php if ($info) : ?>
<p class="search-info"><?php print $info; ?></p>
<?php endif; ?>
</dd>
Удачи вам!
Это может быть просто $ node->, а не $ result ['node']. У меня нет установленной установки для проверки. – cam8001
['view'] не работает, вместо этого я использую ['значение']. – romandor
Значение представляет собой необработанное поле ввода пользователя, поэтому потенциально это может содержать небезопасные данные. Просмотр обрабатывается и гарантируется безопасным. – cam8001
1 Копия поиск-result.tpl.php файл из модулей/поиска в папке темы
2 Для CCK текстового поля добавить:
<?php if ($result['node']->field_name[0]['value']): ?>
<h4><?php print($result['node']->field_name[0]['value']); ?></h4>
<?php endif; ?>
3 Для ImageField с ImageCache:
<?php if ($result['node']->field_logo[0]['filename']): ?>
<img src="/sites/default/files/imagecache/path_to_file/<?php print $result['node']->field_logo[0]['filename']; ?>" />
<?php endif; ?>
4 CSS стиль следующий.
Thanx для cam8001 & googletorp!
Спасибо! Нет проблем с Views, но не может найти решение для основного модуля поиска Drupal. Может быть, у вас есть пример? – romandor