Бэкап и перенос сайта modx revolution

Краткий обзор Revolution¶

Revolution по своей сути — структура управления контентом. Это не PHP Application Framework, как CodeIgnitor или Symfony, и он не претендует на то, чтобы быть таковым. Тем не менее, это гораздо больше, чем обычные CMS, такие как WordPress или другие: это позволяет создавать приложения для управления контентом с легкостью и расширяемостью.

Revolution основывает свою внутреннюю структуру на том, что мы называем системой проектирования MVC². Это свободно основано на MVC, или model-view-controller архитектурный паттерн, в программировании.

Модель

M обозначает Model, который является основными классами, которые управляют записями данных. Эти базовые классы с префиксом ‘mod’ в Revolution обрабатывают всю логику домена для MODX Revolution.

Это также включает в себя то, что Revolution называет «процессорами», то есть сценариями, которые обрабатывают доменную логику для MODX Revolution. Они никогда не доступны напрямую и используются для обработки форм, запросов REST, запросов AJAX и многого другого. Они напоминают основные задачи обработки CRUD (Create-Read-Update-Delete).

Вид

Представления в MODX Revolution называются «шаблонами», но используются по-разному в зависимости от контекста, о котором мы говорим.

В интерфейсе это шаблоны, чанки и ресурсы

Шаблоны

Шаблоны — это то, как они звучат. Они позволяют вам создавать шаблоны, которые будут инкапсулировать больше специфичных для страницы данных. Думайте о них как о верхних и нижних колонтитулах, объединенных в одно целое (и многое другое!)

Чанки

Куски — это небольшие кусочки HTML-кода, которые можно вставить куда угодно. В некотором смысле они представляют виджеты View из-за их модульности и простоты вставки.

Ресурсы

Ресурсы — это базовое представление одной «веб-страницы» в MODX Revolution. Они представляют одну страницу или ресурс, с помощью которого клиент получает доступ к контенту с сервера. Это могут быть файлы, веб-ссылки, символические ссылки или просто старые HTML-страницы, обернутые в Шаблоны.

В диспетчере

На стороне менеджера MODX Revolution представление также обрабатывается шаблонами, хотя они основаны на файлах и расположены в менеджере/шаблонах и в настоящее время загружаются через Smarty.

Контроллер

Контроллеры в MODX Revolution бывают двух видов. В клиентской части это обработчики запросов (через класс modRequest), а также сниппеты и плагины.

Сниппеты

Сниппеты — это просто код PHP, который можно разместить в любом месте страницы. Они могут быть размещены в Чанках, Шаблоны, или Ресурсы. Они просто исполняют код PHP при каждом вызове и возвращают любой вывод, который они хотели бы отправить на страницу.

Плагины

Плагины также являются PHP-кодом, но нацелены на определенные системные события, которые происходят во время обработки запроса. Они могут возникать до того, как веб-страница будет обработана, после нее, до обработки запроса или во многих других местах.

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

Второй C: Коннекторы

Коннекторы — новая идея для MODX Revolution, они являются точками доступа для процессоров. Система менеджеров в MODX Revolution широко использует их — они обеспечивают безопасные места для запросов AJAX для обработки данных об определенных объектах.

Например, запрос соединителя, который загружает с параметром действия GET и параметром GET , будет (при условии, что клиент запроса имеет доступ) захватить Ресурс с указанным идентификатором и возврат его в формате JSON (или в любом другом формате; по умолчанию в Revolution это JSON).

Каждый запрос Коннектора также защищен разрешениями контекста, загруженными на каждый запрос. Если пользователь не имеет доступа (через Политику доступа, назначенную контексту запроса), соединитель откажется предоставить данные.

Соединители позволяют выполнять динамические и безопасные запросы JSON (и, в конечном итоге, запросы на основе REST) ​​прямо из менеджера MODX.

Функциональные возможности

MODX — это CMS/CMF. Второе понятие расшифровывается как Content Management Framework и говорит о том, что перед нами система с элементами фреймворка. У движков такого типа можно выделить несколько основных характеристик:

  • Многофункциональность, позволяющая адаптировать систему под выполнение разных задач.
  • Расширяемость, позволяющая добавлять новые возможности за счёт интеграции модулей и программных кодов.
  • Совместимость с различными базами данных.
  • Шаблонизация, обеспечивающая удобное добавление шаблонов сайта.
  • Подходящие инструменты для пользователей с разным уровнем подготовки, от начинающих вебмастеров до опытных разработчиков. 

MODX в этом смысле идеально отражает суть CMS/CMF. Если вы только начинаете путь в вебе, то разобраться с ним будет непросто, но реально, а для информационного наполнения сайта вообще не нужны никакие специальные навыки. Опытные же разработчики отмечают гибкость системы, которая делает её практически универсальным инструментом. 

MODX — удобная система, даже несмотря на сложность в освоении. Это относится к обеим версиям, которые постепенно удаляются друг от друга, но всё ещё обладают большим количеством схожих черт:

  • Быстрая установка дистрибутива на сервер. Вся операция занимает не более 10 минут.
  • Расширение функциональности системы через панель администратора с помощью модулей.
  • Встроенный файловый менеджер, который позволяет добавлять и удалять файлы без соединения с сервером, через административную панель.
  • Мультиязычный интерфейс с хорошей локализацией.
  • Управление несколькими проектами из единого интерфейса. 

Одна из важных функций движка, которая сделала его столь популярным для создания корпоративных сайтов и магазинов, — разделение прав пользователей. Администратор сайта может разрешить зарегистрированным посетителям добавлять контент, но при этом самостоятельно модерировать его перед публикацией. Есть также возможность создавать страницы с закрытым доступом и формировать группы пользователей с правами на просмотр или редактирование. 

Для расширения функциональности на MODX доступны модули и плагины. Среди интересных возможностей движка можно выделить:

  • Публикация материалов по расписанию.
  • Голосование за любой контент, размещённый на сайте, благодаря сниппету anythingRating. 
  • Формирование прайс-листов с помощью плагина TvTable. 
  • Добавление формы для оставления комментариев с помощью модуля Jot.
  • Авторизация пользователей через аккаунты в соцсетях благодаря расширению  Loginza.
  • Использование сниппета CssJs для ускорения загрузки страниц путём минимизации влияния CSS и JavaScript. 

Сайты под управлением MODX имеют высокий уровень защищённости от несанкционированного доступа, взлома, вирусов и других неприятностей. Обновления, закрывающие обнаруженные уязвимости, доступны для бесплатного скачивания. У администратора есть также дополнительные инструменты для управления безопасностью сайта. В системной конфигурации можно установить следующие параметры защиты:

  • Количество неудачных попыток авторизации.
  • Уведомления о системных ошибках.
  • Проверка системных файлов на изменения.
  • Допустимые имена хостов. 
  • Включение капчи. 

Профессиональные разработчики отмечают в качестве положительных качеств системы объектно-ориентированное ядро и доступ к API. Но прежде чем выбирать MODX для запуска сайта, нужно обязательно изучить документацию. Мало того, что на движке используется необычная терминология, так ещё и для него разработан собственный синтаксис тегов. Без его знания заниматься нормальной разработкой на MODX не получится. 

Особенности использования MODX ещё в том, что версии Evolution и Revolution постепенно удаляются друг от друга. Поэтому изучение документации здесь не ограничивается чтением по диагонали, а становится заметным делом в рабочем расписании на ближайшие дни. В противном случае разобраться с особенностями работы движка не получится, и он так и останется непонятной системой с неудобным управлением.

Решение проблем

Если сайт не работает после восстановления из бэкапа или переноса на новый сервер, попробуйте воспользоваться рекомендациями ниже.

Очистите кэш, для этого удалите содержимое папки /core/cache вашего сайта. Саму папку cache удалять не нужно.

Проверьте права на папки и файлы, в большинстве случаев они должны быть установлены в 755 для папок и 644 для файлов. Изменить права можно через файловый менеджер в панели вашего хостинга или через FTP-клиент, но из-за большого количества файлов, процесс может растянуться по времени. Поэтому лучше всего это сделать через консоль SSH.

Для директорий:

find /path/to/dir -type d -exec chmod 755 {} \;

Для файлов:

find /path/to/dir -type f -exec chmod 644 {} \;

Для смены прав можно так же воспользоваться bash скриптом приведённым ниже. Не забудьте изменить в нём путь до вашего сайта и пользователя, использовать пользователя root небезопасно.

#!/bin/bash

dir=/var/www/site
user=root

echo "Set permissions for $dir...";
echo "CHOWN files...";
chown -R $user:$user "$dir";
echo "CHMOD directories...";
find "$dir" -type d -exec chmod 0755 '{}' \;
echo "CHMOD files...";
find "$dir" -type f -exec chmod 0644 '{}' \;

Если с правами все в порядке, перепроверьте, что в конфигурационном файле /core/config/config.inc.php указаны правильные данные — доступы к базе данных и пути к ядру и папкам сайта. Чаще всего проблема именно в этом.

Так же убедитесь, что в файлах указан правильный путь к ядру MODX.

  • /config.core.php
  • /connectors/config.core.php
  • /manager/config.core.php

Если выключали сайт на этапе подготовки к бэкапу, убедитесь, что включили его: Системные настройки – Сайт – Статус сайта: Да.

Попробуйте провести повторную установку, для этого:

в директорию сайта загрузите папку setup из установочного пакета той же версии MODX (это важно), которая используется на вашем сайте, её можно скачать на с официального сайта MODX;
перейдите по адресу yousite.ru/setup и следуя инструкциям установщика, переустановите MODX в режиме обновления.

Создание веб-страницы

Для формирования веб-страницы в MODX используется стек элементов. Так называемые шаблоны, сниппеты, фрагменты кода, переменные шаблона, а также собственная система тегов:

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

Использование MODX предполагает работу над HTML-шаблоном, а также парсинг HTML-кода в готовые фрагменты, а PHP-кода — в сниппеты. Также в шаблонах можно использовать любые произвольные поля. Далее после MODX CMS установки нужно создать ресурс, привязать его к шаблону, заполнить нужные поля, и на этом все!

Resource (ресурс) — обозначение конечной точки. Это то, что указывается в URL-адресе. Тип содержимого ресурса может быть отличным от HTML (например, PDF или двоичные данные). Можно установить принудительное скачивание контента или же отображать его прямо в браузере. Ресурс может даже вести на файл или на внешнюю страницу, либо перенаправлять посетителя на другой контент в пределах сайта.

Template (шаблон) — это рамка (фрейм), в которой отображается контент. Все ресурсы привязываются к шаблону.

Chunk (фрагмент кода) — это HTML или JS-код с возможностью повторного использования.

Snippets (сниппеты) используются для PHP-кода. У сниппетов есть доступ к ядру MODX и ко всем его объектам.

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

Plugin (плагины) способны расширять функционал ядра.

Template Variable (переменная шаблона) — это любые произвольные данные, которые могут понадобиться внутри шаблона, и для которых можно указать ресурс. Например, можно использовать переменную шаблона для произвольного изображения баннера на странице, но потом каждый ресурс может привязать иное изображение для отображения шаблоне. Это что-то вроде произвольных полей WordPress, но с большим набором функций.

Можно комбинировать любые из этих элементов при помощи категорий (Categories). Не забывайте их использовать, чтобы фрагменты кода и сниппеты были организованы, и ими было проще пользоваться.

Поля ресурса

Все ресурсы имеют следующие предопределенные поля:

1. Базовые поля ресурса MODX.

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

2. Поля, осуществляющие настройку ресурса.

Имя Описание
isfolder Указывает, является ли ресурс «Контейнером». Если это так, то ресурс будет вместо суффикса иметь слеш (/). Это касается только тех сайтов, которые используют дружественные URL.
searchable Определяет, необходимо ли ресурс включать в результаты поиска.
cacheable Определяет, необходимо ли ресурс кешировать.
createdby Содержит идентификатор (id) пользователя, который создал ресурс.
editedby Содержит идентификатор (id) пользователя, который последним редактировал этот ресурс.
deleted Определяет, отмечен ли ресурс на удаление или нет.
deletedby Содержит идентификатор (id) пользователя, который отметил ресурс на удаление.
publishedby Содержит идентификатор (id) пользователя, который опубликовал ресурс.
createdon Содержит дату создания ресурса пользователем.
publishedon Содержит дату публикации ресурса.
editedon Содержит дату последнего редактирования документа.
pub_date Содержит дату, начиная с которой ресурс будет опубликован.
unpub_date Содержит дату, начиная с которой ресурс будет снят с публикации.

Создание разделов¶

Если вы хотите, чтобы в вашем блоге были разделы (также называемые категориями), вам сначала нужно создать эти ресурсы.

Для этого урока мы создадим 2 раздела: «Личные» и «Технологии». Создайте 2 ресурса в корне вашего сайта и сделайте их «контейнерами». Вы захотите, чтобы их псевдоним был «личным» и «технологическим», поэтому URL-адреса вашего блога будут хорошо отображаться.

С этого момента мы скажем, что наши два Ресурса Секции имеют идентификаторы 34 и 35, для справки.

Убедитесь, что вы не используете BlogPostTemplate для них, а вместо этого используйте свой собственный базовый шаблон. Эти страницы станут способом просмотра всех сообщений в определенном разделе. В содержании этих Ресурсов добавьте следующее:

Хорошо, давайте объясним это: getResourcesTag сниппет обёртки для getResources и getPage который автоматически фильтрует результаты по TVу с тегами. Таким образом, в основном, мы хотим захватить все опубликованные ресурсы в этом разделе (и мы также можем фильтровать по тегам, если мы передадим в URL параметр ‘?tag=TagName’).

Ниже вызова getResourcesTag мы размещаем наши ссылки на страницы, так как по умолчанию getResourcesTag показывает только 10 сообщений на страницу.

Настройка чанка blogPost

В этом вызове у нас также есть свойство с именем ‘tpl’, которое мы установили в ‘blogPost’. Это наш чанк, который показывает каждый результат наших записей в блогах. Он должен содержать это:

Круто — давайте двигаться далее. Начнем с создания кликабельной ссылки на пост с заголовком страницы. Затем мы устанавливаем наш «опубликованный» элемент и список тегов (аналогично тому, как мы делали это ранее в BlogPostTemplate).

Далее мы покажем некоторые выдержки из содержимого, которые мы храним в поле ‘introtext’ содержимого.

После этого у нас есть симпатичная небольшая ссылка «читать дальше», которая ссылается на пост, а затем наши комментарии и дату публикации. Это оно!

Заражение сайтов

Массовые взломы начали происходить в районе 20 числа, хотя при внимательном рассмотрении файлы с вредоносным кодом появились чуть раньше. Судя по информации в сети, взломанных сайтов на текущий момент очень много. Заражение происходит точно на полном автомате, никак не вручную. Это настоящий конвейер Генри Форда, в плохом смысле, конечно.

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

Опознать сайт взломанный через уязвимость CVE-2018-1000207 несложно, взлом происходит всего по 2-3 типовым сценариям. Характерный признак – наличие файлов dbs.php и cache.php в корне сайта. Иногда добавляется майнер Монеро (xmr). Кроме того, может резко возрасти нагрузка на сайт.

Очень часто заражают еще одну папку: /assets/images.  Все файлы с расширением .php из этой папки можно удалять.

Есть и хорошая новость. Базы данных не затронуты. На текущий момент.

Расширенные настройки¶

Добавление группы модераторов

Итак, ранее в нашем вызове QuipReply мы указали группу модераторов ‘Moderators’. Давайте продолжим и создадим эту группу пользователей сейчас.

Перейдите в Безопасность -> Контроль доступа и создайте новую группу пользователей под названием «Модераторы». Добавьте в группу любых пользователей (включая себя!) И назначьте им любую роль.

Затем перейдите на вкладку «Доступ к контексту». Добавьте ACL (в основном строку), который предоставляет этой группе пользователей доступ в контексте «mgr» с минимальной ролью Member (9999), и политику доступа «QuipModeratorPolicy».

Это позволяет любому пользователю в группе «Модераторы» модерировать сообщения в ваших темах, а также уведомляет их по электронной почте о появлении новых сообщений. Затем они могут либо войти в систему менеджера, чтобы модерировать комментарии, либо щелкнуть ссылки прямо в письмах, чтобы одобрить или отклонить комментарии. Ваш ACL должен выглядеть примерно так:

Сохраните свою группу пользователей, и все! Возможно, вам придется сбросить сессии (Безопасность -> Сброс сессий) и повторно войти в систему, чтобы перезагрузить ваши разрешения, но Quip будет обрабатывать остальное.

Добавление виджета «Последние сообщения»

Возможно, вам понадобятся «Последние сообщения» где-то на сайте, и не бойтесь — добавить их довольно просто.

Во-первых, вы захотите сделать этот звонок везде, где вы хотите, чтобы появился список:

Итак, мы говорим getResources отобразить список из 5 лучших ресурсов в разделе ресурсов (34,35) и отсортировать их по дате публикации.

Затем создайте чанк , который вы указали с помощью вызова ‘tpl’ в вызове сниппета getResources. Поместите это как содержимое чанка:

И бум! Последние записи блога, отображаемые на вашем сайте:

Добавление виджета «Последние комментарии»

А как насчет виджета, который показывает несколько последних комментариев в ваших сообщениях? Просто — Quip вызываает маленький снипет под названием QuipLatestComments который с этим легко справиться.

Разместите вызов там, где вы хотите, чтобы список комментариев отображался:

Теперь создайте чанк с именем ‘latestCommentTpl’:

Прежде чем мы продолжим, следует отметить несколько вещей: QuipLatestComments автоматически обрежет комментарий и добавит многоточие после переданного в него свойства &bodyLimit, значение которого по умолчанию равно 30 символам

Во-вторых, обратите внимание на использованный здесь «назад» фильтр вывода «Фильтры ввода и вывода (модификаторы вывода)»). Этот фильтр встроен в MODX Revolution и переводит временную метку в красивый, симпатичный формат «два часа, 34 минуты» (или две другие метрики времени, такие как мин/сек, год/месяц, месяц/месяц)

Обратите внимание, что по умолчанию будет отображаться 5 последних. Результат:

Вы можете посмотреть документацию для снипета для получения дополнительных параметров конфигурации.

Добавление виджета «Самые популярные теги»

Эта часть смехотворно проста tagLister делает это для вас. Просто поместите это куда хотите

А tagLister проверит TV ‘tags’ и создаст ссылки, которые идут к цели (здесь ID ресурса 1) с использованием 10 лучших тегов. Есть еще варианты конфигурации, но мы оставим вас с этим.

Модификаторы условия

Модификатор Описание Пример
if,input if — задает дополнительное условиеinput — добавляет в тег обратываемые данные
[[+phx:input=`/assets/img/photo.gif`]]

— добавляем в тег phx входное значение, следующим модификатором, например, можно обработать изображение. Или

[[+phx:input=`/assets/img/photo.gif`:contains=`photo.gif`:then=`da`:else=`net`]]

проверить есть ли в пути определенная последовательность символов.

]`:ne=`2`:then=`da`:else=`net`]]

— если id-ресурса = 1 и не равно 2, выводим «da», или же «net»

or,and or — условие «ИЛИ» and — условие «И»
]`:is=`2`:then=`da`:else=`net`]]

— если id-ресурса = 1 или = 2, выводим «da», или же «net».

]`:ne=`2`:then=`da`:else=`net`]]

— если id-ресурса = 1 и не равно 2, выводим «da», или же «net»

isequalto, isequal, equalto, equals, is, eq Если тег равен модификатору, используется с «then» и «else.»
]

— если id-ресурса = 1, выводим «da», или же «net»

notequalto, notequals, isnt, isnot, neq, ne Если тег не равен модификатору, используется с «then» и «else».
]

— если id-ресурса не равно 1, выводим «da», или же «net»

greaterthanorequalto, equalorgreaterthen, ge, eg, isgte, gte Если тег больше или равен модификатору, используется с «then» и «else».
]

— если id-ресурса больше или равен 1, выводим «da», или же «net»

isgreaterthan, greaterthan, isgt, gt Если тег больше модификатора, используется с «then» и «else».
]

— если id-ресурса больше 1, выводим «da», или же «net»

equaltoorlessthan, lessthanorequalto, el, le, islte, lte Если тег меньше или равен модификатору, используется с «then» и «else».
]

— если id-ресурса меньше или равно 10, выводим «da», или же «net»

islowerthan, islessthan, lowerthan, lessthan, islt, lt Если тег меньше модификатора, используется с «then» и «else».
]

— если id-ресурса меньше 10, выводим «da», или же «net»

contains Если тег содержит модификатор, используется с «then» и «else».
]

— если в теге содержится фраза «Сэ́мюэл Кле́менс» выводим «Марк Твен»

containsnot Если тег не содержит модификатор, используется с «then» и «else».
]

— если в теге не содержится фраза «Сэ́мюэл Кле́менс» выводим «Кто-нибудь еще»

hide Если предыдущий модификатор возвращает положительное значение («then»), то не выводим обработанный тег.
]

— если id-ресурса = 10, ничего не выводим

show Если предыдущий модификатор возвращает положительное значение («then»), то выводим обработанный тег.
]

— если id-ресурса = 10, выводим.

then Условие, если тег соответствует модификатору, выводим сообщение, иначе ничего не выводим
]

— если id-ресурса = 10, выводим «ept».

else Условие, если тег не соответствует модификатору, выводим сообщение. Используется только в связке с «then»
]

— если id-ресурса = 10, выводим «ept» иначе «nooo».

select Установить свое значение, в зависимости от модификатора и вывода тега. Так же можно использовать «else», например если значение

]

— не подходит под шаблон select

]

— если тег

]

— выводит «0», значит выводим «ВЫКЛ», если тот же тег равен «1» выводим «ВКЛ», если «2» выводим «ХЗ», если тег не подходит нашей выборке, то выводим «Ошибка».

in Работает аналогично php in_array, если тег совпадет с одним из элементов модификатора (разделяются они запятыми), то выводим then, если не совпало else
]`:else=`пробел`]]

— если тег

]

(текущий шаблон) — равен «3» или «4», значит выводим

]

, если не равен, выводим else.

Создание TV (дополнительных полей)

Рассмотрим, как в MODX Revolution с помощью TV-переменных можно расширить назначение стандартных ресурсов (документов). Например, разберём какие TV поля необходимо добавить к ресурсам, чтобы их можно было использовать, для представления книг на сайте.

В MODX создание TV параметров осуществляется очень просто, посредством выполнения следующих шагов:

  1. Войти в админку (менеджер) MODX Revolution.
  2. Перейти в левой панели во вкладку «Элементы» и нажать на кнопку «Новое дополнительное поле».
  3. В открывшейся странице ввести имя дополнительному полю, например, . Данное поле будем использовать для хранения авторов книги.
  4. Перейти на вкладку «Параметры ввода» и указать необходимый формат данных, который будет определять тип значения, которое может быть помещено в этот TV параметр. Для TV переменной authors установим тип значения ввода, равный «текст».
  5. В секции «Параметры вывода» следует задать формат, в котором необходимо выводить данные из этого поля. Например, TV параметр будем выводить в формате текста. Для этого ему установим соответствующее значение в качестве значения параметра «Тип вывода».
  6. В разделе «Доступно для шаблонов» необходимо выбрать те шаблоны, через которые TV поле появится у соответствующих ресурсов.

Для примера создадим ещё несколько TV параметров: (год выпуска), (количество страниц), (фото обложки книги). Привяжем TV поля к тому же шаблону (например, шаблон книги).

Заполнение TV полей при создании или редактировании ресурсов

После создания TV полей они становятся доступными во время создания или редактирования соответствующих ресурсов. Располагаются TV-поля на страницах ресурсах по умолчанию во вкладке «Дополнительные поля».

Более удобного расположить TV поля на страницах определённых ресурсов можно с помощью инструмента MODX Revo «Настройка форм» (значок «Шестерёнка» в главном меню админки -> пункт «Настройка форм»).

Некоторый результат, который можно достигнуть путём применения определённого набора правил к соответствующим ресурсам (через шаблон) с помощью элемента MODX «Настройка форм».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector