Отобразить migx галерею, но только если в ней есть картинки, иначе с другой страницы подгрузить

Здравствуйте…
У меня две галареи на MIGX. Одна на главной id(1) странице, другая на страницах(2)..(3)..(4)… и тд. у каждой страницы своя.
Мне нужно на странице(2) отображать галарею, НО ТОЛЬКО ЕСЛИ на ней загружены картинки, ИНАЧЕ отобразить галерею с Главной id(1).

Галереи сделаны по принципу MIGX, по статье с сайта http: //pitrooo. ru/note/galereya-s-pomoshhyu-migx.html
у каждой сделал свой чанк и шаблон.

Вот так пробую:
[[*gallery-page:is=``:then=`пусто`:else=`есть фотографии`]]
вот эта конструкция работает, но она работает если на странице ранее ничего не загружалось и не удалялось.,
видел писали про скобки, [ ] что они остаются в БД даже после удаления строчки в MIGX.

А как тогда проще проверить загружены ли картинки в MIGX таблицу или пусто…
Игорь
04 марта 2023, 22:38
modx.pro
577
0

Комментарии: 7

Артур Шевченко
04 марта 2023, 23:10
0
Проще всего так
{set $gallery = $_modx->resource.id | resource: 'gallery-page'}
{if !$gallery}
{set $gallery = 1 | resource: 'gallery-page'}
{/if}
{set $gallery = $gallery | fromJSON}
Ну и дальше в цикле перебрать.
    Игорь
    05 марта 2023, 09:49
    0
    Эх, слишком сложно…

    может проще чекбокс поставить на страницу в админке, если включен тогда показываем чанк одну галерею, если выключен то показываем банк от главной галереи
      Алексей Смирнов
      05 марта 2023, 09:55
      0
      Поверьте, не сложнее чем на MODX парсере, а то и лучше с точки зрения поддержки и читаемости и функционирования. Переходите на fenom и не пожалеете.
        Константин Ильин
        05 марта 2023, 10:22
        +1
        Если Вам, то, что Артур написал сложно, то Вам наверно мимо программирования или читать/учится больше надо.
        Ну и на феном переходите, на modx парсере все это еще хуже выглядит с точки зрения программирования.
        {set $gallery = $_modx->resource['gallery-page']}
        {if $gallery in list ['', '[]'] }
             /* Тут берем галерею из другого ресурса если текущая пустая */
            {set $gallery = 1 | resource: 'gallery-page'}
        {/if}
        
        /* доп проверка на пустоту , мало ли на другом ресурсе тоже нет галереи */
        {if !($gallery in list ['', '[]'])}
            /* Если не пусто то выводим в цикле */
            {set $gArr = $gallery | fromJSON}
            {foreach $gArr as $item}
                <div>{$item['Ключ в migx']}</div>
            {/foreach}
        {/if}
          Игорь
          05 марта 2023, 15:16
          0
          спасибо) пока не столько знаний, что б погружаться в феном… но за ответы спасибо)
            Константин Ильин
            05 марта 2023, 16:55
            +1
            ну если хотите так же модх, как говорится первая ссылка в гугле
            perfkirill.ru/stati/modx/if-else-modx
            //Добавить еще условие :or:is=`[]`
            
            [[*gallery-page:is=``:or:is=`[]`:then=`пусто`:else=`есть фотографии`]]
              Игорь
              05 марта 2023, 19:13
              0
              оо супер)) работает) спасибо!!!
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      7