MODX. Сниппет BannerY. Создание удобного слайдера в MODX при помощи BannerY

Большинство авторов описывают создание слайдера при помощи MIGX, но такой способ весьма не удобен, поскольку требует привязки к ресурсу. Куда более удобным компонентом для этих целей является BannerY, как всегда, от несравненного Василия Наумкина

Итак, для организации бэкэнд части слайдера понадобиться:

  1. Установить дополнение BannerY;
  2. Создать 2 чанка с шаблонами: шаблон для элемента и шаблон для обертки;
  3. Зайти в меню Extras (Пакеты) в пункт BannerY;
  4. В открывшемся окне перейти на 2 вкладку «Позиции» и создать новую позицию;
  5. Перейти на 1 вкладку «Баннеры», и создать необходимое количество баннеров, задать каждому имя, изображение и выбрать специальную позицию;
  6. Перейти в нужное место шаблона и вызвать сниппет 
    [[!BannerY?
          &tpl=`tpl.slider-item`
          &tplWrapper=`tpl.slider-wrap`
    ]]

Пример чанка tpl.slider-wrap

<div class="slider-block js-slider">
    [[+output]]
</div>

Пример чанка tpl.slider-item

<div class="slider-img-wrap">
        <img src="{$image}" alt="{$name}">
</div>

Не забудьте написать css и подключить скрипт слайдера в js файлах вашего сайта, например так:

<script src="/assets/templates/def/js/jquery-3.3.1.min.js"></script>
<script src="/assets/templates/def/js/slick.min.js"></script>
<script> $('.js-slider').slick({}); </script> 

Поля интерфейса «Баннеры» в компоненте BannerY:

  • Название — любое название баннера, чтобы вам было удобно ориентироваться по ним в админке.
  • Источник медиа — необязательный параметр. Картинки можно хранить на удалённых серверах, подключенных через источники медиа. По умолчанию будут местные файлы.
  • Включен — переключатель активности баннера.
  • Новое изображение — выберите предварительно загруженное изображение. Будут показаны файлы из выбранного источника.
  • URL — место назначения баннера. Можно указывать страницы своего сайта или url - для этого нужно набрать адрес с http://.
  • Текст баннера — любой произвольный текст, его можно будет вывести в подписи к баннеру.
  • Позиции — выбор позиций, для которых показывается этот баннер. Их нужно создать предварительно в соседней вкладке.

Плейсхолдеры сниппета BannerY:

  • [[++bannery_click]] — устанавливается в href параметр ссылки, отлавливает клик по баннеру;
  • [[+adposition]] — номер баннера;
  • [[+image]] — изображение;
  • [[+name]] — название;
  • [[+description]] — описание;
  • [[+url]] — ссылка.

Тонкости при работе с BannerY:

В текущей версии компонента нет возможности выбрать в качестве ссылки на изображение сторонний ресурс. При указании ссылки на изображение, находящееся на другом сайте, перед ссылкой подставляется слэш. Самый легкий способ решения этой проблемы — использование модификатора в шаблоне вывода баннера:

// модификатор убирает первый слеш при выводе изображения на сайте
<img src="{$image | preg_replace : '~^/~': ''}"/>

Еще одна особенность работы компонента заключается в ссылке на несуществующую страницу сайта. Поисковики видят ссылки как /bannerclick/5?id=2246 и в отчетах жалуются на то, что эти страницы заблокированы файлом robots.txt, хотя страницы таковыми не являются. Чтобы исключить эти показания из отчетов, заблокируйте страницы в robots.txt

Disallow: /bannerclick/

Документация сниппета BannerY

BannerY ​

BannerY

Компонент для управления баннерами на сайте.

Создаете баннеры, рекламные места, затем связываете одно с другим и выводите на сайте в нужных местах. В админке ведётся статистика кликов по баннеру.

Параметры

Название Описание
&positions Номера рекламных позиций для вывода баннеров, через запятую.
&showLog Показывать дополнительную информацию о работе сниппета. Только для авторизованных в контексте «mgr».
&fastMode Быстрый режим обработки чанков. Все необработанные теги (условия, сниппеты и т.п.) будут вырезаны.
&limit Ограничение выборки.
&offset Пропуск результатов от начала.
&sortby Поле для сортировки выборки, можно указывать «RAND()».
&sortdir Направление сортировки.
&outputSeparator Необязательная строка для разделения результатов работы.
&where Массив дополнительных параметров выборки, закодированный в JSON.
&showInactive Показывать отключенные позиции.
&tpl Имя чанка для оформления баннера. Если не указан, то содержимое полей баннера будет распечатано на экран.
&tplFirst Имя чанка для первого баннера в результатах.
&tplLast Имя чанка для последнего баннера в результатах.
&tplOdd Имя чанка для каждого второго баннера.
&tplWrapper Чанк-обёртка, для заворачивания всех результатов. Понимает один плейсхолдер: [[+output]]. Не работает вместе с параметром &toSeparatePlaceholders.
&wrapIfEmpty Включает вывод чанка-обертки &tplWrapper даже если результатов нет.
&toPlaceholder Если не пусто, сниппет сохранит все данные в плейсхолдер с этим именем, вместо вывода не экран.
&toSeparatePlaceholders Если вы укажете слово в этом параметре, то ВСЕ результаты будут выставлены в разные плейсхолдеры, начинающиеся с этого слова и заканчивающиеся порядковым номером строки, от нуля. Например, указав в параметре «myPl», вы получите плейсхолдеры [[+myPl0]], [[+myPl1]] и т.д.

Примеры

Перед использованием необходимо предварительно создать баннер и позицию. См. раздел интерфейс.

Если вы хотите выводить баннеру в случайном порядке (по умолчанию), то нужно вызывать сниппет некэшированным:

modx
[[!BannerY? &position=`2`]]