Вывести только если не пустой результат работы getImageList

Как проверить getImageList на пустоту, а если точнее, то — как вывести только заполненный MIGX? Ответ на эти вопросы вы узнаете в этой заметке.

Бывает частно такая ситуация — создаем некий блок, в котором выводим элементы. И этот блок окружен парой дивов, имеет отступы, заголовок, да и мало ли чего еще. Но вот незадача — блок может быть пустым! И что же делать простому, но трудолюбивому MODX-программисту, если такой неоднозначный товарищ оказался у нас на сайте. И все бы ничего, если бы это был бы getResourses. Результат его работы мы смогли бы поместить в плейсхолдер (атрибут toPlaceholder при вызове сниппета), и затем проверить этот плесхолдер на пустсоту примерно так: [[+myDataResult:isnot=``:then=`<div class="class-myWrappClass">[[+myDataResult]]</div>`]]. Но если мы используем MIGX, а выводим с помощью getImageList, то в таком случае будет проблемы, ибо по неизвестным автору причинам проверка на пустоту не проходит. Плесхолдер не пуст, а проверка говорит, что пуст. Пробовал даже свои сниппеты писать, strlen'ом пытался проверять — безрезультатно. И итоге, после долгих тягот и лишений вдруг неожиданно нашлось решение. Можно ведь использовать wrapperTpl. Вот вы скажете "Да куда ты раньше смотрел!?". Я отвечу "в оригинальную документацию", в которой не сказано ничего про этот атрибут! Что-ж, в документации по MIGx на русском это недоразумение я исправил. Но как говориться — "Долго заметка пишется, да быстро код копи-паститься!".

Как не выводить пустой getImageList

В общем — создаем чанк, внутри которого будет только один MODX-плесхолдер — [[+output]], указываем его во wrapperTpl:

Пример чанка для wrapperTpl: <div class="class-myWrappClass">[[+output]]</div>

[[!getImageList?
	&tvname=`migx_mytv`
	&tpl=`migx_mytv_tpl`
    &wrapperTpl=`migx_mytv_wrapper`
	&docid=`[[*id]]`
	&limit=`999`
]]

Комментарии (3)

  1. modx-программист 21 января 2019, 14:44 # 0
    В случае с migx работает модификатор [[!+migxPlaceholder:empty=`текст`]] для проверки на пустоту и, обязательно, нужно ставить восклицательный знак в начала плейсхолдера. Если в Migx и есть проблемы то они связаны с кешированием.
    1. Иван 01 марта 2019, 12:50 # 0
      Не знаю каким образом Вы проверку делали. Но у меня все прекрасно работает с &toPlaceholder
      1. Вася Ложкин 22 августа 2023, 01:02 # 0
        Введите сумму 10 + 7. А это сколько? Я считать не умею и пишу с ашипками :(
        *Комментарий будет опубликован после проверки модератором

        Похожие статьи

        Генератор настроек MIGX

        Документация на русском по MODX MIGX

        Подсказки по работе и заготовки для MiniShop2

        pdoPage и getImageList - Постраничная навигация MIGX

        Импорт и экспорт в MiniShop2. Реализация 1

        Как включить HTTPS (SSL) в MODX - Подробная инструкция

        Генерация YML для выгрузки в маркет

        Примеры работы с API MODX

        Примеры выборки where, optionFilters, innerJoin

        pThumb - ресайз изображений. Примеры использования.

        Расширение свойств товаров minishop2

        Примеры использования

        Сайт на обслуживании (выключить сайт)

        Добавить в письмо контактную информацию

        Вывести getImageList только если он не пустой

        Тип поля "Список ресурсов" (resourcelist) с ограничением по родителю (parents)

        Оформление и настройка easyComm. Комментарии и отзывы на сайте.

        Поиск на сайте с пакетом SimpleSearch

        Простая и симпатичная галерея fancybox

        Подсчет и вывод количества потомков ресурса в MODX

        Вывод tv-параметров в формате -

        Галерея. Вывести обложки альбомов и фотографии

        Отредактировать письмо о заказе - добавить ТВ поле, или что-то еще

        Quip для MODX. Более рабочий вариант

        pdoResources Заготовки для работы

        Сниппет для вывода размера и расширения файла

        Простой аудио-плеер HTML5

        Вывести список всех опций MiniShop2

        Слайдер Slick slider в контенте ресурса

        Изменить цену на товар в зависимости от количества при добавлении в корзину minishop2

        Как контролировать кэш CSS и скриптов

        Подключить MODX в стороннем PHP файле

        Простейшая авторизация

        Как создать ресурс процессором $modx->runProcessor('resource/create', $props)

        Красивое адаптивное меню под pdoMenu

        Массово обновить ТВ, или другое поле через базу

        Создать свою страницу в админке

        Изменить формат номера заказа

        Сообщение о том, что сайт использует Cookie

        Получить grandparent. Вывести родитель родителя

        Симпатичный список файлов, загружаемых к ресурсу через MIGX

        Установить шаблон по-умолчанию для новых, создаваемых ресурсов

        Вывести все доступные плейсхолдеры

        Создать источник файлов

        Отредактировать шаблон письма

        Добавить скрипт перед тегом body

        Общая сумма по каждому товару в корзине Minishop2

        Создать раздел с паролем на сайте MODX

        Что делать если ее приходит почта администратору

        Фильтрация по TV параметрам в msProducts

        Дата на русском

        FontAwesome - часто используемые иконки для шаблонов MODX

        Создать пакет с пользовательской таблицей

        Заготовки для работы

        Курсы валют с cbr.ru на PHP

        Загрузка сниппета после загрузки страницы через AjaxSnippet

        getResources заготовки

        Обязательный чекбокс при оформлении заказа

        Соответствие названия классов с названиями таблиц в MySQL

        Обработка остатков заказа в miniShop2

        Разбить вывод pdoResources на несколько колонок (блоков)

        Баннеры с использованием BannerY

        Обновить alias (псевдоним) у всех ресурсов

        CSS для постраничной навигации pdoPage

        Вывести время загрузки (формирования) страницы

        Расширить таблицу site_content (объект modResource) за 5 минут

        Вырезать кавычки — фильтр-сниппет MODX

        Счетчик посещений и скачиваний для сортировки ресурсов

        Динамическое поле emailSubject в FormIt

        Бесплатная доставка от 5000 рублей в MiniShop2

        Скрыть информацию о том, что сайт работает на MODX

        Отсортировать ресурсы по количеству комментариев Quip MODx

        Изменить цену на товар, если в корзине лежит товар из особой категории minishop2

        Создать редирект через autoRedirector API

        Вывести 404 ошибку по настройке TV MODX

        Ответ для сервиса moneta.ru

        Email сделать не обязательным полем

        Cортировать по списку id в pdoResources и pdoTools

        Как разместить исходный код сниппета на сайте, в документации

        Ускорить установку MODX revo до пары кликов

        Постраничная навигация — набор параметров и CSS PdoPage

        Сделать все элементы статичными для Git и IDE

        Не работает подгрузка товаров ajax mfilter2 на мобильном

        Сделать поле размер обязательным

        Настройка стилей для комментариев Tickets

        Подключить текстовой редактор к доп. полям ресурса

        Кастомный чанк для AdminPanel

        Динамическая замена шаблона ресурса - плагин

        Разместить корзину внутри блока с оформлением заказа

        Плагин для формирования замороженных URL с редиректом

        Приветственный экран / заглушка на сайт

        Вывести список всех родителей в ТВ поле ресурса

        xPDO Выборка из одной таблицы с зацепкой значения из другой

        Вложенные условия в xPDO MODX

        Вывести список всех емэйлов miniShop2

        Если getParentIds не работает в плагине

        Как получить данные пользователя сразу после авторизации через API

        Контролировать кэширование файлов CSS и JS MiniShop2

        Не приходят / не отправляются письма - в чем причина?

        Кэширование в MODX: использование $modx->cacheManager

        Наш сайт использует куки, нажмите «ОК» если вы не против
        OK