getResourceField
Последнее обновление Apr 16th, 2021 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$301 per month—let's make that $500!
Learn moreЧто такое getResourceField?¶
getResourceField - это простой Сниппет, который можно использовать для отображения одного поля, включая переменные шаблона (TV), другого ресурса в MODX Revolution.
История¶
getResourceField был впервые выпущен 16 сентября 2010 года автором paulmerchant, соавтором которого является Shaun McCormick.
Скачать¶
Сниппет можно получить через диспетчер пакетов или загрузить вручную из Официального репозитория.
Использование¶
Минимальный вызов тега выглядит следующим образом:
[[getResourceField]]
Это выведет заголовок текущего ресурса.
Параметры getResourceField¶
Имя | Описание | Значение по умолчанию |
---|---|---|
id |
Идентификатор ресурса, из которого нужно получить поле. | $modx->resource->get('id') |
field |
Имя возвращаемого поля или переменной шаблона. | pagetitle |
isTV |
Если установлено значение 1 или true , поле считается переменной шаблона. |
false |
processTV |
Если установлено значение 1 или true , TV переменная будет обрабатываться в соответствии с ее параметрами вывода. |
false |
default |
Значение (строка), возвращаемое, если поле не найдено или пусто. |
Примеры¶
Вернуть заголовок страницы из ресурса с идентификатором 123:
[[getResourceField? &id=`123`]]
Вернуть обработанную переменную шаблона с именем myTV
родительского ресурса и, если ее значение пусто, вывести сообщение «Извините, значение отсутствует»:
[[getResourceField? &id=`[[*parent]]` &field=`myTV` &processTV=`1` &default=`Извините, значение отсутствует`]]
Вернуть поле introtext
конечного родителя (обратите внимание, что для этого необходимо установить Сниппет UltimateParent):
[[getResourceField? &id=`[[UltimateParent]]` &field=`introtext`]]
Ошибки¶
Одна ошибка, к которой склонен этот Cниппет, обманчиво незаметна: вы можете получить зацикливание. Рассмотрим пример, в котором вы определили TV переменную шаблона на своей домашней странице, например [[*Feature_article]]
, и вы используете это в вызове сниппета getResourceField:
[[getResourceField? &id=`[[*featured_article]]` &field=`content`]]
Если этот TV параметр не установлен, по умолчанию используется идентификатор текущей страницы. Если ваш вызов Сниппета находится в содержимом вашей страницы, и вы запрашиваете контент в качестве своего поля, ваш Сниппет может "попасть в кроличью нору" и бесконечно зацикливаться сам на себе, в результате чего ваш запрос страницы будет завершен со слишком большим количеством перенаправлений.
Итог: если вызов Сниппета находится внутри того же поля, которое вы запрашиваете (например, контентное содержимое), убедитесь, что параметр id никогда не указывает на текущую страницу.
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$301 per month—let's make that $500!
Learn more