MIGX и вывод одной превьюшки из галереи

Здравствуйте. Столкнулся с неопознанным. У меня есть структура вида
Каталог
-- Товар 1
-- Товар 2
В каждом товаре есть галерея MIGX со всевозможными фотками оного. Я пытаюсь одну из этих фоток вывести на страницу каталога. Делаю это таким запросом:

[[!pdoMenu? 
&includeTVs=`vendorImage,catImage` 
&parents=`[[~id]]`
&sortBy=`pagetitle`
&levelClass=`level` 
&tplOuter=`@INLINE [[+wrapper]]`
&tpl=`categoryItem`
&tplCategoryFolder=`categoryItem`
]]
В categoryItem, соответственно, есть вот такой код:

[[getImageList? &docid=`[[+id]]` &tvname=`resourcealbum` &tpl=`CategoryItemImage` &limit=`1`]]
И в чанке CategoryItemImage выводится всего лишь одна строчка: [[+image]].

В чём проблема: он действительно выводит, но при этом он пишет мне вот такие URL'ы:
/assets/resourceimages/22/lenovo-desktop-thinkcentre-edge-72z-front-view.png

Но 22 — это НЕ id дочернего документа, откуда берётся галерея, это id документа из которого вызывается getImageList. Что интересно, если я рядом с getImageList пишу [[+id]] то он выводит мне правильный id дочернего документа а не 22. Что странно, имена файлов он пишет совершенно правильно, именно из разных директорий resourceimages, загвоздка именно в 22.
Евгений
23 мая 2014, 16:22
modx.pro
2
6 219
0

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

Andrey Grachov
25 мая 2014, 00:08
0
Не используется ли у вас случайно migxResourceMediaPath для картинок?
    Евгений
    25 мая 2014, 00:35
    0
    Делалось по вот этому хауту: rtfm.modx.com/extras/revo/migx/migx.tutorials/migx.use-resource-specific-mediasource-and-multifile-uploader

    По-моему как раз это он самый.
      Andrey Grachov
      25 мая 2014, 02:00
      +1
      Насколько я помню, нормального решения этой проблемы нет. Предлагаемое решение — вызывать getImageList с processTV=`0`, а правильную ссылку формировать вручную (/assets/resourceimages/[[+id]]/[[+image]]). Хотя может уже и поменялось что-то с тех пор, как я видел похожую проблему :)
        Евгений
        25 мая 2014, 10:37
        0
        Спасибо, сделал по вашему совету в чанке вывода вот так:
        /assets/resourceimages/[[+id]]/[[+image:phpthumbof=`h=100&w=100`]]
        Это помогло.

        Осталось две проблемы: почему в данном случае не работает phpthumbof?
          Andrey Grachov
          25 мая 2014, 17:04
          1
          +1
          Правильный вариант выглядит так:
          [[phpthumbof? &input=`/assets/resourceimages/[[+id]]/[[+image]]` &options=`h=100&w=100`]]
          Если не заработает, можно попробовать [[+property.docid]] вместо [[+id]].
            Евгений
            25 мая 2014, 18:11
            0
            Спасибо, всё прекрасно заработало, лохматость повысилась и хвост ломить перестало. Вы очень помогли.
          Евгений
          25 мая 2014, 10:40
          0
          И второй вопрос. Там, где у меня вызов getImageList он выглядит так:
          <a href="[[+link]]" [[+attributes]] class="thumbnail"  
          		style="background-image: url([[getImageList? &docid=`[[+id]]` &processTVs=`0` &tvname=`resourcealbum` &tpl=`CategoryItemImage` &limit=`1`]]);">
          Соответственно если в MIGX нет изображений то он выведет
          <a.... style="background-image: url(   )">
          И «заткнёт» изображение по умолчанию, которое там стоит. Как можно реализовать проверку на существование изображений в галерее MIGX?
            Andrey Grachov
            25 мая 2014, 17:06
            0
            Можно background-image: url() перенести в чанк CategoryItemImage. Тогда если не будет изображений, стиль останется без background-image.
      Anton
      04 ноября 2016, 15:40
      0
      Столкнулся с похожей проблемой. Брал за основу тот же метод:
      https://docs.modx.com/extras/revo/migx/migx.tutorials/migx.use-resource-specific-media-source-and-multifile-uploader#MIGX.Useresource-specificmediasourceandmultifile-uploader-Createthedynamicresourcespecificmediasource
      Использовался migxResourceMediaPath (для определения basePath и baseUrl Источника файлов):
      [[migxResourceMediaPath? &pathTpl=`assets/resourceimages/{id}/` &createFolder=`1`]]
      Решил вывести несколько MIGX галерей от разных ресурсов на одной странице через getResources и getImageList:
      https://docs.modx.com/extras/revo/migx/migx.frontend-usage
      Первая галерея отобразилась нормально:
      /assets/resourceimages/1/foto_gal1.jpg
      а для последующих галерей путь до фото упрямо прописывался от первой — id ресурса не менялся на нужный (такое ощущение, что он кэшировался):
      /assets/resourceimages/1/foto_gal2.jpg
      /assets/resourceimages/1/foto_gal3.jpg
      Помогло отключение кэширования при вызове migxResourceMediaPath в настойках Источника файлов:
      [[!migxResourceMediaPath? &pathTpl=`assets/resourceimages/{id}/` &createFolder=`1`]]
      После этого, id стал корректным для каждой из галерей:
      /assets/resourceimages/1/foto_gal1.jpg
      /assets/resourceimages/2/foto_gal2.jpg
      /assets/resourceimages/3/foto_gal3.jpg
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        9