Добавить в результаты поиска картинку и цену

Instant 1.9

#1 14 февраля 2022 в 23:06

Попробовала найти информацию на форуме, но не нашла. Казалось бы всё просто, в результатах поиска хочу оставить только материалы каталога и нужно добавить отображение картинки товара и цены товара. Я пыталась разобраться в файлах:
components/shop/psearch.php
components/shop/model.php
components/shop/frontend.php

components/search/model.php
components/search/frontend.php

Я уже пробовала в каких то компонентах добавлять нужные запросы, даже находила. Но здесь не разобралась от слова вооообще. Из какого файла, куда и что. Видимо здесь за отображение отвечают два файла, в одном фигурируют запросы, а в каком-то втором настройки отображения в выдаче. Но это не точно)) Сломала всю голову, нуждаюсь в вашей помощи.

#2 15 февраля 2022 в 00:35

Так добавьте это через админ панель. Настройте поиск. И сам каталог. В админ панели а не через файлы. 

#3 15 февраля 2022 в 02:50

Так добавьте это через админ панель. Настройте поиск. И сам каталог. В админ панели а не через файлы. 

Aliaksandr

В версии Instant 1.9 нет возможности настроить через админ-панель.

#5 20 февраля 2022 в 07:40

Могу помочь с данными правками, пишите в личку все решим.

#7 27 марта 2024 в 20:58

У меня нет магазина. Вот доска объявлений psearch.php

Изображение

Подчеркнутая строка — передача изображения в поиск, если ее нет, добавьте в аналогичный массив. 

Добавлено спустя 5 минут

И потом в шаблоне search_text.tpl, seach_tags.tpl добавьте вывод изображения.

<img src="{$item.imageurl}">

или с проверкой на наличие изображения

  1. {if $item.imageurl}
  2.  
  3. <img src="{$item.imageurl}">
  4.  
  5. {/if}
Добавлено спустя 1 минуту

P.S. и возможно придётся очистить кэш поиска

#8 28 марта 2024 в 01:29

В шопе код иначе выглядит. Пробовала и там разными методами, но ничего не вышло.

  1. if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
  2.  
  3. function search_shop($query, $look){ //query sends here already prepared and secured!
  4.  
  5. $inCore = cmsCore::getInstance();
  6. $inDB = cmsDatabase::getInstance();
  7.  
  8. global $_LANG;
  9.  
  10. //BUILD SQL QUERY
  11. $sql = "SELECT DISTINCT con.*,
  12. cat.title cat_title,
  13. cat.seolink as cat_seolink
  14. FROM cms_shop_items con, cms_shop_cats cat
  15. WHERE MATCH(con.title, con.shortdesc, con.description) AGAINST ('$query' IN BOOLEAN MODE) AND con.category_id = cat.id AND con.published=1";
  16.  
  17. //QUERY TO GET TOTAL RESULTS COUNT
  18. $result = $inDB->query($sql);
  19. $found= $inDB->num_rows($result);
  20.  
  21. if ($found){
  22. while($item = $inDB->fetch_assoc($result)){
  23. //build params
  24. $inCore->loadLanguage('components/shop');
  25. $link = "/shop/".$item['seolink'].".html";
  26. $place = $_LANG['SHOP'];
  27. $placelink = "/shop/".$item['cat_seolink'];
  28. $item['cat_title'] = mysql_real_escape_string($item['cat_title']);
  29. //include item to search results
  30. if (!dbRowsCount('cms_search', "session_id='".session_id()."' AND link='$link'")){
  31. $sql = "INSERT INTO cms_search (`id`, `session_id`, `title`, `link`, `place`, `placelink`)
  32. VALUES ('', '".session_id()."', '".$item['title']."', '$link', '$place', '$placelink')";
  33. $inDB->query($sql);
  34. }
  35. }
  36. }
  37.  
  38. $query = str_replace('+', '', $query);
  39. $query = str_replace(' ', '', $query);
  40. $query = str_replace('*', '%', $query);
  41.  
  42. //BUILD SQL QUERY
  43. $sql = "SELECT cat.title cat_title,
  44. cat.seolink as cat_seolink
  45. FROM cms_shop_cats cat
  46. WHERE cat.title LIKE '%{$query}%'";
  47.  
  48. //QUERY TO GET TOTAL RESULTS COUNT
  49. $result = $inDB->query($sql);
  50. $found = $inDB->num_rows($result);
  51.  
  52. if ($found){
  53. while($item = $inDB->fetch_assoc($result)){
  54. //build params
  55. $inCore->loadLanguage('components/shop');
  56. $link = "/shop/".$item['cat_seolink'];
  57. $place = $_LANG['SHOP'];
  58. $placelink = "/shop/".$item['cat_seolink'];
  59. $item['cat_title'] = mysql_real_escape_string($item['cat_title']);
  60. //include item to search results
  61. $sql = "INSERT INTO cms_search (`id`, `session_id`, `title`, `link`, `place`, `placelink`)
  62. VALUES ('', '".session_id()."', '".$item['cat_title']."', '$link', '$place', '$placelink')";
  63. $inDB->query($sql);
  64. }
  65. }
  66.  
  67. return;
  68. }
  69.  
  70.  
  71. ?>
#9 28 марта 2024 в 02:12

 Полина Емелина, судя по этому коду, вам нужно:

  • $sql = «INSERT INTO cms_search (`id`, `session_id`, `title`, `link`, `place`, `placelink`)
  • VALUES ('', '».session_id()."', '".$item['title']."', '$link', '$place', '$placelink')";
Полина Емелина

здесь, где пишутся данные для последующего поиска, добавить передачу изображения:

$sql = «INSERT INTO cms_search (`id`, `session_id`, `title`, `link`, `place`, `placelink`, `image`)
VALUES ('', '».session_id()."', '".$item['title']."', '$link', '$place', '$placelink', '$imageurl')";

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

$placelink = "/shop/".$item['cat_seolink'];

Полина Емелина

сформировать ссылку на изображение, добавив

$imageurl = "/папка/".$item['file'];

вместо file может быть другое название столбца, смотрите в каком в магазине хранится основное изображение для каждой страницы товара (file, image, picture — не знаю).

и нужно добавить столбец imageurl для хранения картинок в таблице cms_search в базе данных, тип VARCHAR длина скажем 50, это можно сделать через phpmyadmin открыв таблицу — структура

Изображение

Оказывается в вашей версии 1.9 его ещё не было предусмотрено)

Разумеется, сначала сделать бэкап и всё такое.

#10 28 марта 2024 в 22:17

В версии Instant 1.9 нет возможности настроить через админ-панель.

Полина Емелина

А что, обновиться не судьба?

#11 30 марта 2024 в 16:08

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

пс: Обновится не судьба, очень много уникального функционала за десяток лет.

Добавлено спустя 2 часа

Больше спасибо maxisoft. Второй раз очень, очень сильно выручает!

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.