Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Вывести категории на странице поиска


michnoff
 Поделиться

Рекомендованные сообщения

Приветствую! Как вывести категории на странице поиска, чтобы видеть в каких категориях лежит найденный товар в ocstore 2.3

Нашел два варианта для 1.5.5.1.2 , попытался делать по аналогии, но ни чего не вышло

http://webxeon.ru/opencart/cats

 

Можно ли реализовать так же на 2.3? Заранее спасибо!

Ссылка на комментарий
Поделиться на других сайтах


  • 3 недели спустя...
  • 3 недели спустя...
В 23.10.2017 в 16:14, chukcha сказал:

точно также, заменив keyword на seach

Заменил keyword на seach тут

public function getSearchCategories($keyword) {
    $query = $this->db->query("SELECT c.category_id, c.image, cd.name 
    FROM " . DB_PREFIX . "category c 
    LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) 
    WHERE cd.name LIKE '%" . $keyword . "%' 
    AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' 
    AND c.status = '1'");
    return $query->rows;
}

И получил не определенную переменную

  • Notice: Undefined variable: search_categories in /var/www/www-root/data/www/site.ru/catalog/view/theme/royal/template/product/search.tplon line 24Warning: Invalid argument supplied for foreach() in /var/www/www-root/data/www/site.ru/catalog/view/theme/royal/template/product/search.tplon line 24
Ссылка на комментарий
Поделиться на других сайтах


$this->data  заменить на  $data (если для 2.x)

Ссылка на комментарий
Поделиться на других сайтах

В 23.10.2017 в 17:14, chukcha сказал:

заменив keyword на seach

зачем?  keyword там в методе модели как аргумент.  а при вызове и так 

$this->model_catalog_category->getSearchCategories($search);

 

Ссылка на комментарий
Поделиться на других сайтах

1 час назад, fanatic сказал:

$this->data  заменить на  $data (если для 2.x)

Поменял. Тоже самое! 

  • Notice: Undefined variable: search_categories in /var/www/www-root/data/www/aquahome.by/catalog/view/theme/site.ru/template/product/search.tplon line 24Warning: Invalid argument supplied for foreach() in /var/www/www-root/data/www/site.ru/catalog/view/theme/royal/template/product/search.tplon line 24

 

Ссылка на комментарий
Поделиться на других сайтах


В model 

public function getSearchCategories($keyword) {
    $query = $this->db->query("SELECT c.category_id, c.image, cd.name 
    FROM " . DB_PREFIX . "category c 
    LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) 
    WHERE cd.name LIKE '%" . $keyword . "%' 
    AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' 
    AND c.status = '1'");
    return $query->rows;
}

 

В controller

  

          $data['search_categories'] = array();
$search_cats = $this->model_catalog_category->getSearchCategories($search);        
    foreach($search_cats as $category) {
        if($category['image']) {
            $image = $category['image'];
        } else {
            $image = false;
        }
    $data['search_categories'][] = array(
        'thumb' => $image,
        'name' => $category['name'],
        'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
    );
}

 

tpl

<div class="row">
        <div class="col-sm-3">
          <ul>
        <?php foreach($search_categories as $category) { ?>
            <li><?php echo '<a href="' . $category['href'] . '">'; ?>
<img width="180" src="/image/<?php echo $category['thumb'];?>"><span><?php echo $category['name'];?></span></a></li>
        <?php }    ?>
    </ul>
        </div>

 

Ссылка на комментарий
Поделиться на других сайтах


12 минут назад, michnoff сказал:

помогите решить за вознаграждение

что решить? код, из вашего предпоследнего сообщения, рабочий(без изменений)

Ссылка на комментарий
Поделиться на других сайтах

только, наверно нужно добавить проверку.  если не найдено категорий, выводить соответствующее сообщение, или не выводить блок вообще.

Ссылка на комментарий
Поделиться на других сайтах

3 часа назад, chukcha сказал:

а  get['keyword']

хоть убейте, не понял о чем вы. что в 1.5, что в 2.x   

$this->request->get['search']

или не это?

Ссылка на комментарий
Поделиться на других сайтах

Ссылка на комментарий
Поделиться на других сайтах

9 часов назад, Tom сказал:

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

Ссылка на комментарий
Поделиться на других сайтах


Это дефолтный опенкарт 2.3

Ссылка на комментарий
Поделиться на других сайтах

Вопрос остается открытым! Ocmod Tom  решил вопрос, но не в том направлении - выводит категории товара, в названии которых есть искомая фраза (в названии категорий, а не товаров) Необходимо выводить категории, в которых лежит найденный товар - ищем Samsung, показывает все категории , в которых есть товары с "Samsung"

В 12.11.2017 в 21:09, michnoff сказал:

помогите решить за вознаграждение

Ссылка на комментарий
Поделиться на других сайтах


17 часов назад, michnoff сказал:

выводит категории товара, в названии которых есть искомая фраза (в названии категорий, а не товаров)

так это, было ясно с самого начала

В 12.11.2017 в 19:41, michnoff сказал:

LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id)      WHERE cd.name LIKE '%" . $keyword . "%' 

 

17 часов назад, michnoff сказал:

Необходимо выводить категории, в которых лежит найденный товар

как вариант

 

category_for_search.ocmod.xml

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

В 16.11.2017 в 13:56, fanatic сказал:

так это, было ясно с самого начала

 

как вариант

 

category_for_search.ocmod.xml

Да!))) Работает! НО есть момент - находит товар в одной главной категории, потом в первой подкатегории и категории третьего уровня, а остальные (главные, категории второго уровня и третьего) не показывает. Т.е.показывает одну первую категорию с подкатегориями, а в остальных не ищет, хотят овар точно есть и в других категориях

Ссылка на комментарий
Поделиться на других сайтах


2 часа назад, michnoff сказал:

находит товар в одной главной категории, потом в первой подкатегории и категории третьего уровня,

или я не понял или вы.  мой модификатор не изменяет стандартный поиск товаров.  просто проходим по массиву найденных товаров и для каждого, достаем категории(в которых он показывается).  убираем дубликаты и выводим.

Ссылка на комментарий
Поделиться на других сайтах

1 час назад, fanatic сказал:

или я не понял или вы.  мой модификатор не изменяет стандартный поиск товаров.  просто проходим по массиву найденных товаров и для каждого, достаем категории(в которых он показывается).  убираем дубликаты и выводим.

он не выводит все найденные категории, а только первую главную и ее подкатегорию, а остальные нет

Изменено пользователем michnoff
Ссылка на комментарий
Поделиться на других сайтах


30 минут назад, michnoff сказал:

он не выводит все найденные категории,

 

adm_product.gif

search.gif

Ссылка на комментарий
Поделиться на других сайтах

2 часа назад, fanatic сказал:

 

adm_product.gif

search.gif

Искал по запросу "grohe" и мне выдало только первую категорию (первая главная, категорию второго уровня и категории третьего уровня - Сантехника>Cмесители>Для раковины....)

 

 

Когда я уточнил категорию поиска показывает уже другие категории (По вложенности все в сантехнике - Сантехника>Инсталляции>Для унитазов.....)

 

 

111Безымянный.png

Ссылка на комментарий
Поделиться на других сайтах


33 минуты назад, michnoff сказал:

Когда я уточнил категорию поиска показывает уже другие категории (По вложенности все в сантехнике - 

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

Ссылка на комментарий
Поделиться на других сайтах

когда вы уточняете поиск, находит уже другой список товаров, естественно и категории будут другие.

уточнение, никак не влияет на вывод категорий.  влияет список найденных товаров.

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.