[Помогите] Как автоматически скрывать категории, в которых нет товаров?

Тема в разделе "OpenCart", создана пользователем verxovod, 10 авг 2015.

  1. verxovod

    verxovod

    Регистрация:
    10 авг 2015
    Сообщения:
    7
    Симпатии:
    0
    Здравствуйте!

    Собственно, вся суть вопроса в заголовке. Нужно сделать так, чтобы те категории, в которых нет товаров - не отображались.

    Буду рад любым ответам...
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Единственный нормальный вариант без кучи костылей - это пройтись по таблице product_to_category, собрать id категорий, где есть товары, а потом пройтись по таблице category и выставить у этих категорий status 0. Это можно делать, например, по крону.

    Вариант посложнее: сделать вышеописанное один раз для отключение категорий, которые уже без товаров и добавить в модели в функции добавления и удаления товаров включение категории при добавлении товара и проверку на остаток товаров в категории (и выключение, если их нет) при удалении товаров. Если используется модуль импорта, то и для него тоже такое сделать в его модели, если у него собственная.
     
  3. verxovod

    verxovod

    Регистрация:
    10 авг 2015
    Сообщения:
    7
    Симпатии:
    0
    Dotrox, хотелось бы найти способ попроще, нежели копаться в базах данных. К тому же, насколько я понял, Ваш способ описывает то, как навсегда скрыть категории, в которых нет товаров. Мне же нужно, чтобы категория не отображалась временно, пока в нее не будет добавлена товарная позиция.
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Нет, я просто его не расписывал. надо первым запросом к таблице category выставить везде status 1, а затем пройтись по списку полученному из таблицы product_to_category и отключить пустые в данный момент.

    Простого способа нет. Альтернативный способ это везде, где есть вывод ссылок на категорию, проверять количество товаров в ней и скрывать, если там 0. Но этот способ потребует больше работы + создаст существенную нагрузку на базу (тормоза при открытии сайта будут заметны невооруженным глазом, если на сайте много товаров).
     
  5. Zulus

    Zulus Команда форума

    Регистрация:
    20 дек 2012
    Сообщения:
    746
    Симпатии:
    722
    Как вариант найти / купить вот этот модуль
     
  6. verxovod

    verxovod

    Регистрация:
    10 авг 2015
    Сообщения:
    7
    Симпатии:
    0
    Dotrox, при создании новых категорий, получается, надо будет проделывать еще раз эту процедуру?

    Zulus, не подскажите ресурсы, на которых возможно найти этот модуль?
     
  7. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Надо просто добавлять новые категории выключенными и включать одним из двух описанных способов.

    А модуль этот, вероятно, работает как раз по принципу описанному мной во втором варианте, то есть, из-за него будут существенные тормоза, если много товаров.
     
  8. Zulus

    Zulus Команда форума

    Регистрация:
    20 дек 2012
    Сообщения:
    746
    Симпатии:
    722
    Не встречал, где есть в свободном доступе. Видел на складчике хотели его приобретать, но так у меня не было в нем необходимости, то дальше следить не стал.
     
  9. sonicking

    sonicking

    Регистрация:
    26 май 2013
    Сообщения:
    436
    Симпатии:
    114
    подниму темку
    тоже надо автоматом скрывать пустующие категории
    есть VQMOD http://forum.opencart.com/viewtopic.php?f=131&t=38140

    но после его установки вместо сайта белый экран (админка нормально)
    версия OC 15512
     
  10. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
  11. sonicking

    sonicking

    Регистрация:
    26 май 2013
    Сообщения:
    436
    Симпатии:
    114
    вот такая ошибочка
    Unknown: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in /home/skazkakl/igratoycom/vqmod/vqcache/vq2-catalog_controller_common_header.php on line 254

    содержимое файла
     
    Lasted edited by : 14 фев 2016
  12. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Вообще. ошибка указывает на то, что где в объявлении массива перед этой строкой что-то пропущено (какая-нибудь закрывающая скобка, запятая и т.д.), но здесь строка 254 пустая, стрелка есть на 255, а предыдущая не пустая строка 252, но там, вроде, всё на месте.

    Либо здесь код при выкладке сбился больше, чем на строку и ошибка где-то совсем в другом месте, а не там, где сейчас строка 254 в этом коде.

    И код нужно оборачивать в тег кода (не забывая про соответствующий выбор языка), иначе у него разметка совсем теряется!