Выводим поля ресурсов MODX своим сниппетом.

Выводим поля ресурсов MODX своим сниппетом.

Создаем сниппет getPagetitle:

$res = $modx->getObject('modResource', 1); // Отправляем запрос к ресурсу 1
$output = $res->get('pagetitle'); // Получаем значение из поля pagetitle
print $output; // Выводим результат на странице

Результатом такого кода будет "Главная", так как ресурс с id 1 имеет заголовок "Главная".

Для удобства выполнения кода не обязательно создавать сниппеты, можно воспользоваться отличным компонентом Console.

Результатом выполнения кода так де будет заголовок "Главная".

Этот пример кода показал как вывести заголовок документа с id 1, если же вам нужно вывести заголовок текущего документа, вам поможет конструкция вида $modx->resource->get('pagetitle');

$output = $modx->resource->get('pagetitle'); // Выводим заголовок текущего ресурса
print $output; // Выводим результат на странице

Результатом такого кода будет заголовок текущего документа. Так же нужно помнить что выводить можно не только заголовок но и другие поля, такие как "longtitle, content, alias" и другие стандартные поля ресурсов.

Немного примеров:

$output = $modx->resource->get('alias'); // Выводим алиас текущего ресурса
print $output; // Выводим результат на странице
$output = $modx->resource->get('content'); // Выводим content текущего ресурса
print $output; // Выводим результат на странице

Так же можно выводить не только конкретное поле ресурса, но и массив всех полей. Для этого нужно немного изменить код вывода:

$res = $modx->getObject('modResource',1);  // Отправляем запрос к ресурсу 1
$output = $res->toArray();  // Получаем массив значений ресурса 1
print_r($output);  // Выводим результат на странице

С полями MODX вроде разобрались, теперь разберемся как же выводить TV поля.


Выводим TV поля MODX.

Ничего сложного, если для запроса полей MODX используется $modx->resource->get('pagetitle') то для вывода TV нужно $modx->resource->getTVValue('img');

$res = $modx->getObject('modResource', 1);  // Отправляем запрос к ресурсу 1
$output = $res->getTVValue('seo'); // Выводим TV текущего ресурса
print $output; // Выводим результат на странице
$output = $modx->resource->getTVValue('seo'); // Выводим TV текущего ресурса
print $output; // Выводим результат на странице