Получить документ по идентификатору в 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