Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


michnoff

Recommended Posts

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

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

http://webxeon.ru/opencart/cats

 

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

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...
  • 3 weeks later...
В 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 сказал:

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

Надіслати
Поділитися на інших сайтах


Вопрос остается открытым! 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 сказал:

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

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

Надіслати
Поділитися на інших сайтах

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

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

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.