Урок 15 Скрыть опции у которых количество 0

Всем привет и сразу в бой.
Очередная доработка на клиентском сайте. Необходимо вывести опции в категориях, модулях, поиске, странице с производителями и т.д. При этом опции, количество которых равно 0 (нулю) не должны отображаться.
Решение достаточно простое и изменения необходимо внести только в одном файле, что еще лучше. Про вывод опций в категориях и т.д. я расскажу как нибудь в других уроках, а сейчас приступим.
Как я сказал, изменения будем вносить только в одном файле, а конкретнее в
1 |
catalog/model/catalog/product.php |
Находим примерно на 332 строчке код
1 |
$product_option_value_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_option_value pov LEFT JOIN " . DB_PREFIX . "option_value ov ON (pov.option_value_id = ov.option_value_id) LEFT JOIN " . DB_PREFIX . "option_value_description ovd ON (ov.option_value_id = ovd.option_value_id) WHERE pov.product_id = '" . (int)$product_id . "' AND pov.product_option_id = '" . (int)$product_option['product_option_id'] . "' AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY ov.sort_order"); |
И заменяем его на
1 |
$product_option_value_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_option_value pov LEFT JOIN " . DB_PREFIX . "option_value ov ON (pov.option_value_id = ov.option_value_id) LEFT JOIN " . DB_PREFIX . "option_value_description ovd ON (ov.option_value_id = ovd.option_value_id) WHERE pov.quantity >0 AND pov.product_id = '" . (int)$product_id . "' AND pov.product_option_id = '" . (int)$product_option['product_option_id'] . "' AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY ov.sort_order"); |
После этого зайдите в любой товар, где есть опция с нулевым количеством и проверьте. Она не будет отображаться.
Доброй ночи. А если нужно сделать просто не активной опцию? не скривая ее
Здравствуйте. Опции с 0 количеством и так скрываются по умолчанию. Тут речь про то, чтобы скрывать блок опций http://prntscr.com/26lvlhd
Т.е. у товара может быть блок опций с различными вариантами. Например.
Цвет:
-красный
-желтый
-синий
И вот если предположим все эти опции имеют 0 колличество, то скрывается весь блок