HelenStar
@HelenStar
Начинающий frontend

Как вывести через pdoresources содержимое migx полей с мультизагрузкой?

Всем привет!

Задача состоит в следующем: есть страница, на которой выводятся альбомы проектов. Сами альбомы сделала отдельными ресурсами, чтобы использовать мультизагрузку migx для каждого альбома (почему, читайте ниже). Все ресурсы-альбомы выводятся на странице родителя через pdoresources следующим образом:

[[!pdoPage?
&element=`pdoResources`
&parents=`107`
&depth=`0` 
&tpl=`tpl.portfolio_our-houses_album-item` 
&includeTVs=`portfolio_our-houses_album-item, our-houses_album-image` 
&prepareTVs=`1` 
&processTVs=`1` 
&sortdir=`ASC` 
]]


Чанк вывода для pdoresorces:

<div class="portfolio_our-houses_albums">
    <a href="[[+tv.our-houses_album-image]]" class="album-image"><img src="[[+tv.our-houses_album-image]]" alt="[[+pagetitle]]"><span class="album-title">[[+pagetitle]]</span></a>
    [[!getImageList? 
     &tvname=`portfolio_our-houses_album-item`
     &tpl=`tpl.portfolio_our-houses_album-item_img`
     &docid=`[[+id]]`
     &where=`{"published":"1"}`
    ]]
</div>


где "portfolio_our-houses_album-item" - наше поле с мультизагрузкой.

Ну и сам шаблон для данного поля:

<a href="[[+image]]"></a>

Поля migx то он выводит, все хорошо, вот только путь он прописывает у фоток id родителя (то есть ресурса, в котором выводим, а не в котором заполняем доп поля), а грузит их при заполнении полей в самих ресурсах в правильную папку - с id самого ресурса.
То есть путь он прописывает у загруженных через migx фото вот так:

"107" - id ресурса, где выводим эти поля, а у ресурса от которого поля id - 109 и 112.

Не могу никак понять, что не так, и где искать причину. Что я тут сделала не так, или еще куда дописать нужно?

P.S. Почему решила разбить по разным ресурсам?
Пробовала делать в одном ресурсе, но такой тип загрузки migx грузит все картинки в папку с id ресурса, а нужно, чтобы папки были разными, чтобы все фото не были в одной куче. Все эти галочки "опубликовано" в доп полях вообще не работают, он все равно у всех доп полей выводит все загруженные в папку фото (то есть в каждом альбоме все равно листаются все фото со страницы). Можно было бы просто сделать разные источники файлов, я делала такое с другой страницей, но там количество галерей было две и больше не будет. А в данном случае количество альбомов (внутри каждого галерея magnific) может быть неограниченным, поэтому такой способ не подойдет. Поэтому решила разбить альбомы по ресурсам, чтобы migx грузили фото каждого альбома в папку соответствующего ресурса. Ну и еще на случай, если вдруг попросят другую галерею сделать, не Magnific, где все фото идут в виде ссылок в самом альбоме, а, например, flexslider, то может будет лучше тогда делать вывод ресурсов-альбомов в модалку через аякс, чтобы вместе со страницей, где выводятся альбомы не грузились все сто или больше фоток сразу.
Но что-то идея, похоже, не особо удачная, по крайней мере с задумкой с migx, хотя по идее (судя по статьям про мультизагрузку) он должен выводить содержимое доп полей ресурса, в котором эти доп поля заполняли, а не родителя.

Может кто-нибудь делал подобное и знает, что здесь не так?
Сама тестовая страница: u0485156.cp.regruhosting.ru/intereryi-domov.html
  • Вопрос задан
  • 1696 просмотров
Решения вопроса 1
HelenStar
@HelenStar Автор вопроса
Начинающий frontend
Вопрос снят! Как я и думала - дело в кэше. Вот только не знала, где его искать. И кэш из папки core удаляла, и что только не делала. Но подумать не могла, что даже в Источниках файлов надо вызов делать некэшированным)

Спасибо автору вопроса здесь https://modx.ru/vopros-otvet/info/2663/
Ну или здесь тоже: https://forums.modx.com/thread/99755/migx-multiupl...
P.S. До этого эти ссылки мне не попадались в яндекс при поиске( Так бы сэкономила пару дней поисков ответа.

Если кому интересно, то ответ прост: в путях в источнике файлов прописываем некэшированный вызов migxResourceMediaPath:

[[!migxResourceMediaPath? &pathTpl=`img/portfolio/projects/{id}/` &createFolder=`1`]] :-)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы