Темизация поиска (выдача)

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

Аватар пользователя Sywooch Sywooch 9 апреля 2009 в 13:35

Господа, подскажите как темизировать выдачу стандартного search в drupal 6 + ubercart?

Или хотя бы намекните где почитать.

Хочу чтоб выдача была похожа на таблицу товаров и миниатюрами и кнопочкой "купить".

За ранее спасибо.

Комментарии

Аватар пользователя Bahiya Bahiya 9 апреля 2009 в 14:01

Результаты поиска Drupal темизируются в search-result.tpl.php и search-results.tpl.php, правда вот не знаю, как с Ubercart в этом плане дела обстоят

Аватар пользователя penexe penexe 9 апреля 2009 в 14:10

в search-result.tpl.php


<?php if($info['type'] == 'node'): ?>
  <?php print node_view($info_split['node'], TRUEFALSETRUE);?>
<?php 
else:?>
<dt class="title">
  <a href="<?php print $url?>"><?php print $title?></a>
</dt>
<dd>
  <?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>
<?php endif;?>

должно работать

Аватар пользователя ankheg ankheg 9 апреля 2009 в 14:14

Думаю, надо переопределить theme_search_item() в template.php функцией phptemplate_search_item(). И там использовать theme_uc_catalog_item(), предварительно сделав node_load() для $item.

Аватар пользователя ankheg ankheg 9 апреля 2009 в 17:33

А что, вариант penexe не работает разве? Ну все равно я выше неправильно написал, так что исправлюсь Smile Под рукой есть пятый друпал с уберкартом, так что речь о нем.

Открываю файл путь_к_моей_теме/template.php. Добавляю туда такую функцию

<?php
function phptemplate_search_item($item$type) {
  return 
node_view($item['node'], TRUE);
}
?>

Всё.

Аватар пользователя penexe penexe 9 апреля 2009 в 21:07

"Sywooch" wrote:
Ничего не изменилось к сожалению.

да я там ошибку допустил, вот рабочий вариант, выводит тизеры


<?php if($type == 'node'): ?>
  <?php
    $node 
$result['node'];
    
$node node_load($node->nid);
    print 
node_view($nodeTRUEFALSETRUE);
  
?>
<?php 
else:?>
<dt class="title">
  <a href="<?php print $url?>"><?php print $title?></a>
</dt>
<dd>
  <?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>
<?php endif;?>
Аватар пользователя leramulina leramulina 25 мая 2012 в 8:17

penexe wrote:

да я там ошибку допустил, вот рабочий вариант, выводит тизеры


<?php if($type == 'node'): ?>
  <?php
    $node 
$result['node'];
    
$node node_load($node->nid);
    print 
node_view($nodeTRUEFALSETRUE);
  
?>
<?php 
else:?>
<dt class="title">
  <a href="<?php print $url?>"><?php print $title?></a>
</dt>
<dd>
  <?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>
<?php endif;?>

Спасибо большое, penexe! Очень пригодилось!

Аватар пользователя AntonD AntonD 26 сентября 2012 в 21:53

Так же выражаю огромную благодарность penexe. Весь день мучился в поисках подобного решения. Пытался, безрезультатно естественно, решить эту проблему через вьюху page(search/node/%), так как хотелось что бы показывались темизированные во вьюхе блоки тизера состоящие из полей (картинка, заголовок, цена, кнопка покупки), а в вашем варианте сразу показывает страницу(ы) товара, что тоже неплохо. Еще раз благодарю.