Простите, если вопрос покажется вам сумбурным. Есть сайт на MODx Revo, в котором имеется много (более тысячи) ресурсов.
Задача: выгрузить некоторые поля большинства ресурсов (а именно, pagetitle и url) в какой-нибудь удобный формат и вставить на страницу в блок с javascript-кодом, чтобы ими (этими данными) можно было потом манипулировать. В модэксе использую компонент pdoTools. Для структуры выгружаемых данных не придумал ничего лучше как использовать объект, внутри которого массив с единственным ключём
objects
, в котором будут храниться объекты с ключами
title
и
url
, значения которых будут, соответственно, браться из ресурсов.
Правильно ли я понимаю, что мне нужно взять сниппет pdoResources и с его помощью сделать выборку нужных ресурсов, а правильную структуру обеспечить с помощью чанка. Например,
Вызов сниппета в шаблоне (условный):
<script>
var myArray = {
"objects": [
[[!pdoResources?
&parents=`1`
&limit=`0`
&tpl=`JSONchunk`
&tplLast=`JSONlastchunk`
]]
]
};
</script>
Чанк
JSONchunk:
{
"title":"[[+pagetitle]]",
"url":"[[+link]]"
},
Соответственно, последний чанк отличается лишь тем, что в конце нет запятой. Думаю, можно даже запихнуть его в
@INLINE
(хотя, при таком подходе можно и обычный чанк так-же записать). Так вот. Нормален ли такой подход, или есть что-то более примитивное/понятное? На самом деле меня он устраивает, просто хотелось бы узнать, насколько кривой мой вариант и какие варианты решения этой задачи есть ещё?
Предполагаю, что в моём варианте в итоге должно получиться что-то вроде этого:
Результатvar myArray = {
"objects": [
{
"pagetitle": "название 1",
"url": "http://ya1.ru"
},
{
"pagetitle": "название 2",
"url": "http://ya2.ru"
},
{
"pagetitle": "название 3",
"url": "http://ya3.ru"
}
]
};