02.10.2011 Ubercart - скрыть SKU и другие поля (модуль Ubercart Product Power Tools) | Drupal 6 26.09.2011 Пользовательские галереи и хранение файлов на сервере - Drupal 6 22.06.2011 Блок последних комментариев блога - DRUPAL 6 16.06.2011 Показывать блок в определенных типах материалов и на определенных страницах - Drupal 6 16.06.2011 Топ 10 блоггеров - Drupal 6 21.05.2011 Модуль переноса комментариев для Drupal 6 22.03.2011 Подсветка синтаксиса кода в Drupal 6 22.03.2011 Кнопки социальных сетей для Drupal
#75

Сниппет поиска по товарам - Drupal 6

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

Итак что делает данный скрипт:

Саму форму поиска можно расположить где угодно, главное не забыть указать корректный action для формы, у меня в примере это "/node/10". Расписывать подробно не буду все практически также, как в примере сниппета, который выводит блок популярных товаров.

 

  1. <form action="/node/10" accept-charset="UTF-8" method="post" id="search-theme-form">
  2. <div class="form-item" id="edit-search-theme-form-1-wrapper">
  3.   <input type="text" maxlength="128" name="search_search_word" id="edit-search-theme-form-2" size="15" value=" Поиск по сайту" class="search_form_word" onfocus="if (this.value == ' Поиск по сайту') {this.value = ' '}" onblur="if (this.value == ' ') {this.value = ' Поиск по сайту'}" />
  4. </div>
  5. <input type="image" name="op" value="Поиск" id="edit-submit-1" class="form-submit customclass" src="/drupal620/themes/mebel/images/search_s.png" />
  6. </form>
  7.  
  8. <?php
  9.  
  10. $type = 'product';
  11. $num_nodes = '50';
  12.  
  13. if(isset($_POST['search_search_word']))
  14. {
  15. $search_word = $_POST['search_search_word'];
  16. }
  17.  
  18. $search_word = trim($search_word);
  19. $search_word = stripslashes($search_word);
  20. $search_word = strip_tags($search_word);
  21. $search_word = htmlspecialchars($search_word);
  22.  
  23. if(isset($search_word) AND $search_word !='' AND $search_word !='b*')
  24. {
  25.  
  26. $sql = 'SELECT node.nid,
  27. node_revisions.nid, 
  28. node.type,
  29. node_revisions.title,
  30. node_revisions.teaser,
  31. uc_products.nid,
  32. uc_products.sell_price,
  33. content_type_product.nid,
  34. content_type_product.field_bigimg_fid
  35. FROM node
  36. LEFT JOIN node_revisions ON node.nid = node_revisions.nid
  37. LEFT JOIN uc_products ON node.nid = uc_products.nid
  38. LEFT JOIN content_type_product ON node.nid = content_type_product.nid
  39. WHERE node.type = "product" AND node_revisions.teaser LIKE "%'.$search_word.'%"
  40. OR node.type = "product" AND node.title LIKE "%'.$search_word.'%"
  41. ORDER BY node.nid DESC';
  42.  
  43. $result = db_query_range($sql, $type, 0, $num_nodes);
  44.  
  45. print '<table class="views-table cols-1">
  46. <tbody>';
  47.  
  48. while ($n = db_fetch_array($result)) 
  49. {
  50. $n_nid = $n['nid'];
  51. $n_title = $n['title'];
  52. $n_price = $n['sell_price'];
  53. $n_teaser = $n['teaser'];
  54.  
  55. $n_teaser = strip_tags($n_teaser);
  56. $n_teaser = str_replace($search_word, '<B>'.$search_word.'</B>', $n_teaser);
  57.  
  58. $file_fid = $n['field_bigimg_fid'];
  59.  
  60. $sql_fid = "SELECT fid, filepath FROM files WHERE fid ='".$file_fid."'";
  61. $result_fid = db_query($sql_fid);
  62. $n_fid = db_fetch_array($result_fid);
  63. $filepath = $n_fid['filepath'];
  64.  
  65. $n_price_row = strpos($n_price, ".");
  66. $n_price = substr($n_price, 0, $n_price_row);
  67.  
  68. print '<tr class="odd views-row-first views-row-last">
  69. <td class="views-field views-field-field-bigimg-fid">
  70. <a href="/product/'.$n_nid.'" class="imagecache imagecache-product_list imagecache-linked imagecache-product_list_linked"><img src="'.$filepath.'" alt="'.$n_title.'" title="" class="imagecache imagecache-product_list" width="100" height="67" /></a>
  71. </td>
  72. <td class="views-field views-field-teaser-search">
  73. <a href="/product/'.$n_nid.'">'.$n_title.'</a>
  74. <p class="search-teaser">'.$n_teaser.'</p>
  75. </td>
  76. <td class="views-field views-field-sell-price">
  77. <span class="uc-price-product uc-price-sell_price uc-price">'.$n_price.'</span>
  78. </td>
  79. </tr>';
  80. }
  81.  
  82. print '</tbody>
  83. </table>';
  84.  
  85. }
  86.  
  87. ?>

29.03.2011 Пейджинг для Image Gallery (вперед, назад) - Drupal 6 22.03.2011 Форма входа вверху сайта - Drupal 6 22.03.2011 Сниппет поиска по товарам - Drupal 6 22.03.2011 Сниппет вывода самых популярных товаров - Drupal 6 22.03.2011 Сниппет вывода последних новостей в блоке - Drupal 6 03.03.2011 Денвер, Drupal7 19.03.2010 Индивидуальный шаблон для каждой страницы - Drupal 6 31.03.2010 Drupal 6 ошибка 0 /upload/js
О сайте