MODX: Поля ресурсов: какие есть, как вывести

стандартные tv MODX Revo

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

Каждый ресурс MODX имеет стандартный набор полей.

стандартные tv

Так же поля есть на вкладке настройки.

Если навести название на любое поле вы увидите подсказки по их названию и выводу при помощи стандартного шаблонизатора.

Подстказки по названиям TV полей при наведении на них

Общие поля ресурсов

Название Описание
id Идентификатор ресурса.
template Ссылка на Шаблон что этот ресурс использует
published Если ресурс опубликован или доступен для просмотра на front-end.
pagetitle Заголовок ресурса.
longtitle Длинный заголовок ресурса.
description Описание ресурса.
introtext Вводная выдержка из содержания ресурса. Полезно для блогов или поиска.
alias Псевдоним URL. Применяется если ваш сайт использует дружественные URL. Ресурс с псевдонимом «home» и типом содержимого «html» будет отображать на выходе «home.html», если он не является контейнером.
parent Идентификатор ресурса-родителя.
link_attributes Используется в сниппетах построения меню для добавления атрибутов к ссылкам. Может быть использован и для других нужд.
menutitle Краткое отображение заголовка ресурса в меню.
menuindex Индекс ресурса в древовидном меню. Более высокое значение означает более низкое положение ресурса в меню.
hidemenu «Скрыть из меню», если установлен, то ресурс не будет отображаться в большинстве сниппетов формирования меню.
content Контент ресурса. Зачастую главное рабочее поле.

Настройки полей ресурса

Имя Описание
isfolder Отмечает ресурс как «Контейнер».
searchable Делает ресурс доступным для поиска.
cacheable Если отмечено, ресурс будет сохранен в кэш после первого обращения к нему.
createdby Идентификатор пользователя который создал ресурс.
editedby Идентификатор пользователя который создал ресурс.
deleted Помечает ресурс как удаленный.
deletedby Идентификатор пользователя который удалил ресурс.
publishedby Идентификатор последнего пользователя опубликовавшего ресурс.
createdon Дата создания ресурса.
publishedon Дата публикации ресурса.
editedon Дата редактирования ресурса.
pub_date Запланированная дата публикации ресурса.
unpub_date Запланированная дата когда ресурс будет снят с публикации.

Использование полей ресурса (вывод в шаблоне)

(как у Переменных шаблона (TV) — следующий урок)

Данные полей ресурса можно получить используя следующий синтаксис например:

[[*id]] // Отображает идентификатор ресурса.
[[*longtitle]] // Отображает расширенный заголовок ресурса.
[[*createdby]] //Отображает идентификатор пользователя который создал ресурс.

Если используете шаблонизатор fenom то поля при помощи него выводятся вот так: {$_modx->resource.имя-поля}, например, вот вывод заголовка ресурса: {$_modx->resource.longtitle}.

Они также могут иметь Выходные фильтры «Фильтры ввода и вывода (модификаторы)») применяемые к ним:

// Визуализирует ограниченную версию поля introtext: если он длиннее 210 символов, добавляет ...
[[*introtext:ellipsis=`210`]]
// Отображает данные поля introtext, обрезает значение на сотом символе.
[[*editedby:userinfo=`username`]]
// Отображает имя пользователя, который последний раз изменял ресурс

Соответственно модификаторы фенома тоже никто не отменяет, пример будет ниже.

Выводим поля в шаблоне

Давайте выведем несколько полей в нашем базовом шаблоне (или чанке в котором хранятся сквозные элементы — кто как разбил), см урок MODX чанки. Например в секции head у нас есть title и description — они отображаются в поисковой выдаче (SEO) — пользователю не видны, вернее title еще во вкладках браузеров отображается:

<title>FlexStart Bootstrap Template - Index</title>
<meta content="" name="description">

Заменим значения выводом полями ресурсов, например так:

 <title>[[*pagetitle]]</title>
  <meta content="[[*description]]" name="description">
  на fenom:
  <title>{$_modx->resource.pagetitle}</title>
  <meta content="{$_modx->resource.description}" name="description">

Сохраняем код, открываем ресурс, заполняем данные поля, сохраняем и переходим на него.

Заполняем поля и проверяем

Смотрим код страницы (CTRL+U):

Код сайта

Как вы видите все вывелось, давайте немного модифицируем данный код под SEO:

  • title в идеале не должен быть пустым и желательно чтобы он не дублировал заголовок h1;
  • description в идеале не должен быть пустым.

Выполнить подобные условия можно при помощи фильтров и модификаторов, например так:

 <title>[[*longtitle:default=`[[*pagetitle]]`]]</title>
  <meta content="[[*description:default=`[[*content:strip_tags:ellipsis=`210`]]`]]" name="description">
  на Fenom:    
  <title>{$_modx->resource.longtitle ?: $_modx->resource.pagetitle}</title>
  <meta content="{$_modx->resource.description ?: $_modx->resource.content | notags | truncate : 210 : '...'}" name="description">

Суть модификации: title пересаживаем на расширенный заголовок (если он прописан он и выведется), а вот если он не заполнен то выведется заголовок. Ну и у description такая же суть — если он пустой, то потянется содержимое из контента, из которого будут вырезаны html теги и текст будет обрезан до 210 символов.

Как я говорил раньше — лучше особо не увлекаться модификаторами (особенно, если сайт будет большим). Мета теги потом у нас будут выводиться через плагин, так что можно пока оставить вариант 1. А так самое ходовое поле это content — там редактор визуальный, будет вызываться почти во всех будущих шаблонах (на главной странице скорее всего тоже), как выводить поля вы теперь знаете, в следующем уроке научимся создавать дополнительные поля (TV) — добавим своих полей к ресурсу.

Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( 2 оценки, среднее 5 из 5 )
Web-Revenue.ru
Добавить комментарий

  1. Евгений

    Здравствуqте, помогите пожалуйста уже не знаю где искать инфу,
    Есть страница поиска в ней есть шаблон

    {$pagetitle}

    И здесь выводится картинка товара
    А картинка категории не выводиться
    картинка категории сделана дополнительным полем category_icon это ее Имя
    https://skrinshoter.ru/sQLP1RwacpL

    Ответить
    1. Алексей автор

      Ничего не понятно, что и куда вы хотите вывести)

      Ответить