Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.

Форум Модули DIAFAN.CMS Поиск по сайту Цена в результатах поиска


Stanislav (manalenko) 27 июля 2018 г.

Здравствуйте.
Подскажите, пожалуйста, как вывести цену товара в его карточке в результатах поиска по сайту?
Шаблон дефолтный.

Степан (idxdoc) 12927 июля 2018 г., редакция 27 июля 2018 г.

Добавить в файле search.view.rows.php в место, где нужна цена, переменную
Код
$row['price']

Stanislav (manalenko) 30 июля 2018 г.

Благодарю за ответ.
В указанном вами файле добавил строку, чтобы цена отображалась после названия (как я понял "search_name" - это вывод названия товара).

Код

<div class="search_name"><a href="'.BASE_PATH_HREF.$row["link"].'">'.$row["name"].'</a></div>
<div class="search_price">'.$row['price'].'</div>
<div class="search_text">'.$row["snippet"].'</div>';


Однако цена не отображается. Я что-то делаю неправильно?

Denis (Drachoon) 13930 июля 2018 г.

А вы уверены что массив $row[] содержит элемент 'price'?
Если в модельке элемент не добавлен то ничего не получится.

Степан (idxdoc) 12930 июля 2018 г.

в 6 версии точно есть

Stanislav (manalenko) 31 июля 2018 г.

Версия 6.0.7.2.

Решил закомментировать эти строки, а названия товаров все равно выводятся. Как будто не этот шаблон результаты выводит.

Открыл файл search.model.php, но в нем нет элемента 'price'.

Подскажете, куда еще копать?

Степан (idxdoc) 12931 июля 2018 г., редакция 31 июля 2018 г.

в custom есть что нибудь?
Если есть, зайдите туда, зайдите в модули, поиск, и там смотрите этот файл, если пусто, или если вообще нет темы, значит сделайте туже манипуляцию и сбросьте кеш в админке в настройках

Stanislav (manalenko) 01 августа 2018 г.

Нет, в модулях кастомной темы этих файлов нет. Кэш сбрасывал, не помогает.
Спасибо за советы, напишу в саппорт.

Александра (Alexa0105) 16301 августа 2018 г.

Информацию вы предоставили неполную.

1. Проверьте, что все изменения вы проводите в папке custom, а не в корне.
2. Насколько я понимаю, необходимо выведение цены в строке поиска? (скрин) Если так, то читаем дальше.
3. За вывод цены отвечает файл shop.view.buy_form.php, его и нужно прикрутить к поиску.
4. В modules\shop\views/shop.view.list_search.php меняем подключение

Код
echo '<div class="shop-pane">';
$result['search'] = true;
echo $this->get('rows','shop',$result);

на
Код
echo '<div class="shop-pane2">';
$result['search'] = true;
echo $this->get('rows_search','shop',$result);


5. Находим файлик shop.view.rows.php, делаем его копию и переименовываем в shop.view.rows_search.php

В нем уже меняем ссыль на файл
Код
echo $this->get('buy_form_serch','shop', array("row" => $row, "result" => $result));


Потом берем shop.view.buy_form.php, делаем копию, преименовываем в shop.view.buy_form_serch.php

В этом файле стираем или комментируем все ненужное, оставляем только цену (можно новую, можно старую, можно скидки оставить/убрать и т.д.)

------
Как-то так.

Степан (idxdoc) 12901 августа 2018 г., редакция 01 августа 2018 г.

Зачем все усложнять? Причем тут файл shop.view.buy_form.php, он выводит цену в магазине. В поиске есть цены и без участия этого файла со всеми скидками. О Боги, простите мою душу.


Смотрите скрин.

Степан (idxdoc) 12901 августа 2018 г., редакция 01 августа 2018 г.

И Вы понимаете что делаете в этом случае?)

Код
echo $this->get('buy_form_serch','shop', array("row" => $row, "result" => $result));


Это вызов файла, в который Вы передаете массив с данными, который получила моделька поиска )))))
Не будь цены в поиске в самом, этот файл не поможет никак.


__________

Приложил скрин, в котором показана часть кода, отвечающая за вывод всех данных, в том числе и цены (если это shop), каждого модуля.

Александра (Alexa0105) 16301 августа 2018 г.

Степан, кому не нравится грузить люминий, пусть грузят чугуний.
Мой вариант работает (это проверено и сделано мной лично на одном из сайтов), ваш почему-то нет.

Я в данном случае вызываю файл, в котором есть новая цена, старая цена, скидка и прочие приблуды, которые могут понадобиться, кнопку купить (если нужно) и т.д.
Все ненужное можно стереть, но работать это будет. Хотя при использовании кнопки "купить" придется сделать еще пару манипуляций.

Если у вас есть другой рабочий вариант, то пожалуйста. Я не говорю, что данное решение единственное и неповторимое.

Степан (idxdoc) 12901 августа 2018 г.

Цитата
Мой вариант работает (это проверено и сделано мной лично на одном из сайтов), ваш почему-то нет.

Тут нет моего примера. Я дал переменную $row['price'], а куда ее вывели, и почему не работает это другой момент.

Я не гружу чугуний, я вообще ничего не гружу, а Вы изобретаете велосипед на ровном месте, и так делать не нужно, часто приходится вносить правки, где вот такие велосипеды наделаны по не знанию CMS.

Я в данном случае вызываю файл, в котором есть новая цена, старая цена, скидка и прочие приблуды, которые могут понадобиться, кнопку купить (если нужно) и т.д.Все ненужное можно стереть, но работать это будет. Хотя при использовании кнопки "купить" придется сделать еще пару манипуляций.


Все эти данные уже есть в массиве поиска, о чем я уже сказал, Вы вызываете файл shop.buy_form.php, в которой передаете тот же массив что уже есть в поиске, и цену выводите там. Зачем??

Нужен рабочий пример без велосипедов? Вот пожалуйста https://unident-online.ru/search/?searchword=%D0%B0%D0%B2%D1%82%D0%BE%D0%BA%D0%BB%D0%B0%D0%B2

Александра (Alexa0105) 16301 августа 2018 г.

Я не гружу чугуний, я вообще ничего не гружу

Это я не про вас, а вообще. Не нравится мой вариант - я не заставляю его применять.

Вы вызываете файл shop.buy_form.php, в которой передаете тот же массив что уже есть в поиске, и цену выводите там. Зачем??

Затем, что в моем варианте нужна была еще кнопка "купить", для которой и понадобился данный файл.

Нужен рабочий пример без велосипедов? Вот пожалуйста

Спасибо. Посмотрела. Красиво. Попробую потренироваться, как будет время.

Андрей Левченко (tarkusart) 621 декабря 2018 г.

Здравствуйте. Можно ли к переменной $row['price'] применить форматирование определённое в настройках модуля средствами системы?

Андрей (R4W) 5421 декабря 2018 г.

Там форматированная цена сидит в какой-то другой переменной. Сейчас не вспомню.
Либо можете в шаблоне применять к содержимому переменной php функцию по форматированию цены.

evrokomfort12 (evrokomfort12) Сайт в Diafan.Cloud04 января, пятница

Тоже не могу понять, как вывести цену в результатах поиска? Даже файл не могу найти, который отвечает за вид результата поиска.

http://evrokomfort12.ru/search/?module=search&searchword=%D0%BB%D0%B8%D0%BD%D0%BE%D0%BB%D0%B5%D1%83%D0%BC

Может кто подскажет, где смотреть?

evrokomfort12 (evrokomfort12) Сайт в Diafan.Cloud04 января, пятница

Пришлось в файле shop.view.rows.php "убрать" строчку if(empty($result['search']))

Может кому поможет)