Как по значению tv определить id ресурса?

Есть ресурсы с конкретными консультациями по определенным вопросам — эти консультации очные.
Однако есть онлайн консультации по этим же или похожим вопросам.

Например, у очной консультации id ресурса-контейнера 10.
У ресурса онлайн консультации id ресурса-контейнера 20.
Таких пар ресурсов может быть несколько тысяч.

Нужно выводить анонсы дочерних ресурсов ресурса с id 20 на странице ресурса с id 10.

Прописывать это вручную посредством:
{if $_modx->resource.id == 10}
//выводить дочерние ресурсы ресурса с id 20? например, посредством pdoMenu 
{/if}
сами понимаете, не вариант, при наличии нескольких тысяч таких пар ресурсов.

Не нашел ничего другого, как сделать tv-поле и у таких пар ресурсов прописать одинаковое уникальное значение tv-поля.
Далее, если пользователь находится на странице ресурса 10 вытаскивать значение tv-поля:
{$_modx->resource.tvName}

А далее… затык...!!! не пойму как определить id ресурса с таким же значением tv-поля, чтобы дальше с ним работать — выводить его дочерние ресурсы.
Подскажите, пожалуйста, возможно ли определить id ресурса по его tv-полю в шаблоне на Fenom?

Возможно, найдутся и другие варианты решения этой задачи — менее ресурсоемкие.

Заранее, благодарю.
Дмитрий
13 сентября 2019, 23:24
modx.pro
1
752
0

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

Дмитрий
14 сентября 2019, 02:11
0
Ничего лучше не придумал, как сделать следующим образом.

id 38 — это основной раздел (родитель) всех разделов консультации.

{var $dlyaOnKons = $_modx->resource.dlyaOnlineKonsultacii}


    {var $id_DlyaOnKons = 'pdoResources'|snippet:[
      'parents' => 38,
      'includeTVs' => 'dlyaOnlineKonsultacii',	   
      'tpl' => '@INLINE {$id}',      
	  'where' => [ 
	  'dlyaOnlineKonsultacii:=' => $dlyaOnKons,
	  'AND:isfolder:=' => 1 
	  ]
    ]}

{$id_DlyaOnKons}

Покритикуйте…
Может можно сделать как-то менее ресурсоемко, а то 7 запросов к базе.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1