В предыдущих статьях мы разбили шаблон на чанки, создали один сниппет и добавили его. Сегодня рассмотрим стандартные поля ресурсов и принципы работы с ними.
Каждый ресурс MODX имеет стандартный набор полей.
Так же поля есть на вкладке настройки.
Если навести название на любое поле вы увидите подсказки по их названию и выводу при помощи стандартного шаблонизатора.
Общие поля ресурсов
Название | Описание |
---|---|
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) — добавим своих полей к ресурсу.
Здравствуqте, помогите пожалуйста уже не знаю где искать инфу,
Есть страница поиска в ней есть шаблон
{$pagetitle}
И здесь выводится картинка товара
А картинка категории не выводиться
картинка категории сделана дополнительным полем category_icon это ее Имя
https://skrinshoter.ru/sQLP1RwacpL
Ничего не понятно, что и куда вы хотите вывести)