Приступим к созданию такой TV.
Создадим сниппет «listMyResources».
В нём наша логика выбора ресурсов, беруться только опубликованные ресурсы и с родителем, которого мы укажем в ТВ, это позже.
<?php $output[]= '-==-'; $parents = $modx->getCollection('modResource',array( 'parent' => $modx->getOption('parent',$scriptProperties), 'published' => 1, )); foreach ($parents as $res) { $output[]= $res->get('pagetitle').'=='.$res->get('id'); } $out = implode("||",$output); return $out;
Создаём дополнительное поле.
Тип ввода: Список (одиночный выбор).
В «Возможные значения» пишем следующее:
@EVAL return $modx->runSnippet('listMyResources',array('parent' => 2));
Вместо «2» указываем нужного родителя из которого мы хотим брать ресурсы.
Использование поля.
После этого присвойте ТВ конкретному шаблону и работайти с ним.
На сайт же выводится не заголовок, а id ресурса. Единственная особенность при выводе это то, что если ресурс не выбран, вместо пустоты выводися «-».
Поэтому проверку на пустоту делать требуется так:
Через плейсхолдеры:
[[*mytv:is=`-`:then=`Поле не заполнено`:else=`ID ресурса: [[*mytv]]`]]
Через Fenom
{if $_modx->resource.mytv != '-'} ID ресурса: {$_modx->resource.mytv} {else} Поле не заполнено {/if}
Собственно и всё, думаю, как выводить информацию о ресурсе через его ID вы знаете как, если нет, пишите в комментариях.
Источник: daruse.ru/tv-dlya-vyibora-resursa-s-nuzhnyim-roditelem-i-poiskom-v-modx-revolution
А как вывести до 5-го уровня? и что бы отображалось какой куда вложен?
или например выбрал родителя, дальше выбрал дочку, дальше еще дочку — если есть.
сори за сумбур.