Данная статья является логическим продолжением статьи про условия для вывода различного контента на страницах сайта. Если в предыдущей статье все правки вносились на уровне кода и больше подходили для показа/скрытия контента внутри компонента, то в этой статье подробно рассмотрим привязку модулей сайта, которые можно настроить из панели администратора.
По умолчанию в Joomla можно настроить привязку модуля только к пунктам меню. Это вызывает немало проблем. Например, чтобы скрыть модуль, который привязан только к главной странице, необходимо создать пункт меню с типом Virtuemart Категория, иначе в категории будут показаны все модули, у которых стоит привязка только к главной странице. Т.е. категория, которая не имеет собственного пункта меню, приравнивается к главной странице.
Решить эту и ряд других проблем без правок кода можно c помощью продвинутого менеджера модулей Advanced Manager Module.
Установка
Advanced Manager Module устанавливается стандартно через Менеджер расширений. После установки он сразу готов работе, дополнительно ничего активировать не нужно.
Все примеры будут рассмотрены для бесплатной версии расширения. В pro версии уже встроена поддержка сторонних компонентов, в том числе и virtuemart, но это ограничение можно обойти, используя регулярные выражения, о которых речь пойдет ниже.
Логика работы
В Advanced Manager Module кроме пунктов меню доступно еще 12 дополнительных условий, которые могут влиять на привязку модулей. Выбрать условия можно в настройках модуля во вкладке Отображение по условиям.
Можно настроить показ модуля, как при соблюдении всех условий, так и соблюдении хотя бы одного из списка.
Более подробно основные условия рассмотрим на конкретных примерах далее.
Убрать условия, которые не будут использоваться в процессе работы, можно в настройках Advanced Module Manager в Система > Общие настройки > Regular Labs - Advanced Module Manager > Отображать привязки.
Для каждого модуля во вкладке Модуль можно выбрать цвет, который поможет проще ориентироваться в общем списке модулей если их много.
Изменить палитру цветов или отключить их можно также в настройках компонента.
Примеры
Показ модуля только на главной странице
Решается активацией опции Главная страница.
Показ модуля только зарегистрированным пользователям
Можно использовать как стандартную опцию Доступ во вкладке Модуль, так и возможности Advanced Module Manager.
Ограничение публикации модуля по времени
Эта возможность есть и в стандартном менеджере модулей joomla во вкладке Модуль. Отличия только в том, что Advanced Module Manager позволяет задать повторяющийся период, например, выводить каждый год в декабре модуль с поздравлением посетителей сайта.
Показ модуля для определенного языка
Снова дублируется стандартный функционал, но с возможностью задавать несколько произвольных языков из общего списка.
Скрыть модуль на смартфоне
Это очень интересная возможность. Обычно она решается с помощью медиа-запросов, с помощью которых можно скрыть модуль визуально, но сам контент все равно загружается, а значит тормозит сайт в целом.
Advanced Module Manager не просто скрывает контент, а не выводит сам код модуля. Только ради этой опции его стоит попробовать.
Показ модуля только на страницах virtuemart
Ели необходимо выводить какой-то блок с товарами на всех страницах магазина и скрывать, например, в блоге и других разделах, не относящихся к магазину, то можно задать привязку к определенному компоненту.
Скрыть модуль внутри материала joomla
По умолчанию модуль, привязанный к пункту меню с категорией материалов, отображается также и внутри самого материала этой категории. Исправить это можно с помощью следующих настроек.
Показать модуль только в определенной категории virtuemart
Для настройки привязки модуля к определенной категории без создания пункта меню для этой категории используем регулярное выражение в разделе URL.
1 |
/men/aksessuary/galstuki/?$ |
В результате модуль будет показан только на странице категории /men/aksessuary/galstuki.
Скрыть модуль в карточке товара
Для скрытия модуля в карточке товара используем следующее регулярное выражение. Оно подойдет если в url каждого товара есть суффикс detail. Настроить суффикс можно в Virtuemart > Настройки > SEO.
1 |
detail/?$ |
Комбинируя различные условия, можно очень гибко управлять привязкой модулей. По мере поступления вопросов раздел с примерами будет дополняться.
Надеюсь, что статья пригодиться в вашей работе.
Garmon85
Добрый день, как с быстродействием у данного расширения?
admin
Расширение входит в 20-ку самых популярных на extensions.joomla.org, поэтому никаких проблем с быстродействием быть не должно.
n73vi
Пользуюсь расширениями module anywhere и slider от этого разработчика. Расширения полностью бесплатные, без всяких там ссылок на сайт разработчика и т.п. Вы можете заплатить за разные дополнительные pro функции. Оба расширения работают прекрасно, думаю что и с этим проблем не будет
admin
Согласен. Хотел бы добавить про плагин Cache Cleaner, так же отлично работает.
Severyanin
Здравствуйте.
Подскажите. пожалуйста, в чем может быть проблема?
Имею: Joomla 3.8.6; VM 3.2.12.
Сайт на локальном сервере Денвер. PHP 5.3.13.
Скачал последнюю версию Advanced Manager Module 7.6.1.
Пытаюсь установить данный плагин через Менеджер расширений, компьютер зависает и установка не происходит.
Может ли проблема возникнуть из-за устаревшего Денвера?
С уважением, Станислав.
admin
Здравствуйте!
Да, скорее всего, проблема в denwer, попробуйте open server с php 5.6 или php 7.0.
iygv
Модуль супер! Приходилось создавать пункты меню, для статей в категории, чтобы не дублировать текст в модуле, который привязывался к этой категории. А с этим модулем все просто. Спасибо за статью
admin
Рад, что статья пригодилась в работе.
izvarino
Здравствуйте!
Подскажите, можно ли настроить показ модуля только в карточках товара определенного производителя?
admin
Здравствуйте!
С помощью Advanced Module Manager настроить не получится.
Нужно размещать размещать модуль в шаблоне карточке товара и там добавлять условие.
Валентин
Долгое время использовал этот модуль, чтобы не грузить модули с рекламой и прочим в сайдбаре для мобильных устройств.
Однако время от времени его глючило на отдельных страницах сайта и эти модули не выводились и на десктопных экранах тоже (приходилось каждый раз идти в админку и чистить кеш, затем чистить кеш в браузере, чтобы все заработало... и так постоянно). Пришлось отключить эту настройку для мобильных девайсов.
Если бы этот модуль мог определять ширину экрана пользователя (вместо типа устройства), было бы круто!
admin
Попробуйте плагин Device Specific Content из этой статье, возможно, поможет.
Валентин
Попробовал - работает четко!
admin
Отлично.
Максим
У меня почему то вылезла проблема с быстродействием сайта, после установки этого плагина. И еще вылезло предупреждение чтобы удалил расширение NoNumber т.к оно больше не используется, я последовал рекомендации но быстрее сайт работать не стал.
admin
Если на сайте используется php 5.6, то попробуйте сменить на php 7.2