Добрый вечер!
Необходима помощь с Gallery на Modx Revo. Точнее с выводом содержимого вложенных альбомов.
Есть галлерея с альбомами, в которых имеются вложенные альбомы. В идеале изображений кроме как во вложенных альбомах не будет.
Задача: Вывести отдельно корневые альбомы галереи. По выбору одного из них отображется блок с заголовками вложенных альбомов и их содержимым соответственно.
Вот примерная схема того, что надо получить:


Что «творю» я:
Код страницы, на которой все должно выводиться

[[!Gallery? &toPlaceholder=`gallery`]]
[[!GalleryAlbums? &toPlaceholder=`galleries`]]
[[!GalleryAlbums? &rowTpl=`galSubAlbumRowTpl` &parent=`[[+gallery.id]]` &showAll=`0` &showInactive=`1` &toPlaceholder=`subgalleries`]]
<div style="float: right">
<h2>Galleries</h2>
<ul>
[[+galleries]]
</ul>
</div>
 
[[!+gallery:notempty=`
<h1><a href="[[~[[*id]]]]">[[+gallery.name]]</a></h1>
[[+subgalleries]] 
`]]


Код чанка galSubAlbumRowTpl
<div id="catalog">
<p>[[+name]]</p>
</div>
[[!Gallery? &album=`[[+name]]`]]


На выходе получаю названия вложенных альбомов, а вместо их изображений изображения из их корневого альбома(либо ничего, если в корневом альбоме нет изображений).
Помогите, пожалуйста, достучаться до изображений вложенных альбомов.
14 комментариев
Fi1osof1
Fi1osof 23 марта 2015г в 23:14 #
Почитайте это, может поможет.
А
Александр Плеханов 24 марта 2015г в 00:35 #
Кастомная галерея, дело хорошее, были бы покрепче знания.
Подобное обращение в galSubAlbumRowTpl мне выдает обложки вложенных альбомов.
<div id="catalog">
<p>[[+name]]</p>
</div>
[[!Gallery? &containerTpl=`SiteGalleryItemTpl` ]]


Но как Ваш код переработать/использовать для вывода их содержимого, до меня не доходит.
Fi1osof1
Fi1osof 24 марта 2015г в 13:23 #
К сожалению, с плейсхолдерами я не помогу. Галерея в этом плане весьма не простая, и не прозрачен механизм появления тех или иных плейсхолдеров. Поэтому придется вам или самим ковырять, или ждать кто подскажет если подскажет, или платный проект объявлять.
А
Александр Плеханов 24 марта 2015г в 13:58 #
А если по средством xPDO, не подскажите как сразу к элементам вложенных запрос оформить, а не текущему альбому?
А
Александр Плеханов 26 марта 2015г в 00:48 #
Проблема состояла всего лишь в одном условии сниппета Gallery
if ($modx->getOption('checkForRequestAlbumVar',$scriptProperties,true)) {
    if (!empty($_REQUEST[$albumRequestVar])) $scriptProperties['album'] = $_REQUEST[$albumRequestVar];
}


Решилась задача на этом этапе очень некрасиво, но была срочная необходимость, поэтому за грамотностью не гнался:
if ($modx->getOption('checkForRequestAlbumVar',$scriptProperties,true)) {
    if($scriptProperties['album']!="") $_REQUEST[$albumRequestVar]=$scriptProperties['album'];
    if (!empty($_REQUEST[$albumRequestVar])) $scriptProperties['album'] = $_REQUEST[$albumRequestVar];
}


Код чанка особо не изменился:
<div id="catalog">
<p>[[+name]]</p>
</div>
[[!Gallery? &album=`[[+id]]`]]

А для того, чтобы выводились изображения корневых альбомов, не имеющих вложенных альбомов, немного видоизменил код самой страницы:
[[!Gallery? &toPlaceholder=`gallery`]]
[[!GalleryAlbums? &toPlaceholder=`galleries`]]
[[!GalleryAlbums? &rowTpl=`galSubAlbumRowTpl` &parent=`[[+gallery.id]]` &showAll=`0` &showInactive=`1` &toPlaceholder=`subgalleries`]]

<div style="float: right">
<h2>Galleries</h2>
<ul>
[[+galleries]]
</ul>
</div>

[[!If?
   &subject=`[[+subgalleries]]`
   &operator=`empty`
   &then=`[[+gallery]]`
   &else=`[[+subgalleries]]`
]]
Fi1osof1
Fi1osof 26 марта 2015г в 18:41 #
Как приятно все-таки самому суметь сделать, правда? :)
А
Александр Плеханов 26 марта 2015г в 19:02 #
Согласен, но когда на решение задач есть достаточно времени оно вдвойне приятней.
Fi1osof1
Fi1osof 26 марта 2015г в 19:07 #
Тоже верно. Но у других так же может не быть времени на то, чтобы разбираться в чужих скриптах.
А
Александр Плеханов 26 марта 2015г в 19:15 #
Так никто ж насильно и не заставляет в чужом коде копаться. Бывает, что просто сталкивался с подобным и готов с ходу ответить.
А
Александр Плеханов 26 марта 2015г в 19:16 #
В любом случае, Спасибо, что дали наводку в сниппетах покапаться.
Fi1osof1
Fi1osof 26 марта 2015г в 19:23 #
Не за что!
А
Александр Плеханов 05 апреля 2015г в 20:39 #
Возник еще вопрос… Есть ли возможность сортировать изображения по тегам?
Fi1osof1
Fi1osof 05 апреля 2015г в 21:52 #
Фильтровать или сортировать? Но в любом случае, нативно — нет. Писать только свой переопределяющий процессор, чтобы дописать немного построение запроса. Тогда как минимум фильтровать получится. С сортировкой сложнее.
d
dk0076 19 сентября 2016г в 08:05 #
На сайте zavodnsk54.ru сделана возможность вложенных галерей.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.