Документация modx revolution на русском: MODX Docs | MODX документация

Содержание

MODX Docs | MODX документация

Примечание. В настоящее время вы просматриваете документацию по MODX 3. MODX 3 скоро будет в альфа-версии и пока не рекомендуется для использования в производстве.

Можете ли вы помочь обновить документацию для MODX 3? Найти открытые вопросы здесь

MODX Revolution (Revo) — это простая в использовании система управления контентом (CMS) и Application Framework, объединенные в одно целое. Несмотря на безграничные возможности, которые предоставляет вам MODX, мы думаем, что работать с ним будет просто и понятно. На каждом этапе MODX стремится предоставить полную свободу.

С MODX3, как платформа была модернизирована, также предлагает переработанный пользовательский интерфейс менеджера. Узнайте больше об обновлении до MODX 3.

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

Кроме того, есть доверенные, опытные MODX Профессионалы с кем вы можете взаимодействовать, чтобы выполнить работу. MODX также имеет коммерческую поддержку при поддержке поставщика варианты, поэтому независимо от ваших потребностей и требований — вы можете быть удовлетворены.

С чего начать¶

Этот сайт документации является подробным справочником по всем вопросам MODX, но есть также руководства и учебные пособия, которые помогут вам быстро и легко начать работу. Основные моменты включают в себя:

Если у вас есть вопрос об этом сайте документации, вы хотите помочь улучшить его, посмотреть источник документации и приложение на GitHub. Новые участники приветствуются!

MODX Revolution¶

Revolution — флагманская CMS и прикладная среда MODX, которую с любовью называют «Revo». Если вы новичок в MODX, начните с нее.

Быстрые ссылки¶

Другие ресурсы¶

Дополнения¶

Дополнения MODX расширяют основные функциональные возможности программного обеспечения MODX. Другие CMS называют их «плагинами» или «модулями». Многие дополнения разработаны основной командой MODX, а другие сторонними разработчиками. Хотя это ни в коем случае не исчерпывающая ссылка, большинство самых популярных дополнений документированы здесь.

xPDO — это объектно-реляционный мост (ORB), который поддерживает MODX. Если вы знаете, что это значит, или вы любите приключения, то для вас следующее:

Быстрые ссылки¶

Другие ресурсы¶

Справочник участника¶

Любите MODX? Узнайте, как принять участие в сообществе и внести свой вклад в проект с открытым исходным кодом.

А как насчет MODX Evolution?¶

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

Всю информацию о Evolution, включая документацию и дополнительные материалы, можно найти по адресу evo.im.

О проекте / docs.modx.pro

Последние обновления

04 августа 2021, 07:00

Компоненты / miniShop2 / Другие дополнения / msPromoCode2 / События плагинов / mspc2OnSetProductDiscountPrice

17 июня 2021, 07:00

Компоненты / pdoTools / Парсер

02 апреля 2021, 07:00

Компоненты / xParser / События плагинов / xParserOnTaskParseDone

02 апреля 2021, 07:00

Компоненты / xParser / События плагинов / xParserOnFilterSourceItems

02 апреля 2021, 07:00

Компоненты / miniShop2 / Другие дополнения / msBonus2 / Сниппеты / msBonus2ProductBonus

23 марта 2021, 07:00

Компоненты / easyComm / Описание

23 марта 2021, 07:00

Компоненты / easyComm / Интерфейс

23 марта 2021, 07:00

Компоненты / easyComm / Настройки

23 марта 2021, 07:00

Компоненты / easyComm / Сниппеты

23 марта 2021, 07:00

Компоненты / easyComm / Плагины и кастомизация

Open Source документация MODX Revolution, распространяемая через GitHub.

Для того, чтобы внести свой вклад в развитие документации, вам нужно просто сделать pull-request в репозиторий.

Такая организация гарантирует:

  • Сохранение истории всех изменений.
  • Использование простого языка разметки Markdown.
  • Возможность не переживать за проект — вы всегда можете запустить копию у себя.

Идея

Сам принцип подсмотрен у проекта daux.io, который генерирует сайт налету по статичным страницам. Для работы нужен только его скрипт и директория с определённой структурой и файлами в формате Markdown.

Однако, на мой взгляд у daux.io есть несколько серьёзных недостатков:

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

В общем, для небольших объёмов это хорошее решение, но для нашего проекта мы используем MODX.

Принцип остаётся тот же: директория с файлами Markdown, из которых строится сайт. Но теперь это самостоятельный сайт, со всеми наворотами, который обновляет свои страницы из GitHub.
Мы избавились от всех недостатков daux.io и добавили преимущества MODX.

Правила оформления документации

Структура

Формат репозитория определяется следующей структурой:

  1. Языковая версия
  2. Раздел
  3. Тема
  4. Дальше структура определяется в зависимости от темы
  5. Чтобы указать порядок директорий и файлов, мы используем числовые префиксы.

Вот путь к файлу с описанием сниппета HybridAuth на русском:

/ru/02_Компоненты/04_HybridAuth/01_Сниппеты/01_HybridAuth

Заголовки

Для заголовков мы используем хештэги ## и между ними и текстом ставим пробел. Например: ## Заголовок

Заголовки должны быть не больше h3, то есть, 2 решетки ##:

  • h3 = ##
  • h4 = ###
  • h5 = ####

Между заголовком и текстом сверху оставляется одна пустая строка. Между заголовком и текстом снизу отступов делать не нужно.

Ссылки

Ссылки на документы нужно проставлять в конце страницы, чтобы их было удобно искать и обновлять. В markdown это делается так:

[Название ссылки][1]
[Название другой ссылки][2]

[1]: http://mylink.com/
[2]: http://mylink.com/test.html

Помимо прочего, это позволяет использовать одну ссылку несколько раз на странице:

[Ссылка 1][1]
[Ссылка 2][2]

[1]: http://mylink.com/

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

[Ссылка на русский раздел pdoTools][3];

[3]: /ru/01_Компоненты/01_pdoTools

Проще всего открывать нужную страницу на GitHub и копировать адрес из url.

Ссылки на изображения можно вставлять сразу в тексте. Для указания изображений лучше использовать сервис на file.modx.pro (требует авторизацию).
Он автоматически сгенерирует уменьшенную копию и код markdown для вставки.

[![](https://file.modx.pro/files/8/5/3/85333575318f1fb2e7fe2881eb25559as.jpg)](https://file.modx.pro/files/8/5/3/85333575318f1fb2e7fe2881eb25559a.png)

Выделение

Cистемные параметры нужно выделять жирным текстом, например: **&parametr** будет выглядеть, как &parametr.

Плейсхолдеры оборачиваются в одинарные обратные апострофы. Например: `[[+placeholder]]` будет выглядеть, как [[+placeholder]].

Для обрамления кода нужно использовать 3 обратных апострофа «` перед секцией кода, и после:

Здесь код

Сам код начинается с новой строки. Пустые строки до и после кода — по желанию.

Перенос строки

Для принудительного переноса строки нужно добавить 2 пробела на конце. Парсер заменит их на тег br.

Таблицы

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

First Header  | Second Header
------------- | -------------
Content Cell  | Content Cell
Content Cell  | Content Cell
First HeaderSecond Header
Content CellContent Cell
Content CellContent Cell

Основы Markdown

Подробная документация на сайте у автора.

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

Проверить, как будет выглядеть ваш документ можно на bezumkin.ru/utils/markdown.

pdoResources / Сниппеты / pdoTools / docs.modx.pro

Сниппет предназначен для вывода списка ресурсов. Является продвинутой заменой для getResources: обладает всеми его возможностями, но лишен недостатков.

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

Параметры

Параметры выборки ресурсов

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

НазваниеПо умолчаниюОписание
&parentsТекущий ресурсСписок родителей, через запятую, для поиска результатов. Если поставить 0 — выборка не ограничивается. Если id родителя начинается с дефиса, он и его потомки исключаются из выборки.
&depth10Глубина поиска дочерних ресурсов от родителя.
&resourcesСписок ресурсов, через запятую, для вывода в результатах. Если id ресурса начинается с дефиса, этот ресурс исключается из выборки.
&contextОграничение выборки по контексту ресурсов.
&whereМассив дополнительных параметров выборки, закодированный в JSON.
&showHidden1Показывать ресурсы, скрытые в меню.
&showUnpublished0Показывать неопубликованные ресурсы.
&showDeleted0Показывать удалённые ресурсы.
&hideContainers0Отключает вывод контейнеров, то есть, ресурсов с «isfolder = 1».
&select0Список полей для выборки, через запятую. Можно указывать JSON строку с массивом, например {«modResource»:»id,pagetitle,content»}.
&sortbypagetitleЛюбое поле ресурса для сортировки, включая ТВ параметр, если он указан в параметре &includeTVs. Можно указывать JSON строку с массивом нескольких полей, например {«tvname»:»ASC», «pagetitle»:»DESC»}. Для случайно сортировки укажите «RAND()»
&sortdirDESCНаправление сортировки: по убыванию или возрастанию.
&setTotal0Отключение выборки total по умолчанию (с версии 2.11.0). Сниппет pdoPage включает его всегда.
&limit10Ограничение количества результатов выборки. Можно использовать «0».
&offset0Пропуск результатов от начала. Необходимо использовать вместе с явно указанным &limit
&first1Номер первой итерации вывода результатов.
&lastАвтоматически, по формуле (total + first — 1)Номер последней итерации вывода результатов.
&loadModelsСписок компонентов, через запятую, чьи модели нужно загрузить для построения запроса. Например: &loadModels=`ms2gallery,msearch3`.
&tvFiltersСписок фильтров по ТВ, с разделителями AND и OR. Разделитель, указанный в параметре &tvFiltersOrDelimiter представляет логическое условие OR и по нему условия группируются в первую очередь. Внутри каждой группы вы можете задать список значений, разделив их &tvFiltersAndDelimiter. Поиск значений может проводиться в каком-то конкретном ТВ, если он указан «myTV==value», или в любом «value». Пример вызова: &tvFilters=`filter2==one,filter1==bar%||filter1==foo`. Обратите внимание: фильтрация использует оператор LIKE и знак «%» является метасимволом. И еще: Поиск идёт по значениям, которые физически находятся в БД, то есть, сюда не подставляются значения по умолчанию из настроек ТВ.
&tvFiltersAndDelimiter«,»Разделитель для условий AND в параметре &tvFilters.
&tvFiltersOrDelimiter«||»Разделитель для условий OR в параметре &tvFilters.

Параметры шаблонов

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

НазваниеОписание
&returnIdsУстановите значение «1», чтобы вернуть строку со списком id ресурсов, вместо оформленных результатов. Все указанные шаблоны игнорируются.
&tplИмя чанка для оформления ресурса. Если не указан, то содержимое полей ресурса будет распечатано на экран.
&tplFirstИмя чанка для первого ресурса в результатах.
&tplLastИмя чанка для последнего ресурса в результатах.
&tplOddИмя чанка для каждого второго ресурса (хоть «odd» значит «нечётный», работает для чётных ресурсов).
&tplWrapperЧанк-обёртка, для заворачивания всех результатов. Понимает один плейсхолдер: [[+output]]. Не работает вместе с параметром &toSeparatePlaceholders.
&wrapIfEmptyВключает вывод чанка-обертки &tplWrapper даже если результатов нет.
&tplConditionПоле ресурса, из которого будет получено значение для выбора чанка по условию в &conditionalTpls.
&tplOperatorНеобязательный оператор для проведения сравнения поля ресурса в &tplCondition с массивом значений и чанков в &conditionalTpls.
&conditionalTplsJSON строка с массивом, у которого в ключах указано то, с чем будет сравниваться &tplCondition, а в значениях — чанки, которые будут использованы для вывода, если сравнение будет успешно. Оператор сравнения указывается в &tplOperator. Для операторов типа isempty можно использовать массив без ключей.
&outputSeparatorНеобязательная строка для разделения результатов работы.

Параметры результатов

Эти параметры дополнительно определяют, какие данные и каким способом будут выводиться.

НазваниеПо умолчаниюОписание
&fastMode0Быстрый режим обработки чанков. Все необработанные теги (условия, сниппеты и т.п.) будут вырезаны.
&idxВы можете указать стартовый номер итерации вывода результатов.
&totalVartotalИмя плейсхолдера для сохранения общего количества результатов. Параметр setTotal должен быть включен.
&includeContent0Включаем поле «content» в выборку.
&includeTVsСписок ТВ параметров для выборки, через запятую. Например: «action,time» дадут плейсхолдеры [[+tv.action]] и [[+tv.time]].
&prepareTVs«1», что означает подготовку всех ТВ, указанных в &includeTVsСписок ТВ параметров, которые нужно подготовить перед выводом.
&processTVsСписок ТВ параметров, которые нужно обработать перед выводом. Если установить в «1», будут обработаны все ТВ, указанные в &includeTVs.
&tvPrefixtv.Префикс для ТВ параметров.
&useWeblinkUrlГенерировать ссылку с учетом класса ресурса, включает плейсхолдер [[+link]].
&toPlaceholderЕсли не пусто, сниппет сохранит все данные в плейсхолдер с этим именем, вместо вывода не экран.
&toSeparatePlaceholdersЕсли вы укажете слово в этом параметре, то ВСЕ результаты будут выставлены в разные плейсхолдеры, начинающиеся с этого слова и заканчивающиеся порядковым номером строки, от нуля. Например, указав в параметре «myPl», вы получите плейсхолдеры [[+myPl0]], [[+myPl1]] и т.д.
&showLog0Показывать дополнительную информацию о работе сниппета. Только для авторизованных в контекте «mgr».

Примеры

Простейший вывод списка дочерних ресурсов документа с идентификатором 1:

[[pdoResources?
    &parents=`1`
    &depth=`0`
    &tpl=`ListRowTpl`
]]

Если используется дополнительное поле image, то вызов изменится следующим образом:

[[pdoResources?
    &parents=`1`
    &depth=`0`
    &tpl=`ListRowTpl`
    &includeTVs=`image`
]]

В чанке ListRowTpl за это поле будет отвечать плейсхолдер [[+tv.image]]

Дополнительная информация

При переносе чанков с getResources, довольно распространённой ошибкой является использование модификатора strtotime, для форматирования даты.

Дело в том, что даты ресурсов и так хранятся в виде timestamp, но конвертируются в нормальные даты из-за использования объектов modResource — так запрограммировано в его свойствах.
А потом, для форматирования даты, их нужно перевести обратно в timestamp. Выходит двойная ненужная конвертация.

pdoTools же работает напрямую с базой данных, без создания объектов и конвертации их значений, поэтому в чанк приходит timestamp, который не нужно дополнительно обрабатывать.
Вы можете сразу применять модификатор date к значениям:

[[+publishedon:date=`%d.%m.%Y`]]
или
[[+createdon:date=`%Y-%m-%d`]]

Это касается работы с датами ресурсов и в других сниппетах pdoTools.

MODX синтаксис — документация на русском языке

Автор Алексей На чтение 4 мин Просмотров 1.5к. Опубликовано Обновлено

Абсолютно для любого пользователя сайта на MODX, теги несут основополагающее значение, по причине того, что они являются основными рабочими элементами.

Указывая тот или иной тег, во время работы с сайтом, пользователь получает возможность вызвать интересующую его часть HTML, либо PHP кода, отрывок текста или какие-то переменные документы.

Различают следующие виды синтаксиса тегов MODX:

для полей и элементов;

для вывода контента;

ЭлементВ RevolutionПример вывода
Плейсхолдеры[[+placeholder]][[+modx.user.id]]
Ссылки[[~link]][[~[[*id]]? &scheme=`full`]]
Системные настройки[[++system_setting]][[++site_start]]
Языковые теги[[%language_string_key]]
Комментарии[[-this is a comment]]

для системных параметров парсера;

ОписаниеТэг
Выводит время потраченное на запросы к базе данных[^qt^]
Выводит количество запросов к базе данных[^q^]
Выводит время потраченное на работу PHP скриптов[^p^]
Выводит общее время потраченное на генерацию страницы[^t^]
Выводит источник содержимого (база данных или кэш)[^s^]

Последний вид является своеобразным упрощенным форматом.

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

Комментарии в дескрипторах (тегах).

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

В MODX Revolution версии выше 2.2+ любой вид дескриптора, который начинается дефисом будет игнорироваться парсером. Все теги, находящиеся внутри такого комментария будут отброшены. За счет этого, можно не повлияв на нагрузку, вставить абсолютно любые составные теги в структуру комментария.

[[- Это комментарий. Он будет удален из вывода страницы. ]]

Составляющие части тегов

Структура любого тега, в не зависимости от его вида, имеет несколько частей.

[[                                      // открываем тег
    !                                   // указание, что тег НЕкешируемый (необязательно)
    elementToken                        // тип элемента $ - чанк, * - поле элемента или ТВ, + - плейсхолдер, и т. д.
    elementName                         // имя элемента
    @propertyset                        // можно указать набор параметров для этого элемента (необязательно)
    filterName=`modifier`               // один или несколько фильтров вывода (необязательно)
    ?                                   // указание того, что дальше идут параметры элемента (необязательно если параметры отсутствуют)
    &propertyName=`propertyValue`       // любой параметр элемента, начинающийся с &
    &propertyName2=`propertyValue2`     // параметров может быть сколько угодно, и все начинаются с &
]]                                      //закрываем тег

Они могут быть прописаны в линию, так: [[!pdoResourcesr? &parents=’5,10,11′ &limit=’7′]] или быть расположенными в столбик.

[[!pdoResources?
&parents='5,10,11'
&limit='7'
]]
Параметры

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

Здравствуйте, [[+name]]!

В данном чанке есть  плейсхолдер ([[+name]]), и мы к примеру хотим задать ему какие нибудь значения.

Раньше, для осуществления данного действия требовалось, использование сниппета, который выполнит установку значения, и это было обязательным условием. Но теперь все существенно изменилось. Сейчас достаточно просто указать интересующее значение в параметрах чанка, пример:

[[$zdravstvujte? &name=`Василий`]]

В итоге получим следующее:

Здравствуйте, Василий!

Кэширование

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

[[!+placeholder]]
[[!$chunk]]
[[!*template_var]]
[[!snippet]]

Плейсхолдеры

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

[[!Profile]]
Привет, [[!+username]].
Проверка синтаксиса

Проверка корректного написания тегов можно осуществить при помощи плагина SyntaxChecker.

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

Весь список тегов доступных для MODX Revolution можно найти в официальном руководстве на сайте rtfm.modx.com

CrazyBoy49z/docs-3: RTFM of MODX. Translating to russian

GitHub — CrazyBoy49z/docs-3: RTFM of MODX. Translating to russian

This branch is even with ferumii:master.

Files

Permalink

Failed to load latest commit information.

Type

Name

Latest commit message

Commit time

перевод официального RTFM

Версия на русском языке
Разработка мануала сообща через pull-requests + issues.
Автоматический билд после вливания в мастер на сайт.

Разделы документации соответствуют оцифиальному rtfm на английском языке. Все материалы явлюятся исключительно переводами официальной документации. Авторские статьи и статьи по использованию MODx находятся в других разделах. Для получения самой свежей информации пользуйтесь англоязычным вариантом rtfm, так как переводы обновлений занимают время и могут не соответствовать оригиналу в момент просмотра.

Содержание

Revolution

Документация по MODx Revolution версии 2 и последующих минорных версий. В разделе описаны основные приемы работы с данной версией CMS. Так же документация включает разделы как для разработчиков, так и для администраторов сайтов и обычных пользователей.

xPDO

Дополнения MODX

Этот раздел содержит документацию по дополнениям от других разработчиков. Некоторые дополнения и компоненты созданы и поддерживаются самими разработчиками MODx, некоторые нет. В этом разделе будут переводы только самых популярных приложений.

Evolution

Участие в разработке

About

RTFM of MODX. Translating to russian

Resources

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.

Фильтр товаров на странице каталога MODX Revolution часть 2

15 урок по разработке интернет магазина на MODX Revolution

Реализация фильтра товаров на странице каталога MODX Revo

Для просмотра видео используйте пароль mini2shop


Чанк Products
                      
<code> <li><form method="post">
                  <div>
                    <div>
                        <div> <a href="">
                          <figure>
[[+new]] [[+popular]] [[+favorite]]
                           
                            <img src="[[+thumb:default=`/assets/components/minishop2/img/web/ms2_small.png&zc=1`]]" alt="[[+pagetitle]]"> 
<img alt="[[+pagetitle]]" src="[[+thumb:default=`/assets/components/minishop2/img/web/ms2_small.png`]]"> 

    </figure>
                      </a> </div>
                        <div>
                          <div> 
                          <button type="submit" name="ms2_action" value="cart/add"><i> </i>  ms2_frontend_add_to_cart</button>
414141<input type="hidden" name="id" value="[[+id]]">
414141<input type="hidden" name="count" value="1">
414141<input type="hidden" name="options" value="[]">
                                              
          </div>
                        </div>
                      </div>

                    <div>
                      <div>

                        <div> <a href="" title="[[+pagetitle]]"> [[+pagetitle]]</a> </div>
                        <div>
                          
                          <div>
                    <div> <span ><span>[[+old_price]] </span> </span> </div>
                            <div> <span > <span>[[+price]] ms2_frontend_currency</span> </span> </div>
         
                          </div>
                       
                          
414141414141  <div>
414141414141      


  


                          </div>
                        </div>
                      </div>
                    </div>
                  </div></form>
                  
                </li>

  
<!--minishop2_popular <div>TOP</div>-->
<!--minishop2_new <div>NEW</div>-->
<!--minishop2_favorite <i title="ms2_frontend_favorite"></i>-->
<!--minishop2_old_price <span>[[+old_price]] ms2_frontend_currency</span>--></code>
Шаблон Каталог
<code> <!DOCTYPE html>
<html lang="en">
[[!MetaX? &tpl=`HeadTovar`]]
<body>
<div>
  <!-- Header -->
  [[$Header]]
  <!-- end nav -->
  
  <!-- breadcrumbs -->
  <div>
    <div>
      <div>
         Array
(
    [output] => Array
(
    &#91;showLog&#93; =&gt; 
    &#91;fastMode&#93; =&gt; 
    &#91;from&#93; =&gt; 0
    &#91;to&#93; =&gt; 
    &#91;customParents&#93; =&gt; 
    &#91;limit&#93; =&gt; 10
    &#91;exclude&#93; =&gt; 
    &#91;outputSeparator&#93; =&gt; &#96;&amp;lt;span&amp;gt;&mdash;&rsaquo;&amp;lt;/span&amp;gt;&#96;
41
    &#91;toPlaceholder&#93; =&gt; 
    &#91;includeTVs&#93; =&gt; 
    &#91;prepareTVs&#93; =&gt; 1
    &#91;processTVs&#93; =&gt; 
    &#91;tvPrefix&#93; =&gt; tv.
    &#91;showUnpublished&#93; =&gt; 
    &#91;showDeleted&#93; =&gt; 
    &#91;showHidden&#93; =&gt; 1
    &#91;hideContainers&#93; =&gt; 
    &#91;tpl&#93; =&gt; &#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;&#91;&#91;+link&#93;&#93;&quot;&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplCurrent&#93; =&gt; &#96;@INLINE &amp;lt;li class=&quot;category13&quot;&amp;gt;&amp;lt;strong&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/strong&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplMax&#93; =&gt; @INLINE &lt;li class=&quot;breadcrumb-item disabled&quot;&gt;&amp;nbsp;...&amp;nbsp;&lt;/li&gt;
    &#91;tplHome&#93; =&gt; &#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;/&quot;&amp;gt;Главная&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplWrapper&#93; =&gt; &#96;@INLINE  &amp;lt;ul&amp;gt;&#91;&#91;+output&#93;&#93;&amp;lt;/ul&amp;gt;&#96;
41
    &#91;wrapIfEmpty&#93; =&gt; 
    &#91;showCurrent&#93; =&gt; 1
    &#91;showHome&#93; =&gt; 1
    &#91;showAtHome&#93; =&gt; 1
    &#91;hideSingle&#93; =&gt; 
    &#91;direction&#93; =&gt; ltr
    &#91;scheme&#93; =&gt; 
    &#91;useWeblinkUrl&#93; =&gt; 1
    &#91;id&#93; =&gt; 1
    &#91;type&#93; =&gt; document
    &#91;contentType&#93; =&gt; text/html
    &#91;pagetitle&#93; =&gt; Главная
    &#91;longtitle&#93; =&gt; MODX Revolution CMS система управления контентом
    &#91;description&#93; =&gt; MODX Revolution уроки Шаблоны MODX Revolution документация на русском статьи. Установка MODX Revolution и последующая настройка. 
    &#91;alias&#93; =&gt; index
    &#91;alias_visible&#93; =&gt; 1
    &#91;link_attributes&#93; =&gt; 
    &#91;published&#93; =&gt; 1
    &#91;pub_date&#93; =&gt; 0
    &#91;unpub_date&#93; =&gt; 0
    &#91;parent&#93; =&gt; 0
    &#91;isfolder&#93; =&gt; 0
    &#91;introtext&#93; =&gt; &lt;h4&gt;
Документация MODX Revolution на русском языке поможет вам в освоении данной системы.&lt;/h4&gt;
&lt;p&gt;&lt;h4&gt;&lt;i&gt;Мы предоставляем бесплатные шаблоны для веб сайтов на MODX Revolution. Наши шаблоны полностью настроены и готовы к немедленной установке через Управление пакетами.&lt;/p&gt;
&lt;p&gt;Кроме шаблонов мы подготовили раздел который называется Быстрый старт. Здесь вы сможете найти готовые сайты. Вам всего лишь потребуется скачать и установить к себе на хостинг любой из понравившихся сайтов, что бы получить готовый к работе проект. Вам останется только наполнить его материалами.&lt;/i&gt;&lt;/h4&gt;&lt;/p&gt;
&lt;p&gt;Посмотрите, что мы подготовили для Вас&lt;/p&gt;

    &#91;content&#93; =&gt; &lt;p&gt;
	Если ваш сайт имеет решающее значение для вашего бизнеса, &lt;strong&gt;&lt;kbd&gt;MODX&lt;/kbd&gt;&lt;/strong&gt; обеспечит силу и творческую свободу. Свобода для дизайнеров, свобода для авторов контента и свободы для вашего сайта, чтобы расти и изменяться вместе с вашим бизнесом.
&lt;/p&gt;&lt;p&gt;
	Используя &lt;mark&gt;MODX&lt;/mark&gt;, разработчики получат настраиваемое ядро, чтобы реализовать любое требование любого масштаба. Будь то многодоменный сайт, мобильный API, или нечто среднее, &lt;strong&gt;&lt;kbd&gt;MODX&lt;/kbd&gt;&lt;/strong&gt; отвечает вашим потребностям сегодня-завтра.
&lt;/p&gt;&lt;p&gt;
	MODX Revolution (Revo) является простой в использование бесплатной системой управлении контентом (CMS), и платформой приложений в одном лице.
&lt;/p&gt;&lt;p&gt;
	Несмотря на безграничные возможности, которые дает нам MODX, вы найдете его интуитивно понятным в работе. 
На каждом шагу, 
	&lt;em&gt;MODX&lt;/em&gt; стремится доставить как можно больше творческой свободы в реализации функционала.
&lt;/p&gt;&lt;p&gt;
	Кроме документации по &lt;strong&gt;&lt;kbd&gt;MODX Revolution&lt;/kbd&gt;&lt;/strong&gt; и дополнениям к нему, Вы так же найдете статьи и руководства, которые помогут вам начать работать с MODX быстро и легко. Основные моменты включают:

&lt;/p&gt;&lt;ul class=&quot;list-unstyled icon-list arrow-right&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.modx.cc/video-uroki/&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;
	&lt;h5&gt;&lt;i class=&quot;fa fa-film&quot;&gt;&lt;/i&gt; Видео-уроки по MODX Revolution&lt;/h5&gt;
	&lt;/a&gt;

	
	&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.modx.cc/templates/&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;
	&lt;h5&gt;&lt;i class=&quot;fa fa-desktop&quot;&gt;&lt;/i&gt; MODX шаблоны&lt;/h5&gt;
	&lt;/a&gt;
	
		
	
	&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.modx.cc/video-uroki/&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;
	&lt;h5&gt;&lt;i class=&quot;fa fa-legal&quot;&gt;&lt;/i&gt; Создание блога на &lt;em&gt;MODX&lt;/em&gt;&lt;/h5&gt;
	&lt;/a&gt;
	
		
	
	&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;	Если у вас есть вопросы относительно этого сайта, материалов размещенных на нем, или какие либо предложения, пожалуйста, сообщите нам об этом.&lt;/p&gt;
    &#91;richtext&#93; =&gt; 1
    &#91;template&#93; =&gt; 138
    &#91;menuindex&#93; =&gt; 1
    &#91;searchable&#93; =&gt; 1
    &#91;cacheable&#93; =&gt; 1
    &#91;createdby&#93; =&gt; 1
    &#91;createdon&#93; =&gt; 1339838002
    &#91;editedby&#93; =&gt; 1
    &#91;editedon&#93; =&gt; 1626018379
    &#91;deleted&#93; =&gt; 0
    &#91;deletedon&#93; =&gt; 0
    &#91;deletedby&#93; =&gt; 0
    &#91;publishedon&#93; =&gt; 0
    &#91;publishedby&#93; =&gt; 0
    &#91;menutitle&#93; =&gt; Главная
    &#91;donthit&#93; =&gt; 0
    &#91;privateweb&#93; =&gt; 0
    &#91;privatemgr&#93; =&gt; 0
    &#91;content_dispo&#93; =&gt; 0
    &#91;hidemenu&#93; =&gt; 0
    &#91;class_key&#93; =&gt; modDocument
    &#91;context_key&#93; =&gt; web
    &#91;content_type&#93; =&gt; 1
    &#91;uri&#93; =&gt; index
    &#91;uri_override&#93; =&gt; 0
    &#91;hide_children_in_tree&#93; =&gt; 0
    &#91;show_in_tree&#93; =&gt; 1
    &#91;properties&#93; =&gt; Array
        (
            &#91;autoredirector&#93; =&gt; Array
                (
                    &#91;old_uri&#93; =&gt; index/
                )

            &#91;ms2gallery&#93; =&gt; Array
                (
                    &#91;media_source&#93; =&gt; 2
                )

            &#91;supercache&#93; =&gt; Array
                (
                    &#91;supercache&#93; =&gt; 1
                )

            &#91;seosuite&#93; =&gt; Array
                (
                    &#91;uri&#93; =&gt; index
                )

        )

    &#91;link&#93; =&gt; 
    &#91;idx&#93; =&gt; 1
)
`&lt;span&gt;—›&lt;/span&gt;`
41Array
(
    &#91;showLog&#93; =&gt; 
    &#91;fastMode&#93; =&gt; 
    &#91;from&#93; =&gt; 0
    &#91;to&#93; =&gt; 
    &#91;customParents&#93; =&gt; 
    &#91;limit&#93; =&gt; 10
    &#91;exclude&#93; =&gt; 
    &#91;outputSeparator&#93; =&gt; &#96;&amp;lt;span&amp;gt;&mdash;&rsaquo;&amp;lt;/span&amp;gt;&#96;
41
    &#91;toPlaceholder&#93; =&gt; 
    &#91;includeTVs&#93; =&gt; 
    &#91;prepareTVs&#93; =&gt; 1
    &#91;processTVs&#93; =&gt; 
    &#91;tvPrefix&#93; =&gt; tv.
    &#91;showUnpublished&#93; =&gt; 
    &#91;showDeleted&#93; =&gt; 
    &#91;showHidden&#93; =&gt; 1
    &#91;hideContainers&#93; =&gt; 
    &#91;tpl&#93; =&gt; &#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;&#91;&#91;+link&#93;&#93;&quot;&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplCurrent&#93; =&gt; &#96;@INLINE &amp;lt;li class=&quot;category13&quot;&amp;gt;&amp;lt;strong&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/strong&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplMax&#93; =&gt; @INLINE &lt;li class=&quot;breadcrumb-item disabled&quot;&gt;&amp;nbsp;...&amp;nbsp;&lt;/li&gt;
    &#91;tplHome&#93; =&gt; &#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;/&quot;&amp;gt;Главная&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplWrapper&#93; =&gt; &#96;@INLINE  &amp;lt;ul&amp;gt;&#91;&#91;+output&#93;&#93;&amp;lt;/ul&amp;gt;&#96;
41
    &#91;wrapIfEmpty&#93; =&gt; 
    &#91;showCurrent&#93; =&gt; 1
    &#91;showHome&#93; =&gt; 1
    &#91;showAtHome&#93; =&gt; 1
    &#91;hideSingle&#93; =&gt; 
    &#91;direction&#93; =&gt; ltr
    &#91;scheme&#93; =&gt; 
    &#91;useWeblinkUrl&#93; =&gt; 1
    &#91;id&#93; =&gt; 615
    &#91;type&#93; =&gt; document
    &#91;contentType&#93; =&gt; text/html
    &#91;pagetitle&#93; =&gt; Видео уроки
    &#91;longtitle&#93; =&gt; MODX уроки, MODX Revo видео уроки
    &#91;description&#93; =&gt; Видео-уроки по работе с CMF MODX Revolution для новичков. В данных уроках вы узнаете как установить MODX на хостинг, как натянуть шаблон, что такое чанки и для чего они нужны. По мере возможностей раздел будет пополняться. 
    &#91;alias&#93; =&gt; video-uroki
    &#91;alias_visible&#93; =&gt; 1
    &#91;link_attributes&#93; =&gt; 
    &#91;published&#93; =&gt; 1
    &#91;pub_date&#93; =&gt; 0
    &#91;unpub_date&#93; =&gt; 0
    &#91;parent&#93; =&gt; 0
    &#91;isfolder&#93; =&gt; 1
    &#91;introtext&#93; =&gt; 
    &#91;content&#93; =&gt; &lt;div id=&quot;pdopage&quot;&gt;
	&lt;div class=&quot;rows&quot;&gt;
&#91;&#91;!pdoPage? &amp;tpl=&#96;video_tpl&#96; &amp;limit=&#96;12&#96;&amp;includeTVs=&#96;image&#96;  &amp;ajax=&#96;1&#96; &amp;ajaxMode=&#96;default&#96;&#93;&#93;
    &lt;/div&gt;
 &lt;div class=&quot;clearfix&quot;&gt; &lt;/div&gt;
 &lt;div class=&quot;clearfix&quot;&gt; &lt;/div&gt;
&lt;ul class=&quot;pagination-custom list-unstyled list-inline text-center&quot;&gt;
    
    &#91;&#91;!+page.nav&#93;&#93;

&lt;/ul&gt;
&lt;/div&gt;
    &#91;richtext&#93; =&gt; 0
    &#91;template&#93; =&gt; 139
    &#91;menuindex&#93; =&gt; 7
    &#91;searchable&#93; =&gt; 1
    &#91;cacheable&#93; =&gt; 1
    &#91;createdby&#93; =&gt; 1
    &#91;createdon&#93; =&gt; 1389806766
    &#91;editedby&#93; =&gt; 1
    &#91;editedon&#93; =&gt; 1612544042
    &#91;deleted&#93; =&gt; 0
    &#91;deletedon&#93; =&gt; 0
    &#91;deletedby&#93; =&gt; 0
    &#91;publishedon&#93; =&gt; 1389806760
    &#91;publishedby&#93; =&gt; 1
    &#91;menutitle&#93; =&gt; Видео уроки
    &#91;donthit&#93; =&gt; 0
    &#91;privateweb&#93; =&gt; 0
    &#91;privatemgr&#93; =&gt; 0
    &#91;content_dispo&#93; =&gt; 0
    &#91;hidemenu&#93; =&gt; 0
    &#91;class_key&#93; =&gt; CollectionContainer
    &#91;context_key&#93; =&gt; web
    &#91;content_type&#93; =&gt; 1
    &#91;uri&#93; =&gt; video-uroki/
    &#91;uri_override&#93; =&gt; 0
    &#91;hide_children_in_tree&#93; =&gt; 0
    &#91;show_in_tree&#93; =&gt; 1
    &#91;properties&#93; =&gt; Array
        (
            &#91;tickets&#93; =&gt; Array
                (
                    &#91;template&#93; =&gt; 55
                    &#91;uri&#93; =&gt; %alias/
                    &#91;show_in_tree&#93; =&gt; 
                    &#91;hidemenu&#93; =&gt; 0
                    &#91;disable_jevix&#93; =&gt; 1
                    &#91;process_tags&#93; =&gt; 
                )

            &#91;ratings&#93; =&gt; Array
                (
                    &#91;ticket&#93; =&gt; 10
                    &#91;comment&#93; =&gt; 1
                    &#91;view&#93; =&gt; 0.1
                    &#91;vote_ticket&#93; =&gt; 1
                    &#91;star_ticket&#93; =&gt; 3
                    &#91;vote_comment&#93; =&gt; 0.2
                    &#91;star_comment&#93; =&gt; 0.6
                    &#91;min_ticket_create&#93; =&gt; 
                    &#91;days_ticket_vote&#93; =&gt; 
                    &#91;min_comment_create&#93; =&gt; 
                    &#91;days_comment_vote&#93; =&gt; 
                )

            &#91;autoredirector&#93; =&gt; Array
                (
                    &#91;old_uri&#93; =&gt; video-uroki/
                )

        )

    &#91;link&#93; =&gt; video-uroki/
    &#91;idx&#93; =&gt; 2
)
`&lt;span&gt;—›&lt;/span&gt;`
41Array
(
    &#91;showLog&#93; =&gt; 
    &#91;fastMode&#93; =&gt; 
    &#91;from&#93; =&gt; 0
    &#91;to&#93; =&gt; 
    &#91;customParents&#93; =&gt; 
    &#91;limit&#93; =&gt; 10
    &#91;exclude&#93; =&gt; 
    &#91;outputSeparator&#93; =&gt; &#96;&amp;lt;span&amp;gt;&mdash;&rsaquo;&amp;lt;/span&amp;gt;&#96;
41
    &#91;toPlaceholder&#93; =&gt; 
    &#91;includeTVs&#93; =&gt; 
    &#91;prepareTVs&#93; =&gt; 1
    &#91;processTVs&#93; =&gt; 
    &#91;tvPrefix&#93; =&gt; tv.
    &#91;showUnpublished&#93; =&gt; 
    &#91;showDeleted&#93; =&gt; 
    &#91;showHidden&#93; =&gt; 1
    &#91;hideContainers&#93; =&gt; 
    &#91;tpl&#93; =&gt; &#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;&#91;&#91;+link&#93;&#93;&quot;&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplCurrent&#93; =&gt; &#96;@INLINE &amp;lt;li class=&quot;category13&quot;&amp;gt;&amp;lt;strong&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/strong&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplMax&#93; =&gt; @INLINE &lt;li class=&quot;breadcrumb-item disabled&quot;&gt;&amp;nbsp;...&amp;nbsp;&lt;/li&gt;
    &#91;tplHome&#93; =&gt; &#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;/&quot;&amp;gt;Главная&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplWrapper&#93; =&gt; &#96;@INLINE  &amp;lt;ul&amp;gt;&#91;&#91;+output&#93;&#93;&amp;lt;/ul&amp;gt;&#96;
41
    &#91;wrapIfEmpty&#93; =&gt; 
    &#91;showCurrent&#93; =&gt; 1
    &#91;showHome&#93; =&gt; 1
    &#91;showAtHome&#93; =&gt; 1
    &#91;hideSingle&#93; =&gt; 
    &#91;direction&#93; =&gt; ltr
    &#91;scheme&#93; =&gt; 
    &#91;useWeblinkUrl&#93; =&gt; 1
    &#91;id&#93; =&gt; 1511
    &#91;type&#93; =&gt; document
    &#91;contentType&#93; =&gt; text/html
    &#91;pagetitle&#93; =&gt; 15 Фильтр товаров MODX Revolution 2
    &#91;longtitle&#93; =&gt; Фильтр товаров на странице каталога MODX Revolution часть 2
    &#91;description&#93; =&gt; Фильтр товаров на странице каталога MODX Revolution часть 2
    &#91;alias&#93; =&gt; 5-filtr-tovarov-modx-revolution-2
    &#91;alias_visible&#93; =&gt; 1
    &#91;link_attributes&#93; =&gt; 
    &#91;published&#93; =&gt; 1
    &#91;pub_date&#93; =&gt; 0
    &#91;unpub_date&#93; =&gt; 0
    &#91;parent&#93; =&gt; 615
    &#91;isfolder&#93; =&gt; 0
    &#91;introtext&#93; =&gt; 
    &#91;content&#93; =&gt; &lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/MJZ8SW1qGoY&quot; allowfullscreen=&quot;&quot; width=&quot;680&quot; height=&quot;420&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;p&gt;15 урок по разработке интернет магазина на MODX Revolution&lt;/p&gt;&lt;p&gt;Реализация фильтра товаров на странице каталога MODX Revo&lt;/p&gt;&lt;p&gt;Для просмотра видео используйте пароль &lt;strong&gt;mini2shop&lt;/strong&gt;&lt;/p&gt;&lt;hr class=&quot;vertical-spacer vertical-spacer-lg&quot;&gt;&lt;h5 class=&quot;panel-title&quot;&gt; &lt;a class=&quot;collapsed&quot; data-toggle=&quot;collapse&quot; data-parent=&quot;#accordion&quot; href=&quot;#collapseTwo&quot; rel=&quot;nofollow&quot;&gt; Чанк Products &lt;/a&gt; &lt;/h5&gt;&lt;!--/.panel-heading --&gt;&lt;pre&gt;                      
&amp;lt;code&amp;gt; &amp;lt;li class=&quot;item col-lg-4 col-md-3 col-sm-4 col-xs-12 ms2_product&quot;&amp;gt;&amp;lt;form method=&quot;post&quot; class=&quot;ms2_form&quot;&amp;gt;
                  &amp;lt;div class=&quot;item-inner&quot;&amp;gt;
                    &amp;lt;div class=&quot;product-block&quot;&amp;gt;
                        &amp;lt;div class=&quot;product-image&quot;&amp;gt; &amp;lt;a href=&quot;&#91;&#91;~&#91;&#91;+id&#93;&#93;&#93;&#93;&quot;&amp;gt;
                          &amp;lt;figure class=&quot;product-display&quot;&amp;gt;
&#91;&#91;+new&#93;&#93; &#91;&#91;+popular&#93;&#93; &#91;&#91;+favorite&#93;&#93;
                           
                            &amp;lt;img src=&quot;&#91;&#91;+thumb:default=&#96;&#91;&#91;++assets_url&#93;&#93;components/minishop2/img/web/ms2_small.png&amp;zc=1&#96;&#93;&#93;&quot; class=&quot;lazyOwl product-mainpic&quot; alt=&quot;&#91;&#91;+pagetitle&#93;&#93;&quot; style=&quot;display: block;&quot;&amp;gt; 
&amp;lt;img class=&quot;product-secondpic&quot; alt=&quot;&#91;&#91;+pagetitle&#93;&#93;&quot; src=&quot;&#91;&#91;+thumb:default=&#96;&#91;&#91;++assets_url&#93;&#93;components/minishop2/img/web/ms2_small.png&#96;&#93;&#93;&quot;&amp;gt; 

    &amp;lt;/figure&amp;gt;
                      &amp;lt;/a&amp;gt; &amp;lt;/div&amp;gt;
                        &amp;lt;div class=&quot;product-meta&quot;&amp;gt;
                          &amp;lt;div class=&quot;product-action&quot;&amp;gt; 
                          &amp;lt;button class=&quot;addcart btn btn-link&quot; type=&quot;submit&quot; name=&quot;ms2_action&quot; value=&quot;cart/add&quot;&amp;gt;&amp;lt;i class=&quot;icon-shopping-cart&quot;&amp;gt; &amp;lt;/i&amp;gt;  &#91;&#91;%ms2_frontend_add_to_cart&#93;&#93;&amp;lt;/button&amp;gt;
414141&amp;lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&#91;&#91;+id&#93;&#93;&quot;&amp;gt;
414141&amp;lt;input type=&quot;hidden&quot; name=&quot;count&quot; value=&quot;1&quot;&amp;gt;
414141&amp;lt;input type=&quot;hidden&quot; name=&quot;options&quot; value=&quot;&#91;&#93;&quot;&amp;gt;
                                              
          &amp;lt;/div&amp;gt;
                        &amp;lt;/div&amp;gt;
                      &amp;lt;/div&amp;gt;

                    &amp;lt;div class=&quot;item-info&quot;&amp;gt;
                      &amp;lt;div class=&quot;info-inner&quot;&amp;gt;

                        &amp;lt;div class=&quot;item-title&quot;&amp;gt; &amp;lt;a href=&quot;&#91;&#91;~&#91;&#91;+id&#93;&#93;&#93;&#93;&quot; title=&quot;&#91;&#91;+pagetitle&#93;&#93;&quot;&amp;gt; &#91;&#91;+pagetitle&#93;&#93;&amp;lt;/a&amp;gt; &amp;lt;/div&amp;gt;
                        &amp;lt;div class=&quot;item-content&quot;&amp;gt;
                          
                          &amp;lt;div class=&quot;item-price&quot;&amp;gt;
                    &amp;lt;div class=&quot;price-box&quot;&amp;gt; &amp;lt;span class=&quot;regular-price&quot; &amp;gt;&amp;lt;span class=&quot;price&quot;&amp;gt;&#91;&#91;+old_price&#93;&#93; &amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt;
                            &amp;lt;div class=&quot;price-box&quot;&amp;gt; &amp;lt;span class=&quot;regular-price&quot; &amp;gt; &amp;lt;span class=&quot;price&quot;&amp;gt;&#91;&#91;+price&#93;&#93; &#91;&#91;%ms2_frontend_currency&#93;&#93;&amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt;
         
                          &amp;lt;/div&amp;gt;
                       
                          
414141414141  &amp;lt;div class=&quot;rating&quot;&amp;gt;
414141414141      


  


                          &amp;lt;/div&amp;gt;
                        &amp;lt;/div&amp;gt;
                      &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;
                  &amp;lt;/div&amp;gt;&amp;lt;/form&amp;gt;
                  
                &amp;lt;/li&amp;gt;

  
&amp;lt;!--minishop2_popular &amp;lt;div class=&quot;sale-label sale-top-left&quot;&amp;gt;TOP&amp;lt;/div&amp;gt;--&amp;gt;
&amp;lt;!--minishop2_new &amp;lt;div class=&quot;new-label new-top-right&quot;&amp;gt;NEW&amp;lt;/div&amp;gt;--&amp;gt;
&amp;lt;!--minishop2_favorite &amp;lt;i class=&quot;glyphicon glyphicon-bookmark&quot; title=&quot;&#91;&#91;%ms2_frontend_favorite&#93;&#93;&quot;&amp;gt;&amp;lt;/i&amp;gt;--&amp;gt;
&amp;lt;!--minishop2_old_price &amp;lt;span class=&quot;old_price&quot;&amp;gt;&#91;&#91;+old_price&#93;&#93; &#91;&#91;%ms2_frontend_currency&#93;&#93;&amp;lt;/span&amp;gt;--&amp;gt;&amp;lt;/code&amp;gt;&lt;/pre&gt;&lt;!--/.panel-body --&gt; &lt;!--/.panel-collapse --&gt; &lt;!-- /.panel --&gt;&lt;h5 class=&quot;panel-title&quot;&gt; &lt;a class=&quot;collapsed&quot; data-toggle=&quot;collapse&quot; data-parent=&quot;#accordion&quot; href=&quot;#collapseThree&quot; rel=&quot;nofollow&quot;&gt; Шаблон Каталог  &lt;/a&gt; &lt;/h5&gt;&lt;!--/.panel-heading --&gt;&lt;pre&gt;&amp;lt;code&amp;gt; &amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;
&#91;&#91;!MetaX? &amp;tpl=&#96;HeadTovar&#96;&#93;&#93;
&amp;lt;body&amp;gt;
&amp;lt;div class=&quot;page&quot;&amp;gt;
  &amp;lt;!-- Header --&amp;gt;
  &#91;&#91;$Header&#93;&#93;
  &amp;lt;!-- end nav --&amp;gt;
  
  &amp;lt;!-- breadcrumbs --&amp;gt;
  &amp;lt;div class=&quot;breadcrumbs&quot;&amp;gt;
    &amp;lt;div class=&quot;container&quot;&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
         &#91;&#91;pdoCrumbs?
41&amp;tplWrapper=&#96;@INLINE  &amp;lt;ul&amp;gt;&#91;&#91;+output&#93;&#93;&amp;lt;/ul&amp;gt;&#96;
41&amp;tpl=&#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;&#91;&#91;+link&#93;&#93;&quot;&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41&amp;outputSeparator=&#96;&amp;lt;span&amp;gt;&mdash;&rsaquo;&amp;lt;/span&amp;gt;&#96;
41&amp;tplCurrent=&#96;@INLINE &amp;lt;li class=&quot;category13&quot;&amp;gt;&amp;lt;strong&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/strong&amp;gt;&amp;lt;/li&amp;gt;&#96;
41&amp;tplHome=&#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;/&quot;&amp;gt;Главная&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41&amp;showHome=&#96;1&#96;
&#93;&#93;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;!-- End breadcrumbs --&amp;gt; 
  &amp;lt;!-- Two columns content --&amp;gt;
  &amp;lt;div class=&quot;main-container col2-left-layout&quot;&amp;gt;
    &amp;lt;div class=&quot;main container&quot;&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        
        &#91;&#91;!mFilter2?
&amp;parents=&#96;&#91;&#91;*id&#93;&#93;&#96;
&amp;element=&#96;msProducts&#96;
&amp;class=&#96;msProduct&#96;
&amp;tpl=&#96;Products&#96;
&amp;filters=&#96;
ms|price:number,
msoption|color:color,
msoption|size:size,
ms|country:country,
tv|rost:rost
&#96;
 &amp;aliases=&#96;
        ms|price==price,
        resource|parent==parent,
    &#96;
&amp;tplFilter.outer.default=&#96;mFilter2.filter.outer&#96;
&amp;tplFilter.row.default=&#96;mFilter2.filter.checkbox&#96;
&amp;tplOuter=&#96;mFilter2.outer&#96;
&amp;tplFilter.outer.price=&#96;tpl.mFilter2.filter.slider&#96;
 &amp;tplFilter.row.price=&#96;tpl.mFilter2.filter.number&#96;
&#93;&#93;
          
 


   
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;!-- End Two columns content --&amp;gt; 
  
  &amp;lt;!-- Footer --&amp;gt;
&#91;&#91;$Footer&#93;&#93;
  &amp;lt;!-- End Footer --&amp;gt;
&amp;lt;/div&amp;gt;
&#91;&#91;$Help&#93;&#93;
&#91;&#91;$ScriptTovar&#93;&#93;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&amp;lt;/code&amp;gt; &lt;/pre&gt;&lt;!--/.panel-body --&gt; &lt;!--/.panel-collapse --&gt; &lt;!-- /.panel --&gt;&lt;!-- /.panel-group --&gt;
    &#91;richtext&#93; =&gt; 1
    &#91;template&#93; =&gt; 140
    &#91;menuindex&#93; =&gt; 47
    &#91;searchable&#93; =&gt; 1
    &#91;cacheable&#93; =&gt; 1
    &#91;createdby&#93; =&gt; 1
    &#91;createdon&#93; =&gt; 1456991820
    &#91;editedby&#93; =&gt; 1
    &#91;editedon&#93; =&gt; 1613478007
    &#91;deleted&#93; =&gt; 0
    &#91;deletedon&#93; =&gt; 0
    &#91;deletedby&#93; =&gt; 0
    &#91;publishedon&#93; =&gt; 1456991820
    &#91;publishedby&#93; =&gt; 1
    &#91;menutitle&#93; =&gt; 15 Фильтр товаров MODX Revolution 2
    &#91;donthit&#93; =&gt; 0
    &#91;privateweb&#93; =&gt; 0
    &#91;privatemgr&#93; =&gt; 0
    &#91;content_dispo&#93; =&gt; 0
    &#91;hidemenu&#93; =&gt; 1
    &#91;class_key&#93; =&gt; modDocument
    &#91;context_key&#93; =&gt; web
    &#91;content_type&#93; =&gt; 1
    &#91;uri&#93; =&gt; video-uroki/5-filtr-tovarov-modx-revolution-2/
    &#91;uri_override&#93; =&gt; 1
    &#91;hide_children_in_tree&#93; =&gt; 0
    &#91;show_in_tree&#93; =&gt; 0
    &#91;properties&#93; =&gt; Array
        (
            &#91;tickets&#93; =&gt; Array
                (
                    &#91;disable_jevix&#93; =&gt; 1
                    &#91;process_tags&#93; =&gt; 
                )

            &#91;ms2gallery&#93; =&gt; Array
                (
                    &#91;media_source&#93; =&gt; 2
                )

        )

    &#91;link&#93; =&gt; video-uroki/5-filtr-tovarov-modx-revolution-2/
    &#91;idx&#93; =&gt; 3
)

    [crumbs] => Array
(
    &#91;showLog&#93; =&gt; 
    &#91;fastMode&#93; =&gt; 
    &#91;from&#93; =&gt; 0
    &#91;to&#93; =&gt; 
    &#91;customParents&#93; =&gt; 
    &#91;limit&#93; =&gt; 10
    &#91;exclude&#93; =&gt; 
    &#91;outputSeparator&#93; =&gt; &#96;&amp;lt;span&amp;gt;&mdash;&rsaquo;&amp;lt;/span&amp;gt;&#96;
41
    &#91;toPlaceholder&#93; =&gt; 
    &#91;includeTVs&#93; =&gt; 
    &#91;prepareTVs&#93; =&gt; 1
    &#91;processTVs&#93; =&gt; 
    &#91;tvPrefix&#93; =&gt; tv.
    &#91;showUnpublished&#93; =&gt; 
    &#91;showDeleted&#93; =&gt; 
    &#91;showHidden&#93; =&gt; 1
    &#91;hideContainers&#93; =&gt; 
    &#91;tpl&#93; =&gt; &#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;&#91;&#91;+link&#93;&#93;&quot;&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplCurrent&#93; =&gt; &#96;@INLINE &amp;lt;li class=&quot;category13&quot;&amp;gt;&amp;lt;strong&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/strong&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplMax&#93; =&gt; @INLINE &lt;li class=&quot;breadcrumb-item disabled&quot;&gt;&amp;nbsp;...&amp;nbsp;&lt;/li&gt;
    &#91;tplHome&#93; =&gt; &#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;/&quot;&amp;gt;Главная&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplWrapper&#93; =&gt; &#96;@INLINE  &amp;lt;ul&amp;gt;&#91;&#91;+output&#93;&#93;&amp;lt;/ul&amp;gt;&#96;
41
    &#91;wrapIfEmpty&#93; =&gt; 
    &#91;showCurrent&#93; =&gt; 1
    &#91;showHome&#93; =&gt; 1
    &#91;showAtHome&#93; =&gt; 1
    &#91;hideSingle&#93; =&gt; 
    &#91;direction&#93; =&gt; ltr
    &#91;scheme&#93; =&gt; 
    &#91;useWeblinkUrl&#93; =&gt; 1
    &#91;id&#93; =&gt; 1
    &#91;type&#93; =&gt; document
    &#91;contentType&#93; =&gt; text/html
    &#91;pagetitle&#93; =&gt; Главная
    &#91;longtitle&#93; =&gt; MODX Revolution CMS система управления контентом
    &#91;description&#93; =&gt; MODX Revolution уроки Шаблоны MODX Revolution документация на русском статьи. Установка MODX Revolution и последующая настройка. 
    &#91;alias&#93; =&gt; index
    &#91;alias_visible&#93; =&gt; 1
    &#91;link_attributes&#93; =&gt; 
    &#91;published&#93; =&gt; 1
    &#91;pub_date&#93; =&gt; 0
    &#91;unpub_date&#93; =&gt; 0
    &#91;parent&#93; =&gt; 0
    &#91;isfolder&#93; =&gt; 0
    &#91;introtext&#93; =&gt; &lt;h4&gt;
Документация MODX Revolution на русском языке поможет вам в освоении данной системы.&lt;/h4&gt;
&lt;p&gt;&lt;h4&gt;&lt;i&gt;Мы предоставляем бесплатные шаблоны для веб сайтов на MODX Revolution. Наши шаблоны полностью настроены и готовы к немедленной установке через Управление пакетами.&lt;/p&gt;
&lt;p&gt;Кроме шаблонов мы подготовили раздел который называется Быстрый старт. Здесь вы сможете найти готовые сайты. Вам всего лишь потребуется скачать и установить к себе на хостинг любой из понравившихся сайтов, что бы получить готовый к работе проект. Вам останется только наполнить его материалами.&lt;/i&gt;&lt;/h4&gt;&lt;/p&gt;
&lt;p&gt;Посмотрите, что мы подготовили для Вас&lt;/p&gt;

    &#91;content&#93; =&gt; &lt;p&gt;
	Если ваш сайт имеет решающее значение для вашего бизнеса, &lt;strong&gt;&lt;kbd&gt;MODX&lt;/kbd&gt;&lt;/strong&gt; обеспечит силу и творческую свободу. Свобода для дизайнеров, свобода для авторов контента и свободы для вашего сайта, чтобы расти и изменяться вместе с вашим бизнесом.
&lt;/p&gt;&lt;p&gt;
	Используя &lt;mark&gt;MODX&lt;/mark&gt;, разработчики получат настраиваемое ядро, чтобы реализовать любое требование любого масштаба. Будь то многодоменный сайт, мобильный API, или нечто среднее, &lt;strong&gt;&lt;kbd&gt;MODX&lt;/kbd&gt;&lt;/strong&gt; отвечает вашим потребностям сегодня-завтра.
&lt;/p&gt;&lt;p&gt;
	MODX Revolution (Revo) является простой в использование бесплатной системой управлении контентом (CMS), и платформой приложений в одном лице.
&lt;/p&gt;&lt;p&gt;
	Несмотря на безграничные возможности, которые дает нам MODX, вы найдете его интуитивно понятным в работе. 
На каждом шагу, 
	&lt;em&gt;MODX&lt;/em&gt; стремится доставить как можно больше творческой свободы в реализации функционала.
&lt;/p&gt;&lt;p&gt;
	Кроме документации по &lt;strong&gt;&lt;kbd&gt;MODX Revolution&lt;/kbd&gt;&lt;/strong&gt; и дополнениям к нему, Вы так же найдете статьи и руководства, которые помогут вам начать работать с MODX быстро и легко. Основные моменты включают:

&lt;/p&gt;&lt;ul class=&quot;list-unstyled icon-list arrow-right&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.modx.cc/video-uroki/&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;
	&lt;h5&gt;&lt;i class=&quot;fa fa-film&quot;&gt;&lt;/i&gt; Видео-уроки по MODX Revolution&lt;/h5&gt;
	&lt;/a&gt;

	
	&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.modx.cc/templates/&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;
	&lt;h5&gt;&lt;i class=&quot;fa fa-desktop&quot;&gt;&lt;/i&gt; MODX шаблоны&lt;/h5&gt;
	&lt;/a&gt;
	
		
	
	&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.modx.cc/video-uroki/&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;
	&lt;h5&gt;&lt;i class=&quot;fa fa-legal&quot;&gt;&lt;/i&gt; Создание блога на &lt;em&gt;MODX&lt;/em&gt;&lt;/h5&gt;
	&lt;/a&gt;
	
		
	
	&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;	Если у вас есть вопросы относительно этого сайта, материалов размещенных на нем, или какие либо предложения, пожалуйста, сообщите нам об этом.&lt;/p&gt;
    &#91;richtext&#93; =&gt; 1
    &#91;template&#93; =&gt; 138
    &#91;menuindex&#93; =&gt; 1
    &#91;searchable&#93; =&gt; 1
    &#91;cacheable&#93; =&gt; 1
    &#91;createdby&#93; =&gt; 1
    &#91;createdon&#93; =&gt; 1339838002
    &#91;editedby&#93; =&gt; 1
    &#91;editedon&#93; =&gt; 1626018379
    &#91;deleted&#93; =&gt; 0
    &#91;deletedon&#93; =&gt; 0
    &#91;deletedby&#93; =&gt; 0
    &#91;publishedon&#93; =&gt; 0
    &#91;publishedby&#93; =&gt; 0
    &#91;menutitle&#93; =&gt; Главная
    &#91;donthit&#93; =&gt; 0
    &#91;privateweb&#93; =&gt; 0
    &#91;privatemgr&#93; =&gt; 0
    &#91;content_dispo&#93; =&gt; 0
    &#91;hidemenu&#93; =&gt; 0
    &#91;class_key&#93; =&gt; modDocument
    &#91;context_key&#93; =&gt; web
    &#91;content_type&#93; =&gt; 1
    &#91;uri&#93; =&gt; index
    &#91;uri_override&#93; =&gt; 0
    &#91;hide_children_in_tree&#93; =&gt; 0
    &#91;show_in_tree&#93; =&gt; 1
    &#91;properties&#93; =&gt; Array
        (
            &#91;autoredirector&#93; =&gt; Array
                (
                    &#91;old_uri&#93; =&gt; index/
                )

            &#91;ms2gallery&#93; =&gt; Array
                (
                    &#91;media_source&#93; =&gt; 2
                )

            &#91;supercache&#93; =&gt; Array
                (
                    &#91;supercache&#93; =&gt; 1
                )

            &#91;seosuite&#93; =&gt; Array
                (
                    &#91;uri&#93; =&gt; index
                )

        )

    &#91;link&#93; =&gt; 
    &#91;idx&#93; =&gt; 1
)
`&lt;span&gt;—›&lt;/span&gt;`
41Array
(
    &#91;showLog&#93; =&gt; 
    &#91;fastMode&#93; =&gt; 
    &#91;from&#93; =&gt; 0
    &#91;to&#93; =&gt; 
    &#91;customParents&#93; =&gt; 
    &#91;limit&#93; =&gt; 10
    &#91;exclude&#93; =&gt; 
    &#91;outputSeparator&#93; =&gt; &#96;&amp;lt;span&amp;gt;&mdash;&rsaquo;&amp;lt;/span&amp;gt;&#96;
41
    &#91;toPlaceholder&#93; =&gt; 
    &#91;includeTVs&#93; =&gt; 
    &#91;prepareTVs&#93; =&gt; 1
    &#91;processTVs&#93; =&gt; 
    &#91;tvPrefix&#93; =&gt; tv.
    &#91;showUnpublished&#93; =&gt; 
    &#91;showDeleted&#93; =&gt; 
    &#91;showHidden&#93; =&gt; 1
    &#91;hideContainers&#93; =&gt; 
    &#91;tpl&#93; =&gt; &#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;&#91;&#91;+link&#93;&#93;&quot;&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplCurrent&#93; =&gt; &#96;@INLINE &amp;lt;li class=&quot;category13&quot;&amp;gt;&amp;lt;strong&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/strong&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplMax&#93; =&gt; @INLINE &lt;li class=&quot;breadcrumb-item disabled&quot;&gt;&amp;nbsp;...&amp;nbsp;&lt;/li&gt;
    &#91;tplHome&#93; =&gt; &#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;/&quot;&amp;gt;Главная&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplWrapper&#93; =&gt; &#96;@INLINE  &amp;lt;ul&amp;gt;&#91;&#91;+output&#93;&#93;&amp;lt;/ul&amp;gt;&#96;
41
    &#91;wrapIfEmpty&#93; =&gt; 
    &#91;showCurrent&#93; =&gt; 1
    &#91;showHome&#93; =&gt; 1
    &#91;showAtHome&#93; =&gt; 1
    &#91;hideSingle&#93; =&gt; 
    &#91;direction&#93; =&gt; ltr
    &#91;scheme&#93; =&gt; 
    &#91;useWeblinkUrl&#93; =&gt; 1
    &#91;id&#93; =&gt; 615
    &#91;type&#93; =&gt; document
    &#91;contentType&#93; =&gt; text/html
    &#91;pagetitle&#93; =&gt; Видео уроки
    &#91;longtitle&#93; =&gt; MODX уроки, MODX Revo видео уроки
    &#91;description&#93; =&gt; Видео-уроки по работе с CMF MODX Revolution для новичков. В данных уроках вы узнаете как установить MODX на хостинг, как натянуть шаблон, что такое чанки и для чего они нужны. По мере возможностей раздел будет пополняться. 
    &#91;alias&#93; =&gt; video-uroki
    &#91;alias_visible&#93; =&gt; 1
    &#91;link_attributes&#93; =&gt; 
    &#91;published&#93; =&gt; 1
    &#91;pub_date&#93; =&gt; 0
    &#91;unpub_date&#93; =&gt; 0
    &#91;parent&#93; =&gt; 0
    &#91;isfolder&#93; =&gt; 1
    &#91;introtext&#93; =&gt; 
    &#91;content&#93; =&gt; &lt;div id=&quot;pdopage&quot;&gt;
	&lt;div class=&quot;rows&quot;&gt;
&#91;&#91;!pdoPage? &amp;tpl=&#96;video_tpl&#96; &amp;limit=&#96;12&#96;&amp;includeTVs=&#96;image&#96;  &amp;ajax=&#96;1&#96; &amp;ajaxMode=&#96;default&#96;&#93;&#93;
    &lt;/div&gt;
 &lt;div class=&quot;clearfix&quot;&gt; &lt;/div&gt;
 &lt;div class=&quot;clearfix&quot;&gt; &lt;/div&gt;
&lt;ul class=&quot;pagination-custom list-unstyled list-inline text-center&quot;&gt;
    
    &#91;&#91;!+page.nav&#93;&#93;

&lt;/ul&gt;
&lt;/div&gt;
    &#91;richtext&#93; =&gt; 0
    &#91;template&#93; =&gt; 139
    &#91;menuindex&#93; =&gt; 7
    &#91;searchable&#93; =&gt; 1
    &#91;cacheable&#93; =&gt; 1
    &#91;createdby&#93; =&gt; 1
    &#91;createdon&#93; =&gt; 1389806766
    &#91;editedby&#93; =&gt; 1
    &#91;editedon&#93; =&gt; 1612544042
    &#91;deleted&#93; =&gt; 0
    &#91;deletedon&#93; =&gt; 0
    &#91;deletedby&#93; =&gt; 0
    &#91;publishedon&#93; =&gt; 1389806760
    &#91;publishedby&#93; =&gt; 1
    &#91;menutitle&#93; =&gt; Видео уроки
    &#91;donthit&#93; =&gt; 0
    &#91;privateweb&#93; =&gt; 0
    &#91;privatemgr&#93; =&gt; 0
    &#91;content_dispo&#93; =&gt; 0
    &#91;hidemenu&#93; =&gt; 0
    &#91;class_key&#93; =&gt; CollectionContainer
    &#91;context_key&#93; =&gt; web
    &#91;content_type&#93; =&gt; 1
    &#91;uri&#93; =&gt; video-uroki/
    &#91;uri_override&#93; =&gt; 0
    &#91;hide_children_in_tree&#93; =&gt; 0
    &#91;show_in_tree&#93; =&gt; 1
    &#91;properties&#93; =&gt; Array
        (
            &#91;tickets&#93; =&gt; Array
                (
                    &#91;template&#93; =&gt; 55
                    &#91;uri&#93; =&gt; %alias/
                    &#91;show_in_tree&#93; =&gt; 
                    &#91;hidemenu&#93; =&gt; 0
                    &#91;disable_jevix&#93; =&gt; 1
                    &#91;process_tags&#93; =&gt; 
                )

            &#91;ratings&#93; =&gt; Array
                (
                    &#91;ticket&#93; =&gt; 10
                    &#91;comment&#93; =&gt; 1
                    &#91;view&#93; =&gt; 0.1
                    &#91;vote_ticket&#93; =&gt; 1
                    &#91;star_ticket&#93; =&gt; 3
                    &#91;vote_comment&#93; =&gt; 0.2
                    &#91;star_comment&#93; =&gt; 0.6
                    &#91;min_ticket_create&#93; =&gt; 
                    &#91;days_ticket_vote&#93; =&gt; 
                    &#91;min_comment_create&#93; =&gt; 
                    &#91;days_comment_vote&#93; =&gt; 
                )

            &#91;autoredirector&#93; =&gt; Array
                (
                    &#91;old_uri&#93; =&gt; video-uroki/
                )

        )

    &#91;link&#93; =&gt; video-uroki/
    &#91;idx&#93; =&gt; 2
)
`&lt;span&gt;—›&lt;/span&gt;`
41Array
(
    &#91;showLog&#93; =&gt; 
    &#91;fastMode&#93; =&gt; 
    &#91;from&#93; =&gt; 0
    &#91;to&#93; =&gt; 
    &#91;customParents&#93; =&gt; 
    &#91;limit&#93; =&gt; 10
    &#91;exclude&#93; =&gt; 
    &#91;outputSeparator&#93; =&gt; &#96;&amp;lt;span&amp;gt;&mdash;&rsaquo;&amp;lt;/span&amp;gt;&#96;
41
    &#91;toPlaceholder&#93; =&gt; 
    &#91;includeTVs&#93; =&gt; 
    &#91;prepareTVs&#93; =&gt; 1
    &#91;processTVs&#93; =&gt; 
    &#91;tvPrefix&#93; =&gt; tv.
    &#91;showUnpublished&#93; =&gt; 
    &#91;showDeleted&#93; =&gt; 
    &#91;showHidden&#93; =&gt; 1
    &#91;hideContainers&#93; =&gt; 
    &#91;tpl&#93; =&gt; &#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;&#91;&#91;+link&#93;&#93;&quot;&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplCurrent&#93; =&gt; &#96;@INLINE &amp;lt;li class=&quot;category13&quot;&amp;gt;&amp;lt;strong&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/strong&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplMax&#93; =&gt; @INLINE &lt;li class=&quot;breadcrumb-item disabled&quot;&gt;&amp;nbsp;...&amp;nbsp;&lt;/li&gt;
    &#91;tplHome&#93; =&gt; &#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;/&quot;&amp;gt;Главная&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41
    &#91;tplWrapper&#93; =&gt; &#96;@INLINE  &amp;lt;ul&amp;gt;&#91;&#91;+output&#93;&#93;&amp;lt;/ul&amp;gt;&#96;
41
    &#91;wrapIfEmpty&#93; =&gt; 
    &#91;showCurrent&#93; =&gt; 1
    &#91;showHome&#93; =&gt; 1
    &#91;showAtHome&#93; =&gt; 1
    &#91;hideSingle&#93; =&gt; 
    &#91;direction&#93; =&gt; ltr
    &#91;scheme&#93; =&gt; 
    &#91;useWeblinkUrl&#93; =&gt; 1
    &#91;id&#93; =&gt; 1511
    &#91;type&#93; =&gt; document
    &#91;contentType&#93; =&gt; text/html
    &#91;pagetitle&#93; =&gt; 15 Фильтр товаров MODX Revolution 2
    &#91;longtitle&#93; =&gt; Фильтр товаров на странице каталога MODX Revolution часть 2
    &#91;description&#93; =&gt; Фильтр товаров на странице каталога MODX Revolution часть 2
    &#91;alias&#93; =&gt; 5-filtr-tovarov-modx-revolution-2
    &#91;alias_visible&#93; =&gt; 1
    &#91;link_attributes&#93; =&gt; 
    &#91;published&#93; =&gt; 1
    &#91;pub_date&#93; =&gt; 0
    &#91;unpub_date&#93; =&gt; 0
    &#91;parent&#93; =&gt; 615
    &#91;isfolder&#93; =&gt; 0
    &#91;introtext&#93; =&gt; 
    &#91;content&#93; =&gt; &lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/MJZ8SW1qGoY&quot; allowfullscreen=&quot;&quot; width=&quot;680&quot; height=&quot;420&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;p&gt;15 урок по разработке интернет магазина на MODX Revolution&lt;/p&gt;&lt;p&gt;Реализация фильтра товаров на странице каталога MODX Revo&lt;/p&gt;&lt;p&gt;Для просмотра видео используйте пароль &lt;strong&gt;mini2shop&lt;/strong&gt;&lt;/p&gt;&lt;hr class=&quot;vertical-spacer vertical-spacer-lg&quot;&gt;&lt;h5 class=&quot;panel-title&quot;&gt; &lt;a class=&quot;collapsed&quot; data-toggle=&quot;collapse&quot; data-parent=&quot;#accordion&quot; href=&quot;#collapseTwo&quot; rel=&quot;nofollow&quot;&gt; Чанк Products &lt;/a&gt; &lt;/h5&gt;&lt;!--/.panel-heading --&gt;&lt;pre&gt;                      
&amp;lt;code&amp;gt; &amp;lt;li class=&quot;item col-lg-4 col-md-3 col-sm-4 col-xs-12 ms2_product&quot;&amp;gt;&amp;lt;form method=&quot;post&quot; class=&quot;ms2_form&quot;&amp;gt;
                  &amp;lt;div class=&quot;item-inner&quot;&amp;gt;
                    &amp;lt;div class=&quot;product-block&quot;&amp;gt;
                        &amp;lt;div class=&quot;product-image&quot;&amp;gt; &amp;lt;a href=&quot;&#91;&#91;~&#91;&#91;+id&#93;&#93;&#93;&#93;&quot;&amp;gt;
                          &amp;lt;figure class=&quot;product-display&quot;&amp;gt;
&#91;&#91;+new&#93;&#93; &#91;&#91;+popular&#93;&#93; &#91;&#91;+favorite&#93;&#93;
                           
                            &amp;lt;img src=&quot;&#91;&#91;+thumb:default=&#96;&#91;&#91;++assets_url&#93;&#93;components/minishop2/img/web/ms2_small.png&amp;zc=1&#96;&#93;&#93;&quot; class=&quot;lazyOwl product-mainpic&quot; alt=&quot;&#91;&#91;+pagetitle&#93;&#93;&quot; style=&quot;display: block;&quot;&amp;gt; 
&amp;lt;img class=&quot;product-secondpic&quot; alt=&quot;&#91;&#91;+pagetitle&#93;&#93;&quot; src=&quot;&#91;&#91;+thumb:default=&#96;&#91;&#91;++assets_url&#93;&#93;components/minishop2/img/web/ms2_small.png&#96;&#93;&#93;&quot;&amp;gt; 

    &amp;lt;/figure&amp;gt;
                      &amp;lt;/a&amp;gt; &amp;lt;/div&amp;gt;
                        &amp;lt;div class=&quot;product-meta&quot;&amp;gt;
                          &amp;lt;div class=&quot;product-action&quot;&amp;gt; 
                          &amp;lt;button class=&quot;addcart btn btn-link&quot; type=&quot;submit&quot; name=&quot;ms2_action&quot; value=&quot;cart/add&quot;&amp;gt;&amp;lt;i class=&quot;icon-shopping-cart&quot;&amp;gt; &amp;lt;/i&amp;gt;  &#91;&#91;%ms2_frontend_add_to_cart&#93;&#93;&amp;lt;/button&amp;gt;
414141&amp;lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&#91;&#91;+id&#93;&#93;&quot;&amp;gt;
414141&amp;lt;input type=&quot;hidden&quot; name=&quot;count&quot; value=&quot;1&quot;&amp;gt;
414141&amp;lt;input type=&quot;hidden&quot; name=&quot;options&quot; value=&quot;&#91;&#93;&quot;&amp;gt;
                                              
          &amp;lt;/div&amp;gt;
                        &amp;lt;/div&amp;gt;
                      &amp;lt;/div&amp;gt;

                    &amp;lt;div class=&quot;item-info&quot;&amp;gt;
                      &amp;lt;div class=&quot;info-inner&quot;&amp;gt;

                        &amp;lt;div class=&quot;item-title&quot;&amp;gt; &amp;lt;a href=&quot;&#91;&#91;~&#91;&#91;+id&#93;&#93;&#93;&#93;&quot; title=&quot;&#91;&#91;+pagetitle&#93;&#93;&quot;&amp;gt; &#91;&#91;+pagetitle&#93;&#93;&amp;lt;/a&amp;gt; &amp;lt;/div&amp;gt;
                        &amp;lt;div class=&quot;item-content&quot;&amp;gt;
                          
                          &amp;lt;div class=&quot;item-price&quot;&amp;gt;
                    &amp;lt;div class=&quot;price-box&quot;&amp;gt; &amp;lt;span class=&quot;regular-price&quot; &amp;gt;&amp;lt;span class=&quot;price&quot;&amp;gt;&#91;&#91;+old_price&#93;&#93; &amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt;
                            &amp;lt;div class=&quot;price-box&quot;&amp;gt; &amp;lt;span class=&quot;regular-price&quot; &amp;gt; &amp;lt;span class=&quot;price&quot;&amp;gt;&#91;&#91;+price&#93;&#93; &#91;&#91;%ms2_frontend_currency&#93;&#93;&amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt;
         
                          &amp;lt;/div&amp;gt;
                       
                          
414141414141  &amp;lt;div class=&quot;rating&quot;&amp;gt;
414141414141      


  


                          &amp;lt;/div&amp;gt;
                        &amp;lt;/div&amp;gt;
                      &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;
                  &amp;lt;/div&amp;gt;&amp;lt;/form&amp;gt;
                  
                &amp;lt;/li&amp;gt;

  
&amp;lt;!--minishop2_popular &amp;lt;div class=&quot;sale-label sale-top-left&quot;&amp;gt;TOP&amp;lt;/div&amp;gt;--&amp;gt;
&amp;lt;!--minishop2_new &amp;lt;div class=&quot;new-label new-top-right&quot;&amp;gt;NEW&amp;lt;/div&amp;gt;--&amp;gt;
&amp;lt;!--minishop2_favorite &amp;lt;i class=&quot;glyphicon glyphicon-bookmark&quot; title=&quot;&#91;&#91;%ms2_frontend_favorite&#93;&#93;&quot;&amp;gt;&amp;lt;/i&amp;gt;--&amp;gt;
&amp;lt;!--minishop2_old_price &amp;lt;span class=&quot;old_price&quot;&amp;gt;&#91;&#91;+old_price&#93;&#93; &#91;&#91;%ms2_frontend_currency&#93;&#93;&amp;lt;/span&amp;gt;--&amp;gt;&amp;lt;/code&amp;gt;&lt;/pre&gt;&lt;!--/.panel-body --&gt; &lt;!--/.panel-collapse --&gt; &lt;!-- /.panel --&gt;&lt;h5 class=&quot;panel-title&quot;&gt; &lt;a class=&quot;collapsed&quot; data-toggle=&quot;collapse&quot; data-parent=&quot;#accordion&quot; href=&quot;#collapseThree&quot; rel=&quot;nofollow&quot;&gt; Шаблон Каталог  &lt;/a&gt; &lt;/h5&gt;&lt;!--/.panel-heading --&gt;&lt;pre&gt;&amp;lt;code&amp;gt; &amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;
&#91;&#91;!MetaX? &amp;tpl=&#96;HeadTovar&#96;&#93;&#93;
&amp;lt;body&amp;gt;
&amp;lt;div class=&quot;page&quot;&amp;gt;
  &amp;lt;!-- Header --&amp;gt;
  &#91;&#91;$Header&#93;&#93;
  &amp;lt;!-- end nav --&amp;gt;
  
  &amp;lt;!-- breadcrumbs --&amp;gt;
  &amp;lt;div class=&quot;breadcrumbs&quot;&amp;gt;
    &amp;lt;div class=&quot;container&quot;&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
         &#91;&#91;pdoCrumbs?
41&amp;tplWrapper=&#96;@INLINE  &amp;lt;ul&amp;gt;&#91;&#91;+output&#93;&#93;&amp;lt;/ul&amp;gt;&#96;
41&amp;tpl=&#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;&#91;&#91;+link&#93;&#93;&quot;&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41&amp;outputSeparator=&#96;&amp;lt;span&amp;gt;&mdash;&rsaquo;&amp;lt;/span&amp;gt;&#96;
41&amp;tplCurrent=&#96;@INLINE &amp;lt;li class=&quot;category13&quot;&amp;gt;&amp;lt;strong&amp;gt;&#91;&#91;+menutitle&#93;&#93;&amp;lt;/strong&amp;gt;&amp;lt;/li&amp;gt;&#96;
41&amp;tplHome=&#96;@INLINE  &amp;lt;li class=&quot;home&quot;&amp;gt;&amp;lt;a href=&quot;/&quot;&amp;gt;Главная&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&#96;
41&amp;showHome=&#96;1&#96;
&#93;&#93;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;!-- End breadcrumbs --&amp;gt; 
  &amp;lt;!-- Two columns content --&amp;gt;
  &amp;lt;div class=&quot;main-container col2-left-layout&quot;&amp;gt;
    &amp;lt;div class=&quot;main container&quot;&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        
        &#91;&#91;!mFilter2?
&amp;parents=&#96;&#91;&#91;*id&#93;&#93;&#96;
&amp;element=&#96;msProducts&#96;
&amp;class=&#96;msProduct&#96;
&amp;tpl=&#96;Products&#96;
&amp;filters=&#96;
ms|price:number,
msoption|color:color,
msoption|size:size,
ms|country:country,
tv|rost:rost
&#96;
 &amp;aliases=&#96;
        ms|price==price,
        resource|parent==parent,
    &#96;
&amp;tplFilter.outer.default=&#96;mFilter2.filter.outer&#96;
&amp;tplFilter.row.default=&#96;mFilter2.filter.checkbox&#96;
&amp;tplOuter=&#96;mFilter2.outer&#96;
&amp;tplFilter.outer.price=&#96;tpl.mFilter2.filter.slider&#96;
 &amp;tplFilter.row.price=&#96;tpl.mFilter2.filter.number&#96;
&#93;&#93;
          
 


   
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;!-- End Two columns content --&amp;gt; 
  
  &amp;lt;!-- Footer --&amp;gt;
&#91;&#91;$Footer&#93;&#93;
  &amp;lt;!-- End Footer --&amp;gt;
&amp;lt;/div&amp;gt;
&#91;&#91;$Help&#93;&#93;
&#91;&#91;$ScriptTovar&#93;&#93;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&amp;lt;/code&amp;gt; &lt;/pre&gt;&lt;!--/.panel-body --&gt; &lt;!--/.panel-collapse --&gt; &lt;!-- /.panel --&gt;&lt;!-- /.panel-group --&gt;
    &#91;richtext&#93; =&gt; 1
    &#91;template&#93; =&gt; 140
    &#91;menuindex&#93; =&gt; 47
    &#91;searchable&#93; =&gt; 1
    &#91;cacheable&#93; =&gt; 1
    &#91;createdby&#93; =&gt; 1
    &#91;createdon&#93; =&gt; 1456991820
    &#91;editedby&#93; =&gt; 1
    &#91;editedon&#93; =&gt; 1613478007
    &#91;deleted&#93; =&gt; 0
    &#91;deletedon&#93; =&gt; 0
    &#91;deletedby&#93; =&gt; 0
    &#91;publishedon&#93; =&gt; 1456991820
    &#91;publishedby&#93; =&gt; 1
    &#91;menutitle&#93; =&gt; 15 Фильтр товаров MODX Revolution 2
    &#91;donthit&#93; =&gt; 0
    &#91;privateweb&#93; =&gt; 0
    &#91;privatemgr&#93; =&gt; 0
    &#91;content_dispo&#93; =&gt; 0
    &#91;hidemenu&#93; =&gt; 1
    &#91;class_key&#93; =&gt; modDocument
    &#91;context_key&#93; =&gt; web
    &#91;content_type&#93; =&gt; 1
    &#91;uri&#93; =&gt; video-uroki/5-filtr-tovarov-modx-revolution-2/
    &#91;uri_override&#93; =&gt; 1
    &#91;hide_children_in_tree&#93; =&gt; 0
    &#91;show_in_tree&#93; =&gt; 0
    &#91;properties&#93; =&gt; Array
        (
            &#91;tickets&#93; =&gt; Array
                (
                    &#91;disable_jevix&#93; =&gt; 1
                    &#91;process_tags&#93; =&gt; 
                )

            &#91;ms2gallery&#93; =&gt; Array
                (
                    &#91;media_source&#93; =&gt; 2
                )

        )

    &#91;link&#93; =&gt; video-uroki/5-filtr-tovarov-modx-revolution-2/
    &#91;idx&#93; =&gt; 3
)

)

      </div>
    </div>
  </div>
  <!-- End breadcrumbs --> 
  <!-- Two columns content -->
  <div>
    <div>
      <div>
        
        [[!mFilter2?
&parents=`1511`
&element=`msProducts`
&class=`msProduct`
&tpl=`Products`
&filters=`
ms|price:number,
msoption|color:color,
msoption|size:size,
ms|country:country,
tv|rost:rost
`
 &aliases=`
        ms|price==price,
        resource|parent==parent,
    `
&tplFilter.outer.default=`mFilter2.filter.outer`
&tplFilter.row.default=`mFilter2.filter.checkbox`
&tplOuter=`mFilter2.outer`
&tplFilter.outer.price=`tpl.mFilter2.filter.slider`
 &tplFilter.row.price=`tpl.mFilter2.filter.number`
]]
          
 


   
      </div>
    </div>
  </div>
  <!-- End Two columns content --> 
  
  <!-- Footer -->
[[$Footer]]
  <!-- End Footer -->
</div>
[[$Help]]
[[$ScriptTovar]]
</body>
</html></code> 

Open Source документация для MODX Revolution

Хочу представить вам новый проект по ведению открытой документации для MODX Revolution.

Зачем?

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

Официальная документация на русском не ведётся. Не знаю, как сейчас, но год назад у них просто не сохранялась кириллица.

Почему не сделать это на сайте n или z?

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

Например, я пробовал писать про свои дополнения на официальном сайте, а потом они его переделали, и мой логин пароль больше не подходит. Просто зарегистрироваться нельзя — нужно получать их через письмо в поддержку. Конечно, повторно это делать нет желания.

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

И что ты предлагаешь?

Очень просто — нужно вести документацию в GitHub, в общеизвестном формате Markdown.

Такая система гарантирует нам:

  • Сохранность всех текстов. Каждый человек может скопировать репозиторий и разместить у себя.
  • История изменений. Все правки как на ладони, видно кто и что написал.
  • Независимость. Вы можете писать о любой теме, касающейся MODX, на любом языке. И вам не нужно просить для этого доступ — достаточно иметь аккаунт на GitHub.

Идея не новая, и подсмотрел я её у проекта daux.io. Это PHP скрипт, который генерирует сайт по готовым файлам markdown.
Он очень простой, и позволяет запустить свой сайт с документацией, не обладая вообще никакими навыками, на любом хостинге. Однако, на мой взгляд, у него есть несколько недостатков (которые являются продолжением достоинств).

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

Так что, для показа нашей документации я использовал любимую систему — MODX.

Как работает?

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

Это даёт:

  • Кэширование. Все документы будут загружаться из кэша, и не нужно каждый раз шерстить все файлы документации.
  • Управление url документов — их можно перемещать и не терять при этом переходы из поисковиков.
  • Возможность организовать поиск на сайте.
  • Удобная работа с языковыми версиями. Их может быть сколько угодно.

Вёрстку я набросал на Bootstrap 3, чтобы было удобно читать с телефонов и планшетов. Для работы используются:

  • pdoTools — вывод соседних документов, всех меню и хлебных крошек.
  • mSearch3 — морфологический поиск.
  • DateAgo — приятное форматировние дат
  • yTranslit — генерация url страниц через переводы Яндекс.
  • MinifyX — склейка и сжатие скриптов и стилей, для быстрой загрузки страниц.
  • Markdown — новый сниппет для вывода текстов в этом формате. Написал специально для этого проекта.

Еще раз напоминаю, что эта документация никому не принадлежит. Я сделал свою версию сайта для её вывода, а вы можете склонировать репозиторий и запустить его на том же daux.io — структура директорий и файлов совместима.

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

Ссылки

Репозиторий документации на Gitub.
Сайт с выводом этой документации.
Готовый сниппет Markdown.
Наш репозиторий с дополнениями, на которых работает сайт.

Планы на будущее: разработка простенького API, для интеграции текстов на другие сайты и (возможно) сокращалка url.

Автор: bezumkin

Источник

Документация по

MODX | Документация MODX

Обзор¶

MODX Revolution (Revo) — это простая в использовании система управления контентом (CMS) и Application Framework в одном лице. Несмотря на безграничные возможности, которые предоставляет MODX, мы думаем, что вы найдете его интуитивно понятным в работе. На каждом этапе MODX стремится предоставить свободу творчества.

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

Опытные профессионалы MODX и варианты коммерческой поддержки при поддержке поставщиков также доступны, так что независимо от ваших потребностей и требований — все готово.

Начало работы¶

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

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

MODX Revolution¶

Revolution — это флагманский фреймворк CMS и приложений MODX, любовно названный «Revo». Если вы новичок в MODX, начните здесь.

Быстрые ссылки¶

Другие ресурсы¶

Дополнительно¶

MODX Extras расширяют основные функции программного обеспечения MODX. Другие CMS называют их «Плагины» или «Модули». Многие дополнения разрабатываются основной командой MODX, а другие — третьими сторонами. Хотя это ни в коем случае не исчерпывающий справочник, здесь задокументировано большинство самых популярных дополнений.

xPDO — это объектно-реляционный мост (ORB), на котором работает MODX. Если вы знаете, что это значит, или любите приключения, вам подойдет следующее:

Быстрые ссылки¶

Другие ресурсы¶

Руководство для авторов¶

Любите MODX? Узнайте, как принять участие в сообществе и внести свой вклад в проект с открытым исходным кодом.

А как насчет MODX Evolution? ¶

Evolution — это классическая кодовая база MODX — оригинальная версия, выпущенная в 2005 году. С апреля 2017 года Evolution официально является отдельным проектом, больше не находящимся под крылом MODX.Это означает, что у Evolution есть собственное руководство, процессы и сообщество.

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

Дополнения MODX — Дополнения MODX

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

Где найти Дополнительно¶

Официальный источник дополнений — MODX.com . Вы можете просматривать сотни (бесплатных) дополнений, и каждая установка MODX уже настроена для загрузки и установки дополнений с MODX.com через менеджер пакетов.

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

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

Часто используемые Дополнительно

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

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

Навигация и контент¶

  • pdoTools — это набор полезных фрагментов, которые призваны стать современной (и в основном заменяемой) заменой более старых (но все еще поддерживаемых) дополнений:

    • pdoResources — это эквивалент getResources, который можно использовать для вывода списка ресурсов.Их также можно использовать для RSS-канала или создания файлов Sitemap.
    • pdoMenu — это эквивалент Wayfinder, который используется для создания (многоуровневых) меню из вашего дерева ресурсов.
    • pdoPage является эквивалентом getPage, который обертывает сниппеты, такие как getResources / pdoResources, с возможностью разбивки на страницы
    • pdoCrumbs можно использовать аналогично Breadcrumbs для создания цепочки хлебных крошек текущего ресурса.
  • getResourceField, pdoField или fastField получают одно поле ресурса.
  • AdvSearch, SimpleSearch или mSearch3 (дополнительный премиум от modstore) добавить функцию поиска на свой сайт
  • Коллекции используются для большого количества ресурсов, таких как блоги или списки продуктов, и будут перечислять дочерние ресурсы в сетке вместо дерева
  • NewsPublisher позволяет пользователям создавать ресурсы в интерфейсе без необходимости доступа к MODX Manager (включает редактирование форматированного текста и браузер файлов / изображений).

Форматированный текст / редактирование кода¶

  • TinyMCE RTE — это редактор форматированного текста, основанный на TinyMCE 4.(Пакет, называемый просто TinyMCE, использует более старую версию TinyMCE 3)
  • TinymceWrapper — это реализация TinyMCE, использующая последнюю версию от CDN.
  • Redactor (дополнительная опция от modmore) — это интеграция Redactor с MODX.
  • CKEditor интегрирует CKEditor RTE в MODX.
  • Ace позволяет редактировать код ваших элементов в менеджере.

Медиа¶

  • Галерея может быть использована для добавления альбомов изображений на ваш сайт
  • MoreGallery (дополнительная опция от modmore) для управления галереями изображений и видео (YouTube / Vimeo), реализованная как специальный тип ресурса

Формы¶

  • FormIt является стандартом при отправке форм
  • Formalicious (дополнительная возможность доступна в modmore и modstore) — конструктор форм, основанный на FormIt
  • SPForm простая, защищенная от спама контактная форма

Мультисайтовый, многоязычный, мультидоменный, контексты¶

  • xRouting — это гибкий контекстный маршрутизатор, который поддерживает (под) домены и каталоги с минимальной конфигурацией
  • LangRouter — это маршрутизатор контекста, который выбирает контекст на основе языка посетителей
  • Babel используется для соединения переводов в разных контекстах

Электронная коммерция¶

  • MiniShop2 — это мощное решение для электронной коммерции с открытым исходным кодом, со многими (платными и бесплатными) расширениями, доступными в основном в modstore
  • .

  • Commerce — это мощное решение для электронной коммерции премиум-класса от Modmore
  • SimpleCart — это более простое решение для электронной коммерции премиум-класса, изначально созданное OostDesign, теперь доступное по адресу modmore
  • .

пользователей

  • Вход — это набор инструментов, которые помогут вам интегрировать функциональность внешнего интерфейса пользователя, включая логин и профили.
  • HybridAuth может использоваться, чтобы пользователи могли входить в систему через социальные службы.
  • Personalize может отображать разные фрагменты в зависимости от того, вошел пользователь в систему или нет

Ведение блога¶

  • Коллекции для перечисления дочерних ресурсов в сетке в диспетчере (вместо дерева ресурсов)
  • Quip или билеты для добавления функции комментирования
  • Tagger для добавления тегов, вы можете фильтровать и искать сообщения по

Управление версиями и рабочий процесс¶

  • VersionX сохраняет копии изменений в ваших ресурсах и элементах для легкого восстановления.
  • Предварительный просмотр и рабочий процесс (дополнительные возможности от Extras.io) обеспечивают предварительный просмотр и рабочие процессы публикации.
  • MagicPreview (бесплатное дополнение от modmore) дает вам кнопку предварительного просмотра, которая позволяет вам видеть изменения ваших ресурсов без необходимости сохранения изменений.
  • StageCoach позволяет поэтапно вносить изменения страниц, чтобы они были применены в будущем.

Инструменты разработки¶

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

Диагностические инструменты¶

  • SiteCheck (дополнительная услуга от Боба Рэя) выполняет тысячи проверок целостности вашего сайта.

Обновление MODX¶

  • UpgradeMODX позволяет обновлять MODX Revolution из Менеджера MODX.
  • GoRevo (дополнительная услуга от Боба Рэя) предоставляет инструмент для перехода с MODX Evolution на MODX Revolution.

Распространение собственных дополнительных услуг¶

Перейдите на https://modx.com/extras/, войдите в свою учетную запись MODX (или создайте ее), затем нажмите кнопку внизу, чтобы «Отправить дополнительный».

Здесь вы можете загрузить транспортный пакет MODX. Это особый вид zip-файла, который обеспечивает правильную установку вашего дополнения и всех его компонентов в целевой системе. Чтобы сделать его, вам нужно создать скрипт сборки.

Все дополнения, размещенные на MODX.com, проходят базовую проверку; Обработка заявки может занять несколько дней.

Многоязычный сайт с migxMultiLang — Уроки

Введение¶

migxMultiLang — это дополнение, которое позволяет довольно легко создавать многоязычный веб-сайт без необходимости использования дополнительных контекстов или настройки файла .htaccess.

Он был написан Бруно Пернером, и его документацию можно найти по адресу https://github.com/Bruno17/migxmultilang. Это руководство представляет собой попытку подробно описать начальную базовую настройку migxMultiLang со скриншотами процесса.

Спасибо Бруно Пернеру и Сьюзан Оттуэлл за то, что помогли мне сначала разобраться с этим!

Требования¶

migxMultiLang построен на дополнительных компонентах MIGX и pdoTools и требует, чтобы оба были установлены для работы. Скриншоты в этом руководстве показывают MODX Revolution 2.3.2, однако он также будет работать с предыдущими версиями. В этом руководстве также предполагается, что у вас есть свежая рабочая установка MODX.

Также имейте в виду, что для работы этого дополнения необходимо включить дружественные URL-адреса!

Шаг 1. Установка дополнительных компонентов¶

Щелкните «Установщик» в меню «Дополнительно» вверху.

Щелкните кнопку «Загрузить дополнительные материалы».

Искать и скачать:

  • Мигкс
  • pdotools
  • migxmultilang

Установите их все, оставив migxMultiLang напоследок.

При установке migxMultiLang вас спросят, хотите ли вы разместить его на верхней панели навигации или в раскрывающемся меню «Дополнительно». См. Снимок экрана ниже. Это полностью зависит от ваших личных предпочтений и может быть легко изменено позже в панели управления MODX ‘Menus’, если вы передумаете.

Если вы выбрали установку migxMultiLang в меню «Дополнительно», вы должны увидеть его, когда откроете меню сейчас.

Шаг 2. Добавьте ваши языки¶

Выберите migxMultiLang в меню «Дополнительно» (или на верхней панели навигации, если вы решили разместить ее там).

Вы увидите страницу с тремя вкладками вверху. Первая вкладка — это «Языки», и именно здесь мы хотим быть.

Щелкните по кнопке «Добавить язык». Мы сделаем это дважды, потому что в этом уроке мы будем использовать только два языка, однако теоретически вы можете использовать столько, сколько захотите.

При нажатии кнопки «Добавить язык» открывается окно MIGx с тремя полями: «Язык», «Ключ языка» и «Направление языка».

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

Второе поле содержит языковой ключ, который migxMultiLang будет использовать для переключения языков. Мы введем «en» в качестве ключа.

Английский идет слева направо, поэтому в третьем поле можно оставить «ltr».

Нажмите кнопку «Готово» внизу, чтобы сохранить и закрыть окно.

Теперь мы повторим процесс добавления второго языка.

Снова нажмите кнопку «Добавить язык», откроется то же окно.

На этот раз добавим китайский. (Или на любом другом языке, который вам нравится)

В поле «Язык» введите 中文. (Скопируйте и вставьте отсюда китайские иероглифы или просто напишите вместо этого «китайский»)

В поле Lang Key введите «zh».

Оставьте поле Lang Direction «ltr».

Снова нажмите кнопку «Готово», чтобы сохранить и закрыть окно.

На вкладке «Языки» вы увидите недавно добавленные языки.

Шаг 3. Создание переменных шаблона¶

Мы закончили с вкладкой «Языки».

Щелкните вкладку «Диспетчер форм» вверху, а затем нажмите кнопку «Импорт конфигураций».

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

Нажмите кнопку «Редактировать», так как нам нужно внести некоторые изменения в конфигурацию.

При нажатии на кнопку «Редактировать» откроется окно с двумя вкладками: «Форма» и «Настройки».

Щелкните вкладку «Настройки» и установите флажок «Использовать как вкладки форм по умолчанию для всех других шаблонов».

Щелкните Готово, окно должно сохраниться и закрываться.

Теперь, когда мы изменили конфигурацию, нам нужно создать телевизоры.

Щелкните по кнопке «Create TVs», которая находится прямо рядом с кнопкой Edit, которую мы нажимали ранее.

Если вы теперь посмотрите на раздел Template Variables в вашем дереве элементов, вы увидите только что созданные телевизоры.

  • ммl_content
  • ммl_introtext
  • ммl_longtitle
  • ммl_menutitle
  • ммl_pagetitle

Это версии migxMultiLang типичных полей ресурса.

Теперь нам нужно создать главную переменную шаблона перевода.

Сначала создайте новую категорию, щелкнув значок «Новая категория» в верхней части дерева элементов.

Появится окно новой категории. Назовите его «Переводы» и нажмите кнопку «Сохранить».

Теперь щелкните значок «Новый телевизор» в верхней части дерева элементов, и откроется новая страница.

Введите следующую информацию в отображаемые поля.

Имя — переводы

Caption — Переводы

Описание — введите здесь переводы для этого ресурса:

Категория

— Переводы

После ввода этой информации щелкните вкладку «Параметры ввода» вверху.

Тип ввода должен быть:

migxdb

Конфигурации должны быть:

  mml_translations: migxmultilang, mml_translate: migxmultilang
  

Хорошо, мы почти закончили. Теперь щелкните вкладку «Доступ к шаблону» вверху.

Установите флажок в столбце «Доступ» для BaseTemplate.

Теперь нажмите кнопку «Сохранить» вверху справа.

Теперь перейдите к дереву ресурсов и выберите ресурс с помощью BaseTemplate.В нашем случае у нас есть только Домашний ресурс.

Выберите вкладку Template Variable на ресурсе, и вы увидите только что созданный телевизор.

Переводы пока не работают, нам еще нужно сделать несколько вещей.

Шаг 4: Системные настройки¶

Войдите в системные настройки MODX. Для тех, кто не знает, вы можете найти его в правом верхнем углу экрана в раскрывающемся меню со значком шестеренки.

Выберите pdotools из выпадающего списка, и вы увидите две настройки.

Имеется настройка с именем: FQN для pdoFetch. Измените значение этого параметра на pdotools.mmlfetch

Отлично! Этот шаг завершен.

Примечание для новых версий pdoTools:
вам понадобится эта система-настройки:

pdoFetch.class: migxmultilang.mmlfetch
pdofetch_class_path : {core_path} components / migxmultilang / model /

Шаг 5: Создание таблиц базы данных¶

Выберите MIGX в меню «Дополнительно» вверху.

Появится диспетчер пакетов MIGX.

В поле «Имя пакета» введите: migxmultilang

Теперь выберите вкладку «Создать таблицы» ниже.

На этой вкладке будет только одна кнопка с названием «создать таблицы». Щелкните по нему.

Он должен сказать вам, что таблицы были созданы успешно.

Шаг 6: Создание шаблонов для внешнего интерфейса¶

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

Мы собираемся переместить содержимое BaseTemplate в блок, который для простоты назовем MainTpl.

В дереве элементов откройте BaseTemplate и скопируйте содержимое.

Создайте новый блок MainTpl и вставьте скопированное содержимое в него.

Сохраните фрагмент MainTpl, а затем снова откройте BaseTemplate.

Удалите все в области «Код шаблона (HTML)» и вставьте следующий код:

  [[! MmlCache?
& element = `pdoResources`
& родители = `0`
& resources = `[[* id]]`
& tpl = `MainTpl`
& includeTVs = `[[mmlGetTemplateTVs]]`
& prepareTVs = `1`
& processTVs = `1`
& tvPrefix = ``
& loadModels = `migxmultilang`
& prepareSnippet = `mmlTranslatePdoToolsRow`
]]
  

Если вы назвали свой чанк любым другим именем, кроме MainTpl, убедитесь, что вы обновили аргумент & tpl.

BaseTemplate теперь готов загрузить ваш блок MainTpl, как если бы это был шаблон.

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

Откройте блок MainTpl.

migxMultiLang поставляется с сниппетом под названием mml_LangLinks , и мы собираемся добавить его в наш чанк.

Вот очень простой пример возможного чанка MainTpl:

  



 [[++ имя_сайта]] - [[+ mml_pagetitle]] 



[[+ mml_pagetitle]]
[[! mml_LangLinks]] 
  

Помимо обычных тегов MODX в разделе заголовка, вы можете видеть, что я добавил [[+ mml_pagetitle]] и [[! Mml_LangLinks]] .

[[+ mml_pagetitle]] ссылается на один из начальных телевизоров, которые мы создали, и будет содержать обе версии имени ресурса.

Сохраните кусок!

А теперь пора ввести переводы.

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

Щелкните кнопку редактирования на английском языке. Появится окно редактирования на английском языке.

В поле Pagetitle введите: Это английская версия.

Щелкните Готово и откройте окно редактирования на китайском языке.

В поле Pagetitle введите: Это китайская версия.

Щелкните Готово.

Пора взглянуть на интерфейс вашего веб-сайта.

Шаг 7. Протестируйте! ¶

Мы устанавливаем английский в качестве языка по умолчанию, поэтому он появляется первым.

Ваша страница должна выглядеть так:

Если щелкнуть ссылку на китайском языке, текст изменится на «Это китайская версия».

Первоначальная настройка завершена!

Легко добавить свои собственные телевизоры, которые тоже будут переведены.

При желании можно использовать настройку формы

, чтобы вывести телевизоры с трансляцией на главную страницу ресурса.

Это руководство было просто показать, как получить и запустить простейшую форму migxMultiLang.

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

Между тем, у Бруно есть более сложный пример шаблона в документации: https: // github.ru / Bruno17 / migxmultilang

О проекте / docs.modx.pro

Последние обновления

09 марта 2021, 07:00

Компоненты / PageSpeed

28 августа 2020, 07:00

Компоненты / pdoTools / Классы / pdoFetch

26 июня 2020, 07:00

Компоненты / FrontendEditor

05 апреля 2020, 07:00

Компоненты / pdoTools / Фрагменты / pdoMenu

21 февраля 2020, 07:00

Компоненты / pdoTools / Парсер

18 октября 2019, 07:00

Компоненты / miniShop2 / Snippets / msGetOrder

12 сентября 2019, 07:00

Компоненты / mSearch3 / Snippets / mSearchForm

12 сентября 2019, 07:00

Компоненты / mSearch3 / Snippets / mFilter2

12 сентября 2019, 07:00

Компоненты / mSearch3 / Snippets / mSearch3

25 августа 2019, 07:00

Компоненты / Sendex / Snippet

Открытая документация для MODX Revolution

Назначение

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

Мы описываем сторонние компоненты и ядро ​​MODX на двух языках: русском и английском.
Если вы готовы управлять документацией на другом языке, свяжитесь с нами, создав проблему.

Формат

Все файлы написаны в Markdown, названия совместимы с daux.io.
В любой момент вы можете клонировать этот репозиторий и развернуть его на своем сервере.Также вы можете читать файлы прямо на GitHub.

Правила оформления документов

Структура

Формат репозитория определяется следующей структурой:

  1. Языковая версия
  2. Раздел
  3. Тема
  4. Дальнейшая структура определяется в зависимости от темы
  5. Чтобы указать порядок каталогов и файлов, мы используем числовые префиксы.

Вот путь к файлу с описанием сниппета HybridAuth на английском:

  / ru / 02_Components / 04_HybridAuth / 01_Snippets / 01_HybridAuth  

Заголовки

Для заголовков мы используем хэштеги ##, а между ними и текстом ставим пробел.Например: ## Заголовок

.

Заголовки не должны быть длиннее h3, например — 2 хэштега ##:

  • h3 = ##
  • h4 = ###
  • h5 = ####

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

Ссылки

Ссылки на документы должны быть добавлены в конец страницы для облегчения поиска и обновления. В уценке это достигается:

[Ссылка] [1]
[Название другой ссылки] [2]

[1]: http: // mylink.com /
[2]: http://mylink.com/test.html
 

Среди прочего, это позволяет использовать одну ссылку несколько раз на странице:

[Ссылка 1] [1]
[Ссылка 2] [1]

[1]: http://mylink.com/
 

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

[Ссылка на английский раздел pdoTools] [3]

[3]: / ru / 01_Components / 01_pdoTools
 

Проще открыть нужную страницу на GitHub и скопировать адрес из url.

Ссылки на изображения можно вставлять прямо в текст. Чтобы указать изображение, воспользуйтесь сервисом на file.modx.pro (требуется авторизация).
Он автоматически генерирует эскиз и код уценки для вставки.

  [! [] (Https://file.modx.pro/files/8/5/3/85333575318f1fb2e7fe2881eb25559as.jpg)] (https://file.modx.pro/files/8/5/3/85333575318f1fb2e755928a81 .png)  

Выделение

В системных настройках необходимо использовать жирный текст, например: ** & параметр ** будет выглядеть как & параметр .

Заполнители, заключенные в одинарные обратные апострофы. Например: `[[+ placeholder]]` будет выглядеть как [[+ placeholder]] .

Для блока с кодом мы используем 3 обратных апострофа « до и после:

`` ''
Вот код
`` ''
 

Код начинается с новой строки. Пустые строки до и после кода добровольно.

Новая строка

Для принудительного переноса строки необходимо добавить два пробела в конце строки. Парсер заменит их тегом br .

Столы

Вы можете использовать таблицы для удобного отображения данных, например, свойства сниппета:

  Первый заголовок | Второй заголовок
------------- | -------------
Ячейка содержимого | Ячейка содержимого
Ячейка содержимого | Ячейка содержимого  
Первый заголовок Второй заголовок
Ячейка содержимого Ячейка содержимого
Ячейка содержимого Ячейка содержимого

Руководство по кешированию

для MODX Revolution :: Mark Hamstra

Эта статья также переведена на русский язык.Знаете какие-нибудь другие переводы? Дайте мне знать!

MODX имеет очень детализированные возможности кэширования. В то время как Evo ограничивает кеширование только сниппетами и имеет другие ограничения с точки зрения встраивания тегов в теги, MODX Revolution не имеет этих ограничений.

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

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

Как мне указать MODX (не) кэшировать определенный тег?

Просто добавьте восклицательный знак (!) Перед жетоном. Маркер представляет собой знак доллара ($) для фрагментов, знак плюса (+) для заполнителей, знак процента (%) для лексиконов и звездочку (*) для полей ресурсов и переменных шаблона.У сниппетов нет токена.

Примеров в кэше:

 [[Wayfinder]] 
 [[$ chunkname]] 

Пример без кеширования:

 [[! Wayfinder]] 
 [[! $ Chunkname]] 

Четыре руководства по стратегиям кэширования

  1. Кэшируйте все, что можете .
    В общем, вы захотите кэшировать столько, сколько сможете — зачем MODX извлекать контент из базы данных при каждом запросе, если он не изменился? Хотя это может показаться логичным (и редко возникает вопрос о том, следует ли использовать кэшированные поля ресурсов или нет), то же самое относится и к другим тегам.Если вывод сниппета не меняется при каждом запросе — почему MODX должен анализировать сниппет при каждом запросе? Не должно.
  2. Необходимо не кэшировать вывод, специфичный для пользователя.
    Все, что выводит информацию о пользователе, необходимо не кэшировать. Просто — любой запрос может быть сделан разными пользователями, поэтому загружать пользовательскую информацию из кеша бесполезно. Это относится к сниппетам, которые взаимодействуют с пользовательской системой (пакет Login, компонент Wishlist, а также Quip для комментирования), но также и к несколько менее известному [[! + Modx.user.id]] заполнитель.
  3. Необходимо некэшировать содержимое, связанное с параметрами URL или данными POST.
    Если вы используете форму, которая отображает информацию о том, что было опубликовано, вы не хотите, чтобы это было исправлено и кэшировано. Так что называйте это также некэшированным. Если ваш вывод отличается в зависимости от (не id / q) параметров URL (например, страницы результатов поиска), вам нужно убедиться, что соответствующий фрагмент не кэширован.
  4. При необходимости используйте настраиваемое кэширование.
    Если данные (во фрагменте) изменяются до того, как кеш был очищен, например, если данные получены из внешнего источника XML, который изменяется независимо от вашего содержимого MODX, вы захотите использовать собственный метод кэширования, такой как фрагмент getCache или напишите собственное кеширование в коде сниппета.

Исключения

Конечно, есть исключения … на самом деле, я пока мог придумать только одно: ( Обновлено 26 октября , придумал еще один!)

  • site_url, http_host и соответствующие системные настройки могут быть названы некэшированными. Если у вас есть определенная настройка, в которой одна комбинация ресурса + шаблона может обслуживать несколько URL-адресов, вам нужно убедиться, что соответствующие системные настройки называются некэшированными. Одним из распространенных приложений для этого является ваш тег для удобных URL-адресов: вы должны быть уверены, что ваши ресурсы обслуживаются из того же домена, что и посетивший пользователь.Если вы должны принудительно использовать www / no www через htaccess, это совсем другое обсуждение, но это очень сильно связано с этим и является частой причиной проблем.
  • Фрагменты, которые (могут) перенаправлять или пересылать в другое место, обычно должны быть некэшированы, поскольку результат может быть пустым, но обработка фрагмента выполняет работу по перенаправлению пользователя.

Общие ошибки

  1. Вызов некэшированного фрагмента «if», когда тема является полем ресурса. Скорее всего, это вызвано тем, что в документации есть некэшированные примеры, многие люди неправильно используют фрагмент If, не кэшируя его, когда объект статичен в течение времени жизни кеша.
  2. Вызов некэшированного фрагмента «Wayfinder». Пожалуйста, не надо! Wayfinder может значительно снизить производительность вашего веб-сайта благодаря большим меню. Единственная веская причина, по которой я могу назвать Wayfinder некэшированным, — это когда вывод зависит от пользователя (например, область только для членов).
  3. Некэширование заполнителей в фрагментах, которые используются в качестве шаблонов в фрагментах. Некэшированные заполнители обрабатываются в последний возможный момент, и вызов их некэшированных в шаблоне оставит их в тактическом состоянии, и они не будут заменены сниппетом, а будут заменены основным парсером еще долго после того, как сниппет будет завершен.(В этом поведении были обнаружены некоторые изменения / ошибки в выпусках 2.1.x, поэтому может быть, что в последнем выпуске все по-другому — я на самом деле в последнее время не проверял подробно.)

Какие ошибки вы заметили в приведенных выше списках? Или у вас есть другие тактики кеширования или вопросы? Поделитесь ниже!

На основании комментария Марка Хинсе, было написано продолжение этого сообщения, в котором обсуждается, как вложенное кэширование работает в MODX Revolution.

Сравнить imagesite vs modx Revolution

Характеристики

Полная свобода творчества — вы мечтаете об этом.MODX может привести его в действие:
Никакая платформа не сравнится с MODX для создания надежных сайтов в точном соответствии с вашими требованиями, без каких-либо творческих ограничений. Ваш инструмент для создания сайта должен соответствовать вашему творческому видению, а не вводить ограничения и не навязывать компромиссы.

Встроенная мобильная связь — мобильная адаптация с 2005 г .:
С нашим первым выпуском в 2005 году вы могли создавать веб-сайты HTML5 / CSS3 за годы до того, как другие уловили ключ к разгадке. Шаблонный метод MODX не заставляет создавать слои загадочной темы и не ограничивает вас в изменении вашей темы в любое время.Все на заказ — вы полностью контролируете:
Независимо от того, хотите ли вы начать новый проект с чистого листа или начать с настраиваемого набора надстроек и мобильных адаптивных фреймворков, вы полностью контролируете, что вы включаете и как создаете веб-сайты.

Настраиваемый менеджер — индивидуальное управление сайтом:
Менеджер — это интуитивно понятное рабочее пространство для контента и администрирования, созданное с помощью нашего API. Разработчики получают возможность создавать собственные интерфейсы и дополнения. Настройка формы дает вам настраиваемый пользовательский интерфейс Менеджера, в котором отображаются только необходимые поля и меню.Многоязычность — свободное владение i18n и l10n:
MODX предлагает несколько вариантов управления многоязычными веб-сайтами, и один из них обязательно подойдет. Ключи культуры и контексты предоставляют общесистемные настройки интернационализации и ловушку для управления всем, что требует локализации.

Мульти-сайт — все ваши сайты в одном месте:
Мир переходит от кирпичей и строительного раствора к битам и байтам. Это означает, что если у вас еще нет нескольких веб-сайтов, скорее всего, вы будете: целевые страницы, кампании, блоги, порталы обслуживания клиентов и ваш основной веб-сайт.Мультисерверность — весы и противовесы:
Веб-сайты не должны терпеть неудачу из-за собственного успеха. MODX разработан для масштабирования и поддерживает интеллектуальное масштабирование с помощью таких вещей, как Varnish и memcached, или старомодным способом путем загрузки сбалансированных серверов и баз данных.

Расширенное кэширование — в любом варианте, который вам когда-либо понадобится:
Встроенное кэширование полной и частичной страницы помогает оптимизировать ресурсы и нагрузку сервера. Вы также можете кэшировать наборы результатов базы данных в файл, в память (через memcached) или в пользовательский обработчик кеша, расширяя ваши возможности по обслуживанию сайтов с высоким трафиком.Превосходство SEO — лучшая платформа для SEO:
SEO в последнее время сильно изменился и продолжит меняться. MODX дает вам 100% контроль над выводом. На создание сайта, который отлично работает в поиске, уходит несколько минут. Комплексные SEO Extras помогут вам управлять своими усилиями.

Характеристики

Управление изменениями
Интегрируйте подсистемы рабочего процесса, жизненного цикла, редакций и безопасности, чтобы обеспечить гибко настраиваемые возможности управления изменениями.Контроль версий
Автоматически распознавать новые версии документов по мере их ввода в систему и присваивать следующий доступный номер версии, автоматически архивируя любые внесенные изменения.

Жизненный цикл
Автоматически назначать документы жизненному циклу в зависимости от типа или категории документа и его предполагаемого использования. При переходе документов от одного состояния жизненного цикла к другому могут автоматически выполняться различные действия.

Рабочие процессы
Перемещайте документы (а также пометки и папки) от пользователя к пользователю, чтобы автоматизировать практически любой бизнес-процесс.Утверждения
Сконфигурируйте подсистемы рабочего процесса и жизненного цикла, чтобы автоматизировать широкий спектр процессов проверки и утверждения, и автоматически направлять документы пользователям для утверждения, чтобы значительно сократить время проверок.

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

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

Блоки заголовков
Захватите информацию основной надписи САПР (значения свойств файла) и свяжите их с соответствующими полями поиска (значения индекса или метаданные) в ImageSite для дополнительных возможностей поиска и просмотра.

Использовать отслеживание
Храните полный контрольный журнал пользователей, которые просмотрели, загрузили, выписали, отметились и пометили документы в ImageSite.

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

Уведомления
Разрешите пользователям подписываться на документы, чтобы получать уведомления по электронной почте о таких действиях, как редактирование, просмотр или печать документа.

Языки

Английский, чешский, голландский, финский, французский, немецкий, итальянский, японский, польский, португальский, русский, испанский, тайский

Языки

Английский, французский, итальянский

Конфигурация • Редактор (v1) • modmore.com

Страница, которую вы сейчас просматриваете, содержит информацию, относящуюся к Redactor 1.x. Пожалуйста, посетите Configure Redactor для получения соответствующей информации о Redactor 2.x.

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

Эти конфигурации хранятся как системные настройки, и их можно найти, посетив System » System Settings и выбрав redactor в раскрывающемся списке пространства имен (это тот, который по умолчанию имеет значение« core »).Также возможно создать экземпляры переменных шаблона Redactor, и в этом случае вы можете переопределить многие параметры для каждой переменной шаблона.

+ tv Параметры, отмеченные знаком «+» в обзоре или синим значком «+ tv» ниже, представляют собой параметры, которые можно настроить для отдельных переменных шаблона Redactor.

Редактор

Параметры в категории «Редактор» позволяют настраивать функциональные возможности, связанные с редактированием.

Если этот параметр включен, Redactor будет скрывать обычную панель инструментов и вместо этого показывать меньшую панель инструментов при выделении текста внутри панели редактирования.Чтобы изменить доступные кнопки с включенным воздушным режимом, см. Параметр конфигурации airButtons .

Этот параметр добавляет ваши собственные ярлыки в Redactor. Больше информации.

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

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

Если этот параметр включен, модальное окно вставки ссылки будет включать вкладку для вставки ссылок mailto: .

Используется вместе с опцией Autoresize , конфигурация Min Height позволяет вам установить минимальную (если автоматическое изменение размера включено) или фиксированную (когда автоматическое изменение размера отключено) высоту для текстовой области. Высота указана в пикселях, и в настройках нужно добавить только целые числа.

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

Если не 0, это позволяет вам установить текст-заполнитель для редактора, если для редактора еще нет содержимого.

Добавлено в 1.5.0
Этот параметр позволяет добавить список предопределенных ссылок в модальном окне «Добавить ссылку». Больше информации.

Если этот параметр включен, вы можете использовать следующие сочетания клавиш при редактировании с помощью Redactor:

  • ctrl + z Отменить ввод / действие
  • ctrl + shift + z Повторить ввод / действие
  • ctrl + m Удалить форматирование
  • ctrl + b Жирный текст
  • ctrl + i Выделить текст курсивом
  • ctrl + j Вставить неупорядоченный список
  • ctrl + k Вставить упорядоченный список
  • ctrl + h Надстрочный индекс
  • ctrl + l Нижний индекс
  • табуляция Отступ текста
  • shift + tab Выступающий текст

Конечно, ярлыки MODX, такие как ctrl + s для сохранения, по-прежнему работают при использовании Redactor.

Порядок индексации табуляции в поле редактирования текста.

Когда этот параметр включен, редактор запускается в визуальном режиме (с панелью инструментов и всем прочим), но когда он отключен, по умолчанию используется представление кода (HTML). Очень полезно в качестве пользовательской настройки!

Режим

WYM («Что вы имеете в виду», он же «Визуальная структура») — это специальный режим, в котором за счет использования цветов фона и отступов структура разметки становится видимой.Если вы хотите научить своих редакторов делать чистую разметку, это отличный вариант для включения. Посмотреть пример.

Добавлено в 1.1.0
При включении вкладка ресурсов будет отображаться в модальном окне вставки ссылки

Добавлено в 1.3.0
При включении переходите / редактируйте ссылки, помещая курсор на ссылку прямо в Redactor.

Добавлено в 1.3.0
Установите значение false, чтобы отключить хорошее форматирование выходного кода.

Добавлено в 1.5.0
Режим печатной машинки без напряжения. Больше информации.

Интернационализация

Устанавливает направление текста: ltr (слева направо) или rtl (справа налево).

Устанавливает язык самого редактора. В пакет включены следующие языки:

  • ar (арабский)
  • bg (болгарский)
  • по (Белорусская Беларусь)
  • cs (чешский)
  • da (датский)
  • de (немецкий)
  • en (английский)
  • es (испанский)
  • fi (финский)
  • fr (французский)
  • он (иврит)
  • id (индонезийский)
  • it (итальянский)
  • ja (японский)
  • nl (голландский)
  • no_NB (норвежский букмел)
  • пл (польский)
  • ru (Русский)
  • sv (шведский)
  • грн (украинский)
  • zh_cn (китайский)
  • az (азербайджанский)
  • ba (боснийский)
  • ca (каталонский)
  • el (греческий)
  • eo (эсперанто)
  • es_ar (аргентинский испанский)
  • fa (персидский)
  • ge (грузинский)
  • hr (хорватский)
  • hu (венгерский)
  • ko (корейский)
  • lt (литовский)
  • лев (латышский)
  • mk (македонский)
  • pt_br (бразильский португальский)
  • pt_pt (португальский)
  • ro (румынский)
  • sk (словацкий)
  • sl (словенский)
  • sq (албанский)
  • sr-cir (сербский (кириллица))
  • sr-lat (сербский (латиница))
  • -е (тайское)
  • tr (турецкий)
  • vi (вьетнамский)
  • zh_tw (традиционный китайский)

Дополнительные языки доступны на веб-сайте Imperavi и могут быть загружены в каталог assets / components / redactor / lang / .

По умолчанию язык менеджера

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

Наценка

Используя настройки разметки, вы можете оптимизировать и настроить разметку, выводимую из Redactor.

Используйте либо параметр «Разрешенные теги», либо параметр «Запрещенные теги», но не оба сразу! При использовании параметра «Разрешенные теги» вы можете занести принятые теги в белый список в контент — остальные будут удалены.

Тег HTML, используемый для выделенных жирным шрифтом фрагментов содержимого. Либо b , либо strong .

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

Добавлено в 1.5.0
Удаляет лишнее пространство во вставленном тексте, если установлено значение «Да». Если установлено значение «нет», остаются лишние пробелы.

При включенном преобразовании Divs Redactor автоматически заменит теги

на теги & ltp> .

Когда включено преобразование ссылок, Redactor автоматически анализирует ссылки в содержимом и добавляет в разметку правильные теги .

Используйте либо параметр «Разрешенные теги», либо параметр «Запрещенные теги», но не оба сразу! При использовании параметра «Запрещенные теги» вы можете занести в черный список теги, которые не разрешены в разметке.

По умолчанию: html, head, link, body, meta, script, style, applet

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

 .

Тег HTML, используемый для выделенных курсивом фрагментов содержимого. Либо i , либо em .

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

При позиционировании изображений слева или справа Redactor позволяет вам вставить класс CSS или поля , чтобы предотвратить столкновение изображения с текстом, плавающим вокруг него.Вы можете определить маржу или класс CSS для выравнивания по левому краю с помощью этого параметра. Либо укажите поле, подобное значению в объявлении CSS: 0 10px 10px 0 , либо укажите имя класса с префиксом точки: .imageFloatLeftInContent . Если вам нужно несколько имен классов, поставьте точку перед первым.

По умолчанию 0 10px 10px 0

При позиционировании изображений слева или справа Redactor позволяет вам вставить класс CSS или поля , чтобы предотвратить столкновение изображения с текстом, плавающим вокруг него.Вы можете определить маржу или класс CSS для выравнивания по правому краю с помощью этого параметра. Либо укажите поле, подобное значению в объявлении CSS: 0 0 10px 10px , либо укажите имя класса с префиксом точки: .imageFloatRightInContent . Если вам нужно несколько имен классов, поставьте точку перед первым.

По умолчанию 0 0 10px 10px

При включении все содержимое будет помещено в теги (абзацы)

.Обратите внимание, что если вы включите параметр Linebreaks , режим абзаца будет отключен.

Продвинутый

Материал, который вы, вероятно, не будете редактировать, если не знаете, что делаете.

Добавлено в версии 1.4.0
Добавляет поля класса и идентификатора в окна редактирования ссылок и изображений.
Начиная с версии 1.5.0 также добавляет поле заголовка.

Добавлено в версии 1.2 Укажите разделенный запятыми список пар «имя: файл», чтобы добавить в редактор дополнительные плагины Redactor.Это может быть собственный плагин или один из доступных плагинов для Redactor. (Примечание: не используйте клипы, поскольку мы уже включили их)

Пример: fontfamily: /path/to/fontfamily.js, другой плагин: /path/to/otherplugin.js

Чтобы загрузить плагин fontcolor (входит в пакет): fontcolor: /assets/components/redactor/lib/fontcolor.js

Ранее называвшийся Iframe CSS, этот параметр был переименован в 1.2.3. Вставьте полный URL-адрес файла CSS, чтобы использовать собственный стиль для форматирования.До 1.2.3 это действует, только если включен Iframe . (Это то, что TinyMCE называет «Редактором CSS».)

При включении редактор будет помещен в iframe. До версии 1.2.3 это позволяло использовать параметр Таблица стилей для использования собственного CSS для редактора, хотя с версии 1.2.3 этот параметр также работает без режима iframe. Начиная с версии 1.2.0, при использовании режима iframe в заголовок будет вставлен тег , который можно использовать в качестве режима совместимости для TinyMCE.Режим iframe был сломан до версии Redactor 1.1.1.

Протокол ( http: // , https: // или оставьте пустым) для создания ссылок.

Добавлено в версии 1.4.0
Добавляет атрибут nofollow к ссылкам, добавленным через Redactor.

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

Если этот параметр включен, щелчок по изображению в области редактирования открывает окно модели, позволяющее пользователям изменять выравнивание и добавлять атрибуты alt / title.

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

Медиа

Управляет различными параметрами обработки носителей в Redactor. Также ознакомьтесь с учебным пособием по источникам мультимедиа.

При включении обозреватель изображений будет рекурсивно отображать подпапки image_upload_path в источнике мультимедиа.Вы можете отключить это, если у вас есть большое количество подпапок, которые не используются для просмотра.

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

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

Путь относительно корня источника мультимедиа, как определено параметром Источник мультимедиа , в который должны быть помещены загрузки файлов.Вы можете использовать следующие заполнители (без фильтров вывода, пожалуйста):

  • [[+ год]] числовое представление (4 цифры) текущего года: 2021
  • [[+ месяц]] числовое представление (2 цифры) текущего месяца с нулем в начале: 09
  • [[+ день]] числовое представление (2 цифры) текущего дня месяца: 18
  • [[+ user]] ID текущего вошедшего в систему пользователя.
  • [[+ username]] имя пользователя, вошедшего в систему в данный момент.
  • [[+ id]] , если есть, идентификатор текущего ресурса. Добавлено в 1.2.7
  • [[+ pagetitle]] , если доступно, pagetitle текущего ресурса. Добавлено в 1.4.0
  • [[+ alias]] , если доступно, псевдоним текущего ресурса. Добавлено в 1.4.0
  • [[+ context_key]] , если доступно, context_key текущего ресурса. Добавлено в 1.4.0
  • [[++ site_url]] Ваш MODX site_url. Добавлено в 1.5.0
  • [[++ assets_url]] Ваш MODX assets_url. Добавлено в 1.5.0

См. Также Путь загрузки изображений , Источник мультимедиа и Использование источников мультимедиа с Redactor

По умолчанию: assets / uploads /

Путь относительно корня медиаисточника, как определено параметром Media Source , в который должны быть помещены загружаемые изображения.Вы можете использовать следующие заполнители (без фильтров вывода, пожалуйста):

  • [[+ год]] числовое представление (4 цифры) текущего года: 2021
  • [[+ месяц]] числовое представление (2 цифры) текущего месяца с нулем в начале: 09
  • [[+ день]] числовое представление (2 цифры) текущего дня месяца: 18
  • [[+ user]] ID текущего вошедшего в систему пользователя.
  • [[+ username]] имя пользователя, вошедшего в систему в данный момент.
  • [[+ id]] , если есть, идентификатор текущего ресурса. Добавлено в 1.2.7
  • [[+ pagetitle]] , если доступно, pagetitle текущего ресурса. Добавлено в 1.4.0
  • [[+ alias]] , если доступно, псевдоним текущего ресурса. Добавлено в 1.4.0
  • [[+ context_key]] , если доступно, context_key текущего ресурса. Добавлено в 1.4.0
  • [[++ site_url]] Ваш MODX site_url. Добавлено в 1.5.0
  • [[++ assets_url]] Ваш MODX assets_url. Добавлено в 1.5.0

См. Также Путь загрузки файла , Источник мультимедиа и Использование источников мультимедиа с Redactor

По умолчанию: assets / uploads /

Добавлено в 1.1.0
Путь для просмотра при выборе изображений относительно корня медиаисточника, как определено параметром Media Source , в котором изображения должны просматриваться через модальное окно выбора изображения.

По умолчанию: assets / uploads /

Добавлено в 1.5.0
С помощью этой опции вы можете включить / отключить вкладку с вставкой изображения в качестве ссылки.

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

Добавлено в 1.1.0
При включении миниатюры будут создаваться с использованием PhpThumb для предварительного просмотра изображений.Иногда отключение этого параметра может повысить производительность, поскольку для каждого изображения не требуется дополнительной обработки.

Добавлено в 1.1.0
При включении имена файлов будут отображаться при просмотре изображений.

Добавлено в 1.1.0
Путь для просмотра при выборе изображений относительно корня источника мультимедиа, как определено параметром Источник мультимедиа , в котором файлы должны быть доступны через модальное окно вставки файла.

Добавлено в 1.1.0
При включении позволяет выбирать загруженные файлы.

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

См. Также Путь загрузки файла , Путь загрузки изображения и Использование источников мультимедиа с Redactor

По умолчанию 1 (Файловая система)

Тип ресурса: вперед

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

Используемый в предварительном поиске ресурсов, предварительная выборка содержит ресурсы верхнего уровня, которые публикуются, а не удаляются. Эти данные предварительно загружаются при создании экземпляра поля typeahead, обеспечивая очень быстрый доступ к важным ресурсам, которые могут быть запрошены, однако typeahead продолжит поиск дальше вниз по дереву ресурсов, когда пользователи начнут вводить текст. TTL предварительной выборки определяет, как долго (в микросекундах) данные предварительной выборки должны считаться действительными и храниться в хранилище LocalStorage пользователей.

По умолчанию 3600000 (1 час)

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

Панель инструментов

Всевозможные варианты панели инструментов.

Добавлено в 1.1.0
При включении полноэкранная кнопка будет расположена справа от панели инструментов.

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

По умолчанию: форматирование , |, полужирный, курсив, удалено, |, неупорядоченный список, упорядоченный список, отступ, отступ, |, цвет шрифта, цвет фона

При отключении кнопка источника ( html в конфигурации кнопок) будет удалена.

Кнопки, которые появляются на панели инструментов Redactor. Обратите внимание, что при использовании Air Mode вы должны вместо этого настроить Air Buttons .Используйте | (труба) для добавления разделителя.

По умолчанию: html, |, форматирование, |, полужирный, курсив,
удаленный, |, неупорядоченный список, упорядоченный список, исходящий,
отступ, |, изображение, видео, файл, таблица, ссылка, |,
выравнивание, |, горизонтальное правило

Дополнительные доступные кнопки:
подчеркивание, выравнивание по левому краю, выравнивание по центру, выравнивание по правому краю, выравнивание по ширине

Добавлено в версии 1.5.0
Раскрашивает панель инструментов редактора любимый цвет Ребекки Мейер седьмого числа каждого июня.

Добавлено в 1.2.0
Если установлено и действительная строка JSON, добавляет плагин Redactor Clips на панель инструментов.

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

Используйте JSON в указанном ниже формате для управления своими клипами.

[{"title": "Знак доллара", "clip": "$"},
{"title": "Знак евро", "clip": "€"},
{"title": "¢ Cent Sign", "clip": "¢"},
{"title": "Знак фунта стерлингов", "clip": "£"},
{"title": "¤ Знак валюты", "clip": "¤"},
{"title": "Знак ¥ Йены", "clip": "¥"},
{"title": "ƒ Florin Sign", "clip": "ƒ"}]

Параметры, которые вы получаете при нажатии кнопки форматирование на панели инструментов Redactor.

По умолчанию: p, blockquote, pre, h2, h3, h4, h5 , которые являются единственными поддерживаемыми в настоящее время тегами форматирования. (Нужно больше? Дайте нам знать!)

Добавлено в 1.5.0
С помощью этой опции вы можете указать, какие кнопки панели инструментов могут быть скрыты на мобильных устройствах.

Добавлено в 1.2.0
Если установлено и действительная строка JSON, добавляет плагин Redactor Styles на панель инструментов.

Styles добавляет возможность настраиваемого форматирования.У каждого настраиваемого формата должно быть имя и хотя бы одно из следующего:

  • className Класс CSS, примененный к раскрывающемуся варианту под кнопкой «Стили».
  • обернуть HTML-тег , чтобы обернуть форматированный текст.
  • spanClass Класс CSS, который будет применен к введенному тексту.

Используйте JSON в формате ниже, чтобы управлять своими пользовательскими форматами:

[{"btnName": "Примечание",
"className": "redactor_format_note",
"обертка": "div",
"spanClass": "note"},
{"btnName": "Предупреждение",
"className": "redactor_format_warning",
"обертка": "р",
"spanClass": "предупреждение"}]

Добавлено в 1.5.0
С помощью этого параметра вы можете указать кнопку панели инструментов для построения только одной строки на мобильных устройствах.

Добавлено в 1.5.0
Если эта опция включена, панель инструментов Redactor всегда будет оставаться в верхней части окна браузера. Для отключения может потребоваться установить для redactor.toolbarFixedBox значение No.

.

Добавлено в 1.5.0
Эта опция делает фиксированную панель инструментов равной ширине редактора.

Redactor для MODX использует возможность MODX Revolution заменять системные настройки настройками пользователя. Это означает, что вы можете контролировать, какие кнопки на панели инструментов доступны для разных редакторов вашего сайта. Возможно, вы хотите, чтобы только у некоторых из них была кнопка «Источник». Возможно, должны быть доступны разные цвета. Возможно, файлы должны быть загружены в определенные пользователем папки.

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

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