Вопрос [VirtueMart 2] Как вывести количество товаров в категориях?

Тема в разделе "Управление товарами, атрибутами, свойствами и цена", создана пользователем denisov, 24.03.2012.

  1. Offline

    denisov Недавно здесь

    Регистрация:
    14.03.2012
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    Как вывести количество товаров в категориях? Чтобы было примерно так: Категория (14), Другая категория (9)
    Здесь написано "поставить галочку в поле «Показывать количество товаров»". Возможно это сделать в VirtueMart 2?
     
  2.  
  3. Offline

    alfonse Недавно здесь

    Регистрация:
    01.04.2012
    Сообщения:
    6
    Симпатии:
    1
    Пол:
    Мужской
    переходим сюда modules\mod_virtuemart_category\tmpl там файл all.php в его я внёс изменения. Может несовсем корректно, из-за того что там написан пароль к БД, но соед. можно отложить в отдельный файл и подключать его. Ниже прилагаю файл!
    в полях
    $username = '';
    $password = '';
    $dbname = '';
    естественно ввдите свои данные
    если что-то неясно пишите alfa.bel@mail.ru-- тут редко бываю
     

    Вложения:

    • all.txt
      Размер файла:
      2.6 КБ
      Просмотров:
      116
  4. Offline

    techno27 Недавно здесь

    Регистрация:
    26.11.2010
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    Код (PHP):
    1. function countProductsByCategoryRecursive ($categoryId = 0) {
    2.  
    3.     $categoryModel = VmModel::getModel ('category');
    4.     $childrenCategories = $categoryModel->getCategories(true, $categoryId);
    5.  
    6.     $product_count = 0;
    7.  
    8.     if( ! $childrenCategories){
    9.         $product_count += $categoryModel->countProducts ($categoryId);
    10.     }else{
    11.         foreach($childrenCategories as $value){
    12.             $product_count += countProductsByCategoryRecursive($value->virtuemart_category_id);
    13.         }
    14.     }
    15.  
    16.     return $product_count;
    17. }
    18.  
    19. $category_id = $this->category->virtuemart_category_id;
    20. $total_item_count = countProductsByCategoryRecursive($category_id);


    Вставлять функцию в шаблон категории, кол-во продуктов во всех дочерних категориях теперь в переменной $total_item_count
     
    Последнее редактирование модератором: 04.01.2013
  5. Offline

    neo434 Недавно здесь

    Регистрация:
    23.12.2012
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    А можно об этом поподробнее, что и куда, в какое место вставлять? не могу разобраться, а очень надо
     
  6. Offline

    deniking Недавно здесь

    Регистрация:
    14.04.2012
    Сообщения:
    18
    Симпатии:
    0
    Пол:
    Мужской
    Есть довольно простое решение МЕНЮ-АКОРДЕОН КАТЕГОРІЙ VIRTUEMART 2.X, Показывает все что хочешь. И сколько товаров в категории, и значки перед категориями, настраивается легко, неограниченный вывод под категорий. Я поставил, настроил очень удобно и легко. И можно в твоем случае по кодам не лазить.
    ссылка на скачивание http://gruz.org.ua/uk/about-joomla/...-2x-categories-accordeon-menu-full-depth.html
    Кому помогло, заранее пожалуйста.
     
  7. Offline

    steelbear Недавно здесь

    Регистрация:
    11.04.2013
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    Немного модифицировал all.php теперь ненадо указывать доступы к базе, плюс бонус мож кому ещё нужно будет. mod_virtuemart_category обрабатывает и выводит вложенность третьего уровня (стандартный выводит только 2 уровня)

    для третьего уровня правда ещё надо поправить файл mod_virtuemart_category.php лежащий там же в mod_virtuemart_category (но не в папке tmpl)

    после строки
    Код (PHP):
    1. $category->childs = $cache->call( array( 'VirtueMartModelCategory', 'getChildCategoryList' ),$vendorId, $category->virtuemart_category_id );

    вставляем вот это
    Код (PHP):
    1. if($category->childs)
    2.         {
    3.         foreach($category->childs as $child)
    4.             {
    5.              $child->childs = $cache->call( array( 'VirtueMartModelCategory', 'getChildCategoryList' ),$vendorId, $child->virtuemart_category_id );
    6.             }
    7.         }
     

    Вложения:

    • all.txt
      Размер файла:
      2.3 КБ
      Просмотров:
      46
  8. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Указывать "ключи" для доступа к базе напрямую - это бред.
    У Joomla есть средства работы с базой, читаем документацию на тему JFactory::getDBO();

    Кстати, сам вопрос о количестве товаров в категории уже неоднократно обсуждался.....................

    Так вот - читаем док-ю по getDBO, а потом достаём количество товаров в категории запросом:
    Код (PHP):
    1. SELECT COUNT(`virtuemart_product_id`) FROM `*****_virtuemart_product_categories` WHERE `virtuemart_category_id`=$category->virtuemart_category_id;


    Запрос вставляем внутрь блока вывода категории в
     
    Последнее редактирование: 12.04.2013
  9. Offline

    derte Недавно здесь

    Регистрация:
    21.01.2015
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    Все работает, только 3 уровень не показывает, а в логах пишет:
    PHP Notice: Undefined property: stdClass::$childs
    ........./all.php on line 30
     

Поделиться этой страницей

Загрузка...