Перейти к основному содержанию Перейти к навигации по документам

Что такое ресурс?

Ресурс — это представление страницы в MODx. По умолчанию в MODx присутствует 4 типа ресурсов — документы, ссылки, символические ссылки и файлы. Тип ресурса по умолчанию — документ. Он просто представляет веб-страницу на вашем сайте.

Существует 4 типа ресурсов, и они являются документами, Ссылка на сайт (Weblinks), Символическая ссылка (Symlinks), и Статичный Ресурс (Static Resources).

Каждый ресурс также имеет уникальный идентификатор, или «идентификатор ресурса». Это позволяет MODX знать, какой ресурс выбрать при загрузке веб-страницы. Так же идентификаторы нужны для работы с ресурсами (например выборка по ID). Кроме того, если вы захотите связать ресурсы, то для решения этой задачи можно использовать их идентификаторы. Таким образом, MODX создаст ссылку на ваш ресурс, и вам не придется беспокоиться если изменится псевдоним, тип контента или что-либо еще — 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 Запланированная дата когда ресурс будет снят с публикации.

Использование полей ресурса

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

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

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

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

Доступ к полям ресурсов в сниппете

Получить значение полей ресурсов в Сниппете довольно легко. MODx предоставляет вам объект Resource, в любом сниппете с помощью ссылки на $modx->resource вы можете получить значение любого поля ресурса. Этот пример сниппета вернет заголовок текущей страницы:

/* Отображает заголовок текущего ресурса */
$output = $modx->resource->get('pagetitle');
return strrev($output);

Ссылка на ресурс

В MODX, ссылки на ресурсы динамически управляются через «теги ссылок». Они выглядят так:

[[~123]]

где «123» — это идентификатор ресурса, на который нужно ссылаться. Вы можете разместить эти теги в любом месте, и MODX будет динамически формировать URL для указанного ресурса.

Также см. Именованный Якорь.

Параметры URL для тегов ссылок

Добавление параметров URL в тег ссылки довольно просто в Revolution. Допустим, у нас есть идентификатор ресурса 42, который преобразуется в URL-адрес «store/items.html». Мы хотим добавить в тег параметр «tag» со значением «Snacks» и параметром «sort» для «Taste». Вот как вы это сделаете:

[[~42? &tag=`Snacks` &sort=`Taste`]]

Это будет отображаться как:

store/items.html?tag=Snacks&sort=Taste

Обратите внимание, что это обратные пометки вместо апострофов.

Схемы URL в тегах ссылок

Вы можете указать схему для ресурса в вашем теге:

[[~123? &scheme=`https`]]

Будет отображать URL с использованием «https» вместо схемы, указанной текущими настройками (то есть настройками системы или контекста).

Доступные схемы:

Имя Описание
-1 (по умолчанию) URL относительно site_url
0 см http
1 см https
full Предоставляет ссылку в виде абсолютного URL с добавлением site_url
abs Предоставляет ссылку в виде абсолютного URL с добавлением base_url
http Отображает ссылку в виде абсолютного URL-адреса, принудительно http-схемы
https Отображает ссылку как абсолютный URL, принудительно использует схему https

Описание типов ресурсов

Веб-ссылка - это документ типа «ссылка». Его шаблон не используется для отображения или форматирования ссылки, скорее шаблон в этом случае просто служит контейнером для любых переменных шаблона, которые вы, возможно, захотите добавить в свой WebLink. WebLink просто служит ссылкой, которая будет частью сгенерированного меню.

Содержание веб-ссылки - это просто URL; анализатор даже не анализирует его, MODX просто перенаправляет на URL. Как только он видит, что это «ссылка», он просто использует содержимое в качестве аргумента для sendRedirect ($url).

Вы можете использовать внешний URL-адрес для содержимого или идентификатор ресурса для ссылки на ресурс в дереве ресурсов MODX.

Допустим, вам нужно меню нижнего колонтитула со ссылками на Условия использования, Политику конфиденциальности и другие. Но вы также хотите ссылку "Связаться с нами" там. Связаться с нами - это одна из ваших главных страниц, которая находится на верхнем уровне вашего дерева и отображается в главном меню. Вы бы поместили эти ресурсы в одну папку «служебных страниц», возможно, неопубликованную, чтобы они не отображались в вашем главном меню, и использовали этот идентификатор папки в качестве идентификатора ресурса для сниппета меню. В этой папке вы также поместите ссылку на страницу контактов вашего сайта. Таким образом, меню будет содержать ссылку на страницу контактов, даже если этот ресурс не находится в папке.

Или вы можете сделать это наоборот, разместить ресурс «Свяжитесь с нами» в своей неопубликованной папке «служебных страниц» и поместить ссылку на него на верхнем уровне, чтобы он отображался в главном меню.

Первоначально сниппет меню создавал ссылку на саму веб-ссылку, как и на любой другой ресурс MODX, вызывая тем самым загрузку страницы синтаксическим анализатором, вызывая перенаправление.

Симлинки сопоставляют URL с существующим ресурсом. Они похожи на Веб ссылки в том, что они перенаправляют на другой Ресурс или URL; однако символические ссылки сохранят текущий URL. Название взято из Linux, и цель аналогична.

Многие сайты могут никогда не использовать Symlinks, но они могут решить определенные проблемы.

  • Вы можете использовать символическую ссылку как своего рода перенаправление 301.
  • Вы можете избежать дублирования контента: создайте контент один раз, а затем укажите на него с помощью символической ссылки.
  • Вы можете применять различные разрешения к одному и тому же контенту: помещайте символические ссылки в разные группы ресурсов.

Целевая страница должна быть опубликована, чтобы разрешить символическую ссылку. Если целевая страница не опубликована, будет сгенерирована ошибка 503.

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

Статичный Ресурс

Статичный ресурс - это ресурсная абстракция фактического файла в файловой системе. Вы можете думать об абстракции как о виртуальном представлении любого файла на вашем веб-сервере. Как и другие ресурсы MODX, эта абстракция может иметь разрешения, связанные с ней, и она отображается в диспетчере MODX в дереве ресурсов, что позволяет отображать ее в динамических меню и результатах поиска. Статичный ресурс MODX может представлять любой файл на вашем веб-сервере (если разрешения разрешены).

Статичные ресурсы могут также иметь теги в своих полях содержимого для определения пути к файлу - так что вы можете указать собственные пути для настройки в качестве параметров системы или использовать Сниппеты для динамического нахождения пути.

Они ведут себя точно так же, как документ (стандартный ресурс). Содержимое в Статичном ресурсе анализируется и отображается точно так же, как и Документ, но часто вы будете изменять Типы содержимого и расположение содержимого в соответствии с типом файла, который вы представляете.

О псевдонимах

При создании статичного ресурса псевдоним не должен включать расширение файла: расширение файла определяется Тип содержимого. Например, если вы создаете статичный ресурс, который указывает на файл PDF на вашем веб-сервере, вы можете присвоить странице псевдоним «test». После того как вы выбрали «PDF» в качестве типа контента, расширение «.pdf» будет добавлено к псевдониму (при условии, что вы определили тип контента PDF, используя «.pdf» в качестве расширения файла). Если вы создали пользовательский тип содержимого для PDF, вам не нужно устанавливать в поле размещения содержимого значение «вложение». Его можно оставить как встроенный, так как современные браузеры могут согласовывать PDF-файлы, а затем могут также выбирать свой собственный предпочтительный способ обработки PDF-файлов - например, Chrome отобразит PDF в браузере, тогда как другие могут загрузить файл.

Чтобы убедиться, что ваш файл передан правильно, вы должны использовать (пустой) шаблон. Статичный ресурс становится ссылкой на файл, пока вы используете этот шаблон. Если вам нужно добавить метаинформацию в ресурс через некоторые переменные шаблона, и вы создаете свой собственный «пустой» шаблон, чтобы включить это, то вы должны установить содержимое шаблона на [[*content]], прежде чем он будет работать правильно.

Типы содержимого

Тип содержимого ресурса — это то, что MODX будет отправлять в строке Content-Type заголовка сервера. Они связаны с расширениями файлов и сообщают парсеру MODX, с каким типом расширений отображать страницу.

Например, ресурсы с псевдонимом "test" и типом контента "CSS" с расширением файла ".css" будут отображаться как test.css вместо test.html. Это дает возможность вам создавать файлы любых типов прямо из самих ресурсов.

Использование

При редактировании ресурса, во вкладке «Настройки» выберите тип содержимого, который вы хотите использовать:

Затем сохраните Ресурс. Это автоматически свяжет Ресурсы с выбранным типом контента.

Создание новых типов контента

Сначала в верхнем меню MODX, наведите мышку на раздел «Содержимое» и выберите подраздел «Типы содержимого». Вы увидите сетку, заполненную всеми текущими типами содержимого. Нажмите на кнопку «Новый тип содержимого», и появится окно:

Вы увидите следующие поля:

  • Имя - Имя типа контента. Это в основном для организационных целей и маркировки и не влияет на функцию типа.
  • MIME тип - Здесь вы можете установить тип MIME для расширения, которое сообщит браузеру, какой тип файла Ресурсы. Список доступных типов MIME можно найти здесь или здесь.
  • Расширения файла - это расширение файла вашего ресурса. Указывается с точкой, например «.docx», «.xlsx».
  • Двоичный - двоичный тип файла или text/ascii ?
  • Описание - необязательное поле для описания типа содержимого.

Как только вы заполнили все поля, нажмите кнопку «сохранить», и в списке типов, появится ваш новый тип содержимого. После этого его можно будет выбрать в настройках ресурса.

Псевдоним ресурсов Когда вы создаете ресурс с нужным типом содержимого, к его алиасу будет добавляться расширение файла этого типа содержимого. Например, создал ресурс с типом содержимого JSON и алиасом example, на выходе вы получите алиас example.json (если у вас включены дружественные URL).