Получить документ по идентификатору в modx

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

Пока у меня есть домашняя страница и созданы дочерние документы для субрегионов на домашней странице. Все, что я хочу, это позвонить им в шаблоне.

Например, есть документ с идентификатором 2, и я хочу длинный заголовок на главной странице (идентификатор 1).

Что-то вроде:

[[~2*longtitle]] 

К сожалению, вышеприведенное просто возвращает URL-адрес этого вложенного документа, а не заголовок самого документа.

До сих пор я не нашел документации по этому вопросу. Кто-нибудь знает, как этого добиться?

2 ответа

Решение

У вас есть 2 варианта: трудный путь ~ выбранный вами маршрут;) и легкий путь... который я также опишу.

Для того, что вы пытаетесь сделать, вы захотите использовать либо getResources http://rtfm.modx.com/display/ADDON/getResources которые позволят вам перебрать коллекцию ресурсов и извлечь нужные поля [in в этом случае 'content'] или getresourceField http://rtfm.modx.com/display/ADDON/getResourceField который позволит вам указать один ресурс и поле для извлечения, просто вызовите его несколько раз в вашем шаблоне.

Вы можете попробовать:

[[getResources? &parents='[[*id]]' &tpl='myTpl' &includeContent='1']] 

Если вы получите все дочерние ресурсы [по умолчанию ~ 10] текущего ресурса, то вы должны создать шаблон для циклического перебора ресурсов:

<h1>[[+longtitle]]</h1>
<p>[[+content]]</p>

обратите внимание на использование + вместо * для полей ресурса

ИЛИ ЖЕ

Самый простой способ - создавать переменные шаблона для дополнительных областей содержимого, а также настраивать их как расширенные текстовые области. таким образом, весь ваш контент для любой данной страницы находится в одном ресурсе - вам не нужно создавать дочерние ресурсы для хранения контента для вашего верхнего / нижнего колонтитула / боковой панели / и т. д.

В любом случае, метод TV может использовать меньше накладных расходов.

Вы можете использовать Fastfield

[[#12.pagetitle]]

или в вызове

[[#[[+id]].pagetitle]]

Вы также можете взять все телевизоры этого ресурса, например,

[[#12.myTv]]

см. также: http://rtfm.modx.com/extras/revo/fastfield

Другие вопросы по тегам