- Что такое ресурс?
- Управление ресурсами
- Поля ресурсов
- Общие поля ресурсов
- Настройки полей ресурса
- Использование полей ресурса
- Доступ к полям ресурсов в сниппете
- Ссылка на ресурс
- Параметры URL для тегов ссылок
- Схемы URL в тегах ссылок
- Описание типов ресурсов
- Ссылка на сайт
- Пример
- Символическая ссылка
- Случаи применения
- Разъяснения
- Статичный Ресурс
- О псевдонимах
- Типы содержимого
- Использование
- Создание новых типов контента
Что такое ресурс?
Ресурс — это представление страницы в 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
. Это дает возможность вам создавать файлы любых типов прямо из самих ресурсов.
Использование
При редактировании ресурса, во вкладке «Настройки» выберите тип содержимого, который вы хотите использовать:
Затем сохраните Ресурс. Это автоматически свяжет Ресурсы с выбранным типом контента.
Создание новых типов контента
В основном меню, наведите мышку на раздел «Содержимое» и выберите подраздел «Типы содержимого». Вы увидите сетку, заполненную всеми текущими типами содержимого. Нажмите на кнопку «Создать», и появится окно:
Вы увидите следующие поля:
- Имя — Имя типа контента. Это в основном для организационных целей и маркировки и не влияет на функцию типа.
- MIME тип — Здесь вы можете установить тип MIME для расширения, которое сообщит браузеру, какой тип файла Ресурсы. Список доступных типов MIME можно найти здесь.
- Расширения файла — это расширение файла вашего ресурса. Указывается с точкой, например «.docx», «.xlsx».
- Двоичный — двоичный тип файла или
text/ascii
? - Описание — необязательное поле для описания типа содержимого.
Как только вы заполнили все поля, нажмите кнопку «сохранить», и в списке типов, появится ваш новый тип содержимого. После этого его можно будет выбрать в настройках ресурса.
Псевдоним ресурсов Когда вы создаете ресурс с нужным типом содержимого, к его алиасу будет добавляться расширение файла этого типа содержимого. Например, создал ресурс с типом содержимого JSON
и алиасом example
, на выходе вы получите алиас example.json
(если у вас включены дружественные URL).