Выводим товары из всех подкатегорий на страницу Virtuemart
Делаем ещё небольшой хак: выводим товары из подкатегорий на страницу категории. Это бывает необходимо очень часто, ведь подкатегории товаров – явление очень распространенное, а виртумарт, почему-то, не хочет по умолчанию выводить товары в родительскую категорию из всех вложенных. Ну нехорошо это! И нужно лечить, чем мы сейчас и займемся. А то, что-от с этим виртом уже в депрессию некоторые впадают и задают вопрос Как избавится от депрессии?
Для лечения в файле /administrator/components/com_virtuemart/html/shop.browse.php нам нужно найти строку $dbp = new ps_DB;
А под ней добавить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | function getCatergoryChildsList( $clist, $catid ){ $res_list = array( $catid ); $search_childs = true; while( $search_childs ){ $search_childs = false; foreach( $clist as $c_catid => $val ){ if( in_array( $val['category_parent_id'], $res_list ) ){ $res_list[] = $c_catid; unset( $clist[ $c_catid ] ); $search_childs = true; } } } return $res_list; } $category_childs = ''; if ( $category_id && $ps_product_category->has_childs($category_id) ){ $category_childs = getCatergoryChildsList( $ps_product_category->getCategoryTreeArray(), $category_id ); } |
Далее давайте откроем /administrator/components/com_virtuemart/html/shop_browse_queries.php, где находим следующий код:
1 2 3 | } elseif( empty( $keyword ) && empty( $manufacturer_id )) { $where_clause[] = "`#__{vm}_product_category_xref`.`category_id`=".$category_id; } |
И меняем его на нашу небольшую модификацию.
1 2 3 4 5 6 | } elseif( empty( $keyword ) && empty( $manufacturer_id )) { if(!empty( $category_childs )) $where_clause[] = "`#__{vm}_product_category_xref`.`category_id` IN (".$category_id.",".implode(',',$category_childs).")"; else $where_clause[] = "`#__{vm}_product_category_xref`.`category_id`=".$category_id; } |
Теперь все товары авто рынок москва из подкатегорий появятся на странице главной категории. Ура!
9 коммент. к записи “Выводим товары из всех подкатегорий на страницу Virtuemart”
Прокомментировать
Рубрики
- javascript
- SEO
- Smarty
- UIPI
- Боремся со СПАМом
- Верстка
- Движки форумов
- Железо
- Забавно
- Интернет в лицах
- Интернет-магазины
- Новости
- Обзоры сайтов
- Обо всем
- Полезные скрипты
- Работа с CMS
- Создание сайтов
- Уроки рекламы
- Шаблоны

Прекрасная статья! Спасибо
А вы не сталкивались с тем что бы вывести весь существующий товар в магазине на одну страницу? У меня просто не очень много наименований и хочется их все сразу показать пользователю. Не могу ничего найти по этому вопросу уже какой день…
Честно говоря, не сталкивался. Но думаю, что это дело одного запроса к базе данных и всё
[...] Честно стырено отсюда: webkev.com [...]
а то что после этого хака у меня перестала работать сортировка это нормально? Или она не нужна при таком раскладе?
Они друг на друге не завязаны
Скажите, а где искать те же настройки в Virtuemart 2.0?
Там нет никаких /administrator/components/com_virtuemart/html/shop.browse.php
Пробую самостоятельно редактировать /htdocs/components/com_virtuemart/views/virtuemart/tmpl/default.php
Ничего хорошего не выходит — слишком плохо ещё знаю php и структуру virtuemart, путаюсь в классах и объектах.
Не работает
Джумла полтора, виртумарт 1.1.9, просто белый экран, даже шаблон не грузится…
значит ошибка в коде. Проверяйте, включите вывод ошибок
благодарю