Не могу разобраться с Gallery. Дерево альбомов

Добрый вечер! Необходима помощь с 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]]`]] На выходе получаю названия вложенных альбомов, а вместо их изображений изображения из их корневого альбома(либо ничего, если в корневом альбоме нет изображений). Помогите, пожалуйста, достучаться до изображений вложенных альбомов.

Почитайте это, может поможет.

Кастомная галерея, дело хорошее, были бы покрепче знания. Подобное обращение в galSubAlbumRowTpl мне выдает обложки вложенных альбомов. <div id="catalog">

<p>[[+name]]</p> </div> [[!Gallery? &containerTpl=`SiteGalleryItemTpl` ]] Но как Ваш код переработать/использовать для вывода их содержимого, до меня не доходит.

К сожалению, с плейсхолдерами я не помогу. Галерея в этом плане весьма не простая, и не прозрачен механизм появления тех или иных плейсхолдеров. Поэтому придется вам или самим ковырять, или ждать кто подскажет если подскажет, или платный проект объявлять.

А если по средством xPDO, не подскажите как сразу к элементам вложенных запрос оформить, а не текущему альбому?

Проблема состояла всего лишь в одном условии сниппета 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]] ]]

Как приятно все-таки самому суметь сделать, правда? :)

Согласен, но когда на решение задач есть достаточно времени оно вдвойне приятней.

Тоже верно. Но у других так же может не быть времени на то, чтобы разбираться в чужих скриптах.

Так никто ж насильно и не заставляет в чужом коде копаться. Бывает, что просто сталкивался с подобным и готов с ходу ответить.

В любом случае, Спасибо, что дали наводку в сниппетах покапаться.

Не за что!

Возник еще вопрос… Есть ли возможность сортировать изображения по тегам?

Фильтровать или сортировать? Но в любом случае, нативно — нет. Писать только свой переопределяющий процессор, чтобы дописать немного построение запроса. Тогда как минимум фильтровать получится. С сортировкой сложнее.

На сайте zavodnsk54.ru сделана возможность вложенных галерей.