Автор Тема: товары найденные через ПОИСК не сортируется по количеству  (Прочитано 1321 раз)

29 Сентябрь 2015, 13:31:15
Ответ #15
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Еще можно не удалять эти переменные, а присвоить им занчения.
$order_by = 'quantity';
$order_way = 'DESC';


Если удалить это $alias.$order_by : '').($order_way ? ' '.$order_way : '')
то поиск перестает работать
29 Сентябрь 2015, 13:33:00
Ответ #16
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
29 Сентябрь 2015, 13:38:34
Ответ #17
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вот файл, все сделал так как вы описали, но все равно не работает...
Можете глянуть, может я слепой
Если вы меняете шаблон blocksearch-top.tpl, то менять класс не нужно.


Удалил все правки в файле search.php, поменял только в шаблоне blocksearch-top.tpl position на quantity
Ссылка поменялась, но товары как были так и остались на тех же местах. Кеш почистил.

Значит в таком случае, меняю обратно в файле blocksearch-top.tpl и возвращаюсь к файлу search.php
29 Сентябрь 2015, 13:42:48
Ответ #18
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Нет, меняете в шаблоне и ищите в контроллере /controllers/front/SearchController.php
public function initContent()
{
...Search::find((int)(Tools::getValue('id_lang')), $query, 1, 10, 'position', 'desc', true);
меняете.
29 Сентябрь 2015, 13:47:20
Ответ #19
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нет, меняете в шаблоне и ищите в контроллере /controllers/front/SearchController.php
public function initContent()
{
...Search::find((int)(Tools::getValue('id_lang')), $query, 1, 10, 'position', 'desc', true);
меняете.

а файл search.php вернуть в исход?
29 Сентябрь 2015, 13:56:02
Ответ #20
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Сортировку менют 2 способами.
I. В шаблоне TPl и контроллере SearchController.php
II. В классе Search.php

Оба способа работают, проверено на prestashop версии 1.6.1
29 Сентябрь 2015, 14:06:32
Ответ #21
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нет, меняете в шаблоне и ищите в контроллере /controllers/front/SearchController.php
public function initContent()
{
...Search::find((int)(Tools::getValue('id_lang')), $query, 1, 10, 'position', 'desc', true);
меняете.



И того, отпишу что сделал:
1.  blocksearch-top.php
<input type="hidden" name="orderby" value="quantity" />
2. SearchController.php
public function initContent()
{...
$searchResults = Search::find((int)(Tools::getValue('id_lang')), $query, 1, 10, '[b]quantity[/b]', 'desc', true);

3. Search.php
public static function find($id_lang, $expr, $page_number = 1, $page_size = 1, $order_by = '[b]quantity[/b]',
$order_way = 'desc', $ajax = false, $use_cookie = true, Context $context = null)
{
...
if ($ajax)
{
$sql = 'SELECT DISTINCT p.id_product, pl.name pname, cl.name cname,
cl.link_rewrite crewrite, pl.link_rewrite prewrite '.$score.'
FROM '._DB_PREFIX_.'product p
INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (
p.`id_product` = pl.`id_product`
AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').'
)
'.Shop::addSqlAssociation('product', 'p').'
INNER JOIN `'._DB_PREFIX_.'category_lang` cl ON (
product_shop.`id_category_default` = cl.`id_category`
AND cl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('cl').'
)
WHERE p.`id_product` '.$product_pool.'
ORDER BY [b]quantity[/b] DESC LIMIT 10';
return $db->executeS($sql);
}
...
GROUP BY product_shop.id_product
'.($order_by ? '[b]ORDER BY  quantity DESC[/b]'..'
LIMIT '.(int)(($page_number - 1) * $page_size).','.(int)$page_size;
Что из проделанных работ я сделал не так?
29 Сентябрь 2015, 14:06:52
Ответ #22
  • Фрилансер
  • *
  • Сообщений: 140
  • Репутация: +2/-1
  • Сообщество PrestaShop
    • Просмотр профиля
У меня сортирует по количеству из коробки, ничего не менял.
prestashop 1.6.1
29 Сентябрь 2015, 14:08:32
Ответ #23
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
29 Сентябрь 2015, 14:10:25
Ответ #24
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
29 Сентябрь 2015, 14:18:31
Ответ #25
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У вас не стандарный класс поиска. В папке override есть класс Search.php или контроллер SearchController.php ?
29 Сентябрь 2015, 14:25:09
Ответ #26
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У вас не стандарный класс поиска. В папке override есть класс Search.php или контроллер SearchController.php ?

в папке override нету ни того ни другого файла
29 Сентябрь 2015, 14:25:39
Ответ #27
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
У вас не стандарный класс поиска. В папке override есть класс Search.php или контроллер SearchController.php ?
Точно, в ручную меняю в url
&orderby=position / name / quantity
&orderway=desc / asc
ничего не меняется.
Если меняю в ручную на своем prestashop, то товар меняет сортировку.
29 Сентябрь 2015, 14:26:36
Ответ #28
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
У вас не стандарный класс поиска. В папке override есть класс Search.php или контроллер SearchController.php ?
в папке override нету ни того ни другого файла
А как тогда категории к поиску добавил?
29 Сентябрь 2015, 14:47:58
Ответ #29
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У вас не стандарный класс поиска. В папке override есть класс Search.php или контроллер SearchController.php ?
в папке override нету ни того ни другого файла
А как тогда категории к поиску добавил?

Не я добавлял, без понятия