Как вывести подкатегории на главной странице virtuemart 2

Опубликовано: 16 ноября, 2012
Обновлено: 5 февраля, 2023
Категория: Внешний вид, дизайн, Настройка VirtueMart

Пост целиком основан на аналогичной статье с блога beagler.ru. Пользуясь возможностью хотел бы сказать спасибо автору и порекомендовать блог beagler.ru всем интересующимся joomla и virtuemart.

Разница между моей статьей и исходником лишь в небольшом дополнении к уже написанному.

Итак, иногда возникает необходимость выводить на главной странице магазина не только названия категорий с картинками (что в virtuemart 2 настроено по умолчанию), но и подкатегории второго уровня. Сразу хочу оговориться, что подкатегории третьего уровня вывести данным способом не удастся. Вот как это, например, может выглядеть.

Нам понадобится отредактировать 2 файла.

1 файл /components/com_virtuemart/views/virtuemart/view.html.php 

Ищем код:

Сразу после него вставляем:

Сохраняем и перезаписываем файл.

Дальше открываем файл /components/com_virtuemart/views/virtuemart/tmpl/default_categories.php, который отвечает за внешний вид категорий на главной странице.

Перед кодом

Вставляем

Теперь блок с подкатегориями является вложенным по отношению к блоку с главной категорией. Если вы не хотите выводить картинки подкатегорий, то из указанного кода просто вырезаете

Для удобства редактирования стилей я сменил стиль блока подкатегорий с

на

Теперь в файле стилей virtuemart /components/com_virtuemart/assets/css/vmsite-ltr.css мы можем указать нужные нам стили.

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

Надеюсь, что информация была полезна.

P.S.

В связи с частым обновлением приведенный код может не работать на новых версиях virtuemart.

Для virtuemart 3 лучше использовать отдельный модуль VM Category Slider.

68 комментариев

    Андрей

    А как бы еще и пересчитать товары (чтобы в скобках было их количество)

      admin

      admin

      Не сталкивался с такой задачкой, но думаю хак был бы многим полезен. Для следующего магазина, возможно, буду искать решение. Если найду, то статью обязательно дополню.

        Andersol

        Для указания количества товара в категории, используйте данную строку (вставлять надо после category_name ?> ) (точно работает на VM 2.0.18a)

        Спасибо тебе, добрый блоговод, за то, что все доступно объясняешь =)))

          Andersol

          Сори, модель Караоке работает только в самих категориях...

          admin

          admin

          спасибо, что поделились решением!

    zfjoury

    А есть то же самое только для Virtuemart 1.1.9???
    Замучился искать(((

      admin

      admin

      По vm 1,1,9 не смогу подсказать, не работал с ним почти...

    zfjoury

    Уже сам нашел как)
    Выложил на форуме.
    http://joomlaforum.ru/index.php/topic,252969.0.html
    Получается как тут http://www.lord-stroy.ru

      admin

      admin

      Спасибо, что поделились

    Julia

    Добрый день! Столкнулась с такой неприятной проблемой - по непонятной причине перестали создаваться новые категории, а старые не сохраняют изменения. При этом пишет, что все создано и все сохранено, но результат нулевой. Подскажите, пожалуйста, что это может быть и как бороться? Спасибо!

      admin

      admin

      попробуйте обновить virtuemart до последней версии, чтобы не потерять изменения при обновлении перенесите файлы шаблонов vm в папку с шаблоном сайта. подробнее здесь

    Dmitri

    А не подскажете, как провести аналогичную операцию для шаблона вывода категории (views/category) ?

      admin

      admin

      То есть внутри категории есть подкатегории в подкатегориями второго уровня?

    nikola

    Актуально.

    У меня есть пункт меню Категории. Внутри список категорий. Очень нужно вывести под каждой категорией список ее подкатегорий.

    По аналогии с вышеописанным кодом не удалось сделать.

    Алексей

    Здравствуйте! В шаблоне есть папка с VM, как я понимаю, там тоже нужно вставлять код. По пути templates/шаблон/html/com_virtuemart/categories/default.php вставляю второй код, но нет ни чего подобного файлу /components/com_virtuemart/views/virtuemart/view.html.php
    В папке html все вроде просмотрел, может не там ищу? Сайт в подписи. Спасибо.

      admin

      admin

      если файла view.html.php в папке с шаблоном нет, значит нужно править его в папке с компонентом
      у вас к главной странице сайта в менеджере меню привязана главная страница virtuemart?

    Алексей

    Главная-страница категорий vm. Я в компоненте все сделал, как описано у вас в статье. Стал вставлять в шаблон второй код, ошибка при загрузке сайта. На данный момент в компоненте стоят оба кода, а из шаблона естественно убрал.

      admin

      admin

      в статье описан споб для случая когда главная страница это главная страница virtuemart
      как сделать то же для категорий, к сожалению не знаю

    Алексей

    Я сейчас поменял местами главной поставил главную VM, в итоге - пустая страница, код в компоненте стоит.

      admin

      admin

      удаленно трудно сказать почему не работает

    Алексей

    Спасибо, все получилось, в настройках главной страницы VM, показать категории.
    Просьба к вам, я стили хочу изменить, не могли бы свои стили написать.

    Евгений

    Здравствуйте!
    Не получается вывести подкатегории там, где они по идее должны выводиться автоматически..на странице родительской категории. Вот главная страница каталога с категориями http://lumistec.ru/index.php/cat в категории "уличные светильники" есть подкатегории с товарами, но при клике на неё попадаем на страницу http://lumistec.ru/index.php/cat/view/category/virtuemart_category_id/24 которая почему-то пуста..может быть кто-нибудь посоветует где копать?

    Дмитрий

    Подскажите, пожалуйста. Завис на одном моменте и не могу двигаться дальше. Как на главную страницу вывести товар без категории(просто у меня четыре товара, категория не нужна)?

      admin

      admin

      Попробуйте в менеджере модулей создать модуль Товары virtuemart
      модуль можно вывести внутри статьи на главной через стандартный функционал joomla
      почитать об этом можно здесь

    Игорь

    Здравствуйте, спасибо за статью не подскажите, как сделать, чтобы выводились не все подкатегории, а например, пять штук и потом было написана просмотреть все.

    Дмитрий

    Все работает. Спасибо.

    Ola

    Здравствуйте, у меня список категорий выводится на главной странице, но в sidebar. Но у меня нет отступа между категориями. Получается не красиво и не очень понятно. Например:
    Женская одежда
    Джинсовая одежда
    Спортивная одежда
    Мужская одежда
    Верхняя одежда
    Классическая одежда
    Повседневная одежда

    А хочется так:

    Женская одежда

    Джинсовая одежда
    Спортивная одежда

    Мужская одежда

    Верхняя одежда
    Классическая одежда
    Повседневная одежда

    В каком файле и что копать? Заранее спасибо!

      Ola

      Нашла решение. Поменяла стиль в модуле вывода категорий.

    Иван

    После правки нет изменений

    Volodymyr

    В одной категории название в одну строчку, в другой в две строчки. Изображение категорий в разных уровнях. Где выровнять и как, а то не выходит.

    Volodymyr

    Или как вариант: название категории переместить ниже изображения.

      admin

      admin

      пришлите ссылку на сайт, где нужно настроить

        Volodymyr

        http://beregynya.pp.ua/index.php?lang=ru
        На фотке №2 в статье таже проблема, "средства индивидуальной защиты" в две строчки и изображение категории ушло вниз.

          admin

          admin

          попробуйте добавить в /components/com_virtuemart/assets/css/vmsite-ltr.css к стилю

          еще такие свойства

            Volodymyr

            Большое Спасибо. Все работает.

    Антон

    К сожалению не работает на vm 2.0.26d не могу найти нужную строку $categoryChildren в view.html.php она просто отсутствует. Пытался сделать после $categoryChildren = $categoryModel->getChildCategoryList($vendorId, $categoryId); Получается пустота.

      Вика

      Присоеденяюсь в версии 2.0.26d нет такой строки. Help! 🙂

        admin

        admin

        попробуйте вставить после строки

      Сергей

      Для версии 2.0.26 или 2.6 и выше
      Нужно в том же файле после строки

      Вставить чуть измененный код:

        admin

        admin

        спасибо,что поделились!

    denis2015

    вирт 2.6.8 все получилось, кроме вывода кол-ва товара.
    Возникла проблема: чтобы не дублировать список категорий в модуле меню
    слева и в центральной части по вышепоказанному способу, выбрал привязку левого модуля ко всем страницам КРОМЕ главной. Теперь, если зайти в категорию, то все нормально,- левый модуль появляется, НО если зайти в подкатегорию, где лежат товары,- то левый модуль не появляется. джумла думает что я нахожусь на главной.
    Можно вылечить отключением СЕО, но тогда возникает проблема с переходом на главную страницу по баннеру(было на форуме)

      admin

      admin

      Вам нужно создать пункты для всех категорий virtuemart с типом Virtuemart категория
      Их можно сгруппировать в отдельное скрытое меню, которое не будет выводится на сайте

    Александр

    В панеле администратора, в форме категории не отображается выбор Родительской категории. Помогите пожалуйста как исправить)
    Вот скриншот
    http://i65.fastpic.ru/big/2014/0912/b5/5ca871f934ae1fca29fd8fbf617d23b5.jpg

      admin

      admin

      Попробуйте обновится до последней версии
      возможно, это поможет

        Александр

        Нашол причину почему не отображается. Где то в коком то файле есть строчка

        А вот сам файл не могу найти. Помогите)
        http://i68.fastpic.ru/big/2014/0912/72/ce6694ae63ccf1c9e1aa0105d7a15c72.jpg

          admin

          admin

          Это свойство прописано в самом шаблоне, странно...
          попробуйте добавить в файл chosen.css (точный путь можно посмотреть наведя на название файла у вас на скрине) свойство

    Павел

    Здравствуйте! А подскажите пожалуйста как вывести товары нескольких категорий на главной страницы сайта? (virtuemart 3)

      admin

      admin

      Здравствуйте!

      Товары на главной можно вывести через настройки в Virtuemart > Настройки > Шаблоны
      область Настройки главной страницы VirtueMart
      либо через модуль с типом Virtuemart товары

        dj_pasha

        А через шаблон можно как-то?

          admin

          admin

          Virtuemart > Настройки > Шаблоны
          область Настройки главной страницы VirtueMart

            dj_pasha

            Мне нужно вывести все товары определенных категорий, через настройки можно только рекомендуемые, лучшие и топ.

    Александр

    Всем вечер добрый. Вирт 3.0.12 .../view.html.php вообще неузнаваем.

    Как вывести подкатегоии, эксперименты результатов не дали вообще

    Александр

    Всем вечер добрый. Вирт 3.0.12

    В шаблоне категории

    в в теле (под категорией)

    помогите поправить, упростить. Ругается на верхний цикл, хотя все работает

    Яна

    Здравствуйте, не нашла подходящей темы, пишу здесь. Подскажите, пожалуйста, как на главной убрать слово "Главная" под баннерами http://www.rosa-secret.ru/

    Захожу в Менеджер меню: Редактирование пункта меню. Ставлю Заголовок скрыть. Но все равно это слово отображается.

      admin

      admin

      Здравствуйте!
      Это выводится модуль хлебных крошек. В настройках модуля во вкладке Привязка к пунктам меню выберите На всех страницах, кроме указанных и отметьте пункт Главная.

        Яна

        Подскажите, модуль хлебных крошек как называется? Top navigation?

          Яна

          Поняла, это навигатор сайта. Ура получилось. Весь интернет перерыла, не могла понять. Спасибо.

            admin

            admin

            Рад, что проблема решилась.

    Александр

    Здравствуйте, спасибо за статью!
    Не подскажите, как сделать, чтобы выводились не все подкатегории, а например, пять штук, и потом было написана просмотреть все?

    Александр

    И еще вопрос. Если в подкатегориях есть еще подкатегории, их тоже можно как-то вывести? Заранее спасибо!

      admin

      admin

      Здравствуйте!
      Готового решения,к сожалению, не могу предложить.
      Если найдете, пожалуйста поделитесь.

    admin

    admin

    Если на virtuemart 3 метод из статьи не работает, то можно использовать сторонний модуль VM Category Module

    Артем

    А как вывести название Категории (или подкатегории) рядом с названием товара на странице Категории?

      admin

      admin

      Уточните, что именно должно получиться?
      Рядом с товаром должно просто выводиться название текущей категории?

        Артем

        Я сделал вывод товаров из подкатегорий на странице категории верхнего уровня.
        Например:
        Магазин->Диваны->Угловые
        Вот у меня сейчас все угловые и просто диваны отображаются в категории диваны, но я хочу чтобы у каждого товара рядом с названием выводилось название его категории(т.е. подкатегории).
        Как это реализовать?

          admin

          admin

          Попробуйте этот код

          Он выведен названия всех категорий у товара.

            Артем

            Спасибо большое. Очень помогло.
            Радует, что есть такие люди как вы

            admin

            admin

            Рад, что проблема решилась.

Комментарии закрыты

С 15-18 июня admin в отпуске.

Ответы на все вопросы и ссылки на товары будут присланы 19 июня.

Спасибо за понимание и хороших выходных.

×