1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

[Помощь] Создание ссылки "Все товары" в модуле VM

Тема в разделе "Virtuemart", создана пользователем xenongattz, 7 дек 2013.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
  1. xenongattz

    xenongattz Создатель

    Регистр.:
    5 дек 2013
    Сообщения:
    5
    Симпатии:
    0
    Всем доброго времени суток!

    Работаю на связке Joomla 2.5.14 + VirtueMart 2.0.18a.

    Столкнулся с задачей, которую не могу решить ДО КОНЦА.
    Она состоит в том, чтобы добавить ссылку в модуль mod_virtuemart_category, которая бы отображала все товары из всех категорий и подкатегорий, иными словами - все товары магазина.

    Собственно, нашел вот такое решение http://virtuemart2.info/nastraivaem-stranicu-kategorij-vitrinu-tovarov-v-virtuemart-2/ (читаем в самом низу статьи, перед комментами).

    В файле /module/mod_virtuemart_category/tmpl/default.php, код:

    Код:
    echo '<ul id="bt_vm_navigation">';
    
    foreach ($categories as $category) {
        $class = (!$category->childs)? 'class="current-cat"' : 'class="current-cat has_child"'; // has or not has child?
        $caturl = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$category->virtuemart_category_id);
        $active_style = (in_array( $category->virtuemart_category_id, $parentCategories))? ' id="vm_cat_active"' : '';
        $category_name = $category->category_name. '' .countProducts2($category->virtuemart_category_id);
        echo '<li'.$active_style.' '.$class.'>'.JHTML::link($caturl, $category_name);
       
        echo '<ul class="children">';
        if ($category->childs) {
            foreach ($category->childs as $child) {
                $child_active_style = (in_array( $child->virtuemart_category_id, $parentCategories))? ' id="vm_child_cat_active" class="current-cat"' : '';
                $child_caturl = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$child->virtuemart_category_id);
                $child_category_name = $child->category_name. '' .countProducts($child->virtuemart_category_id);
                echo '<li'.$child_active_style.'>'.JHTML::link($child_caturl, $child_category_name).'</li>';
            }
        }
        echo '</ul>';
       
        echo '</li>';
       
    }
    echo '</ul>';
    ?>
    я изменил в соответствии с найденной статьей:

    Код:
    echo '<ul id="bt_vm_navigation">';
    //===
    echo '<li id="vm_cat_active" class="current-cat">' .
            '<a class="allproduct" href="' .
                JRoute::_('index.php?option=com_virtuemart&view=category&limit=5000&virtuemart_category_id=0').
            '">Все товары</a>' .
        '</li>';
    //===
    foreach ($categories as $category) {
        $class = (!$category->childs)? 'class="current-cat"' : 'class="current-cat has_child"'; // has or not has child?
        // .........далее ничего не изменено
    Ссылка вывелась, переход происходит, однако:

    1) Класс vm_cat_active для ссылки присвоен всегда, что, разумеется, не нужно.

    2) Хотелось бы, чтобы отображалась общее количество всех товаров в скобках, как это происходит для категорий.

    3) Полученный список товаров выводится с другим шаблоном, в отличие от ссылки на категорию/подкатегорию. У первого по три товара в строке - это много, а второй - по два.

    4) Выводится также блок со списком подкатегорий перед списком всех товаров.

    Пробовал реализовать сам, но моих знаний PHP пока недостает, чтобы справиться с этой задачей.

    Буду благодарен за помощь. Заранее спасибо за ответы!
     
  2. spro1

    spro1

    Регистр.:
    26 май 2013
    Сообщения:
    167
    Симпатии:
    70
    данная ссылка открывает страницу виртумарта по шаблону категории. Для начала надо сделать так, чтобы шаблон для этого был задан отдельный и лежал в папке с основным шаблоном сайта.(пока не придумал как, но логика такая)

    1) - а как нужно? естественно класс присвоен всегда, вы же его явно в коде задали)
    2) где именно должна показываться цифра с количеством? тут можно добавить счетчик на php или ява
    4) можно будет поправить в шаблоне, главное сейчас это задать шаблон

    на досуге еще попробую посмотреть код и может что-то допишу....

    как я уже говорил сейчас по ссылке открывается шаблон категории, если вы в шаблоне сайта еще не сделали страничку с шаблоном для категории, тогда закинте файл
    /components/com_virtuemart/views/category/tmpl/default.php
    в папку
    /templates/название_шаблона_сайта/html/com_virtuemart/category
    после этого по умолчанию будет использоваться этот шаблон категории. Задача сделать ссылку с указанием дополнительного шаблона категории, тогда в нем можно все вышеперечисленное реализовать
     
    Последнее редактирование: 10 дек 2013
  3. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    194
    Симпатии:
    19
    Буквально на днях писал для своего заказа решение как вывести все подкатегории сайта что есть на странице с помощью PHP (я добавлял в бд сайта свои критерии, и по ним выводил, если критерий убрать будут выводится все подкатегории)
    Если хочешь могу выложить код, писал на скорую руку, но рабочий полностью.
    Подправить под вывод товаров а не подкатегорий думаю не составит тебе особого труда.

    Если знаний php действительно недостает, выложи свой файл default.php, набросаю тебе код как время будет.