Организация видео галереи с pdoTools

Всем привет. Вообщем встала задача переноса сайта с Evo на Revo и возникла проблема. Проблема заключается в том, что вывод ссылки с картинкой организован немного не привычно. Тоесть вот как обстоит дело:

1. Есть родитель под названием Видео. В нём есть документы контейнеры, как бы подкатегории, и во всех этих подкатегория находятся видео. Задача заключается в том. Что мы выводим картинки с описанием от подкатегорий, а ссылки на последние добавленные видео в этой подкатегории должны идти. На MODX Evo это было организовано с помощью Ditto и самописнаго снипета, который вставлялся в чанке с шаблоном записи следующего вида:

<li><a href="[[first_video_project? &parent_id=[+id+]]]"><img src="[+tvvideo_progects+]" alt="[+pagetitle+]" title="[+pagetitle+]"></a><div class="title"><a href="[[first_video_project? &parent_id=[+id+]]]">[+pagetitle+]</a></div></li>


тоесть добавлен сниппет под названием first_video_project, который состоит из трёх строчек кода:

<?php
$array_ids = $modx->getAllChildren($parent_id);
$page_url=$modx->makeUrl($array_ids[0]['id']);
echo $page_url;
?>
Вывожу так:

[[!pdoPage?
    				    &parents=`2628`
    				    &elemnt=`pdoResource`
    				    &tpl=`live_radio_list_item`
    				    &includeTVs=`img_live_radio`
    				]]
Как переписать под MODX Revo? Что-то у меня мозг уже кипит от этого сайта.
Андрей Копп
31 января 2016, 16:01
modx.pro
966
0

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

Максим Кузнецов
01 февраля 2016, 01:11
+1
а ссылки на последние добавленные видео в этой подкатегории должны идти.
Звучишь как Йода..)

Грубо говоря, есть структура:
Видео
- Категория 1
-- (список ресурсов с видео)
- Категория 2
...
И нужно вывести список всех видео, с получением некоторых полей от родителя?

В таком случае код будет примерно такой:
[[!pdoPage?
    	&parents=`айди_всего_раздела_видео`
	&depth=`0`
	&includeTVs=`img_live_radio`
	&tpl=`live_radio_list_item`
	&where=`{"template": айди_шаблона}` //уберем из выборки категории
]]
В самом же чанке у нас есть плейсхолдер [[+parent]] и при помощи сниппета pdoField мы можем вытащить из родителя любые требуемые данные.
— решение не слишком хорошее с позиции кол-ва запросов, но задачу решит.

Как альтернатива — можно воспользоваться leftJoin'ом и Select'ом (документация) и подцепить в вызов требуемые поля от родителя.
    Андрей Копп
    01 февраля 2016, 16:45
    0
    Как всегда, спасибо огромное Максим за помощь. Буду пробовать, кстати про pdoField даже не думал.)
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2