Урок 2. установка modx revolution

Ответ на множество запросов

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

  • Благодаря крупнооптовым закупкам у поставщиков, цены на ткани могут оставаться весьма умеренными;

Работа ведется ежедневно, количество предлагаемого товара растет, обновляется не только ежесезонно, но даже еженедельно;
Если товар присутствует на онлайн витрине – он есть на складе. Здесь не будет «фейковых» позиций;
Упаковка, доставка до ТК – бесплатна для розничных и оптовых покупателей;
Заказав всего 5 метров любого материала, его уже можно получить по оптовой цене. Нужен меньший отрез? Добро пожаловать в «Модекс», каталог порадует предусмотренной рубрикой «остатки».

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

connectors/

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

Например, когда мы создаем ресурс, мы спрашиваем connectors/resource/index.php?action=create. Файл index.php будет включать в себя базовый файл (connectors/index.php) , который инициализирует MODX, обрабатывать любые пользовательские переключения, и сканировать GET или POST запросы. connectors/resource/index.php будет «обрабатывать» запрос и вызывать нужный файл процессор.

Дополнительные файлы

• connectors/index.php — данный файл полезен при создании собственных коннекторов. Для этого нужно включить этот файл в коннекторы, а затем обработать запрос , используя $modx->request->handleRequest();

Поля ресурса

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

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

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

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

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

Free MODx demo installation

MODx Logo

Want to quickly see how the open-source software MODx works? You’ll find a free and updated demo installation of MODx here.

Before using this demo please notice:

  • Sending/receiving email and file upload is disabled on all demos
  • Demos are the «basic install» only, no add-ons, no content
  • Is this demo broken? Report as broken
  • Want to discuss the script?

Option 1: Shared and self resetting MODx demo

There is a public demo installation of MODx which is shared with others and resets itself hourly. You can access it by visiting the following link:

Option 2: Request your own MODx demo installation

You can request a own demo instance with a lifetime of 24 hours. This is ideal if you don’t want to have your settings overwritten by other users of this website. Just use the following form and receive a link to your free custom instance within seconds:

Evolution CMS 2.0 на компонентах Laravel 6.0 — естественная эволюция MODX Evolution

Настало время релиза Evolution CMS 2.0 RC на компонентах Laravel 6.0, но как показал предыдущий релиз и последующие за ним обсуждения — существует масса вопросов и мифов связанных с веткой 2.0.

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

Неправда — будет и по-старому. Основное отличие в том, что сохранив возможности “по-старому” мы добавили возможности и “по-новому”. Уровень входа не изменился, но более продвинутые разработчики получат много готовых решений и возможностей, а те кому достаточно существующих компонентов могут работать также, как и раньше, никто не будет никого лишать привычных вещей.

Уровень совместимости максимальный — даже с версии 0.9 вы можете обновиться до 1.4, а с нее до 2.0 при сохранении функционала. Хотя надо учитывать возможные проблемы которые могут возникнуть с depricated методами из за того что нужно поднять версию php до 7.2, но скорость работы того стоит, а реагировать на эти баги буду быстро, чтобы приблизить срок стабильного релиза.

Изменения заголовка сайта в MODX Revolution

Чтобы сделать это, нам нужно просто переместится в область кода, отвечающего за вывод заголовка сайта и заменить его системным тегом. Давайте взглянем на элемент <head> нашего шаблона:

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

Еще одна важная деталь: к нашему элементу <head> необходимо добавить тег <base>. Данный тег мы используем для определения адреса по умолчанию для всех ссылок на странице. Поэтому в моём случае мы внесем следующие изменения:

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

Теперь посмотрим исходный код сгенерированной MODX Revolution страницы и увидим, что парсер вставил правильный адрес сайта:

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

Следующий урок

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

Контекст

WebsiteКонтекстMgr

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

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

Контексты можно использовать для отделения разделов сайта. Некоторые используют их для разделения версий сайта на разных языках.

Создание шаблона

После загрузки папок с файлами мы можем начать создание нашего MODX шаблона. В админке нажмите на вкладку Elements слева, откроется панель с различными элементами сайта — шаблонами, чанками, переменными шаблона и другими. Нажмем на templates и увидим, что уже есть в наличии один базовый шаблон с названием Base Template. Если вы на него нажмете, то вы можете увидеть код данного шаблона. Видим HTML код с тегами ], ].

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

Давайте продолжим и сделаем наш шаблон. Для создания нового MODX Revolution шаблона нажмите правой кнопкой мышки Templates, а далее New Template.

Можете также нажать на иконке New Template:

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

Для создания категории, нажмите правой кнопкой мыши на Categories в закладке Elements.

Ну вот можно добавить код в наш новый шаблон. Начнем мы с создания шаблона для главной страницы. Сейчас я могу сказать, что дизайн главной страницы будет отличаться от дизайна внутренних страниц, поэтому я назову этот шаблон каким-то своим именем, например «7in1 Home». Код домашней страницы находится в файле index.html в папке с шаблонами, которую мы загрузили с Themeforest, поэтому открываем этот файл в редакторе (я использую Notepad++) и копируем его содержимое в наш новосозданный шаблон в MODX. Можно (и это на мой взгляд даже более удобнее) отредактировать вначале код вне MODX Revolution и только потом перенести отредактированный код исправленного шаблона, но исходя из целей данного урока, все эти действия проведём внутри редактора MODX.

Для новичков и тех, кто разбирается

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

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

  • Новые поступления или распродажи;

Уцененные товары или остатки;
Хиты продаж или востребованные, популярные ткани.

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

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

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

Идея

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

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

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

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

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

Загрузка файлов шаблона

Любой шаблон содержит в себе много файлов – css файлов, яваскрипт, рисунков, флеш файлов… Все это нужно где-то хранить на вашем сервере, чтобы ваш шаблон имел к этим файлам доступ. Я предпочитаю хранить все файлы, которые относятся к шаблону в середине директории assets. Вы можете положить куда угодно и установить соответствующие пути в вашем шаблоне.

Распакованные файлы шаблона имеют приблизительно вот такую файловую структуру:

Таким образом 1 шагом в нашей разработке шаблона является копирование трех папок с файлами шаблона на сервер, это папки sample-data/, scripts/ и styles/. Я создал папку в середине assets и назвал ее templates, а также я создал папку 7in1, в которую поместил вышеназванные папки с файлами шаблона. Если вы запутались, то посмотрите на картинку и все станет понятно:

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

SEO для мультиязычных сайтов

Canonical и hreflang

Используем вариант указания языковой версии в теге head. Этот вариант идеален для сайтов, у которых меньше 10 языков. Если больше, то лучше указать локальные версии в sitemap.xml.

Открываем чанк с кодом секции head и вписываем следующий код:

Выведет в код следующее:

Источник bazstudio.

sitemap.xml

Знаю 2 способа создания мультиязычного sitemap.xml:

Первый способ. Установить из основного репозитория пакет «SEO Tab». Создать ресурс и вывести:

И нужно включить системную настройку компонента с ключом stercseo.xmlsitemap.babel.add_alternate_links.

Кому нужен обычный шаблонизатор смотрите документацию: https://github.com/Sterc/SEOTab.

Второй способ. Использовать pdoSitemap.

Описывать его не буду, кому интересно смотрите заметку от iWatchYouFromAfar

Назначение и основные принципы работы с MODX-дополнением Collections

Collections (коллекции) — это компонент для CMS MODX Revolution, который скрывает показ дочерних ресурсов в дереве админки и организовывает их вывод в родительском объекте посредством таблицы. Другими словами он позволяет перевести стандартное представление дочерних ресурсов в табличный вид.

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

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

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

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

Просмотр существующих коллекций или создание новых осуществляется на странице «Виды коллекций» (в главном меню выбрать Приложения -> Виды коллекций).

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

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

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

Кроме этого, дополнение Collection поддерживает режим Drag’n’Drop, который позволяет добавить в коллекцию ресурс, не имеющий детей, посредством простого перетаскивания.

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

QuadBraces — по мотивам парсера MODx

Recovery Mode

Доброго здравия хабражителям!
Когда я заглянул в исходники MODx Evolution, меня едва ли не хватил удар. Рефакторить, рефакторить и рефакторить, как, наверное, сказал бы Ильич. По сему меня хватило едва ли на пару недель рефакторинга, после чего я забросил это дело, ибо времени откровенно не было. Но разговор пойдёт не об этом.
Система шаблонизации MODx на мой взгляд — одна из самых лучших. Особенно хорошо постарались разработчики в MODx Revolution. Всё логично, расширяемо, гибко и прям-таки пасторально. Можно сказать, синтаксис шаблонизации MODx — это почти что отдельный язык разметки. Именно такое вот восхищение стало причиной, по которой я стал использовать эту методику в других проектах. И для того, чтобы не заколачивать микроскопом гвозди, то есть не ставить для лендингов MODx, но иметь возможность использовать эту шаблонизацию, я написал отдельный класс шаблонизатора. И даже дал название — QuadBraces.

Основные моменты конфигурации

  • «formtabs» — вкладки модального окна, если присутствует только одна вкладка, то они скрываются;
  • «caption» — отображаемое название чего-либо(будь то вкладка или поле);
  • «field» — уникальное название поля формы;
  • «fields» — перечисление полей формы, находящиеся на данной вкладке, среди них: — «name» — текстовое поле «Название» — «url» — текстовое поле «Ссылка» — «image» — поле с выбором изображения — «Изображение» — «active» — список с одиночным выбором («Активный» или «Скрытый»).

Параметры ввода и рендера

  • this.renderImage — вывод изображения;
  • this.renderCrossTick — значки галочка\крестик для boolean полей;
  • this.renderClickCrossTick — значки галочка\крестик для boolean полей с возможностью изменения значения кликом (поддерживается для MIGXdb);
  • this.renderSwitchStatusOptions — изменение статуса кликом по полю (настраивается через Renderoptions);
  • this.renderChunk — можно указать чанк, который будет выводиться для этого поля;
  • this.renderDate — вывод даты.

Типы ввода / полей (inputTVtype)

  • autotag -Авто-метка;
  • text — Текст;
  • textarea — Текстовая область;
  • textareamini — Текстовая область (мини);
  • richtext — Текстовый редактор;
  • dropdown — Выпадающий список;
  • listbox — Список (одиночный выбор);
  • listbox-multiple — Список (множественный выбор);
  • list-multiple-legacy — Устаревший список множественного выбора;
  • option — Переключатели (radio);
  • checkbox — Флажки (checkbox);
  • image — Изображение;
  • file — Файл;
  • url — URL;
  • email — Электронная почта;
  • number — Число;
  • date — Дата;
  • tag — Тег;

Рендеры (Renderer)

  • this.renderImage — вывод изображения;
  • this.renderCrossTick — значки галочка\крестик для boolean полей;
  • this.renderClickCrossTick — значки галочка\крестик для boolean полей с возможностью изменения значения кликом (поддерживается для MIGXdb);
  • this.renderSwitchStatusOptions — изменение статуса кликом по полю (настраивается через Renderoptions)
  • this.renderChunk — можно указать чанк, который будет выводиться для этого поля
  • this.renderDate — используется для вывода даты

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

  • ] — любое поле из конфигурации MIGX или из переданных параметров в сниппет
  • ] — порядковый номер, начиная с 1
  • ] — вернет 1, если это первая запись
  • ] — вернет 1, если это последняя запись
  • ] — вернет 1, если это четная запись
  • ] — общее число элементов (можно изменить через &totalVar)
  • ] — выведет параметр с именем &name= в вызове getImageList.

Параметры getImageList

  • &tvname — название TV с типом ввода MIGX
  • &tpl — имя чанка для вывода каждой записи. Можно использовать @CODE:, @FILE:, @FIELD
  • &docid — можно указать ID документа, чей TV надо обработать. По умолчанию: ]
  • &value — JSON строка для обработки getImageList. Если указан, параметры &docid и &tvname будут проигнорированы. Можно использовать для вывода в getImageList еще одного вызова getImageList
  • &limit — количество записей для вывода. По умолчанию: 0
  • &offset — количество записей, которые необходимо пропустить. По умолчанию: 0
  • &totalVar — имя плейсхолдера, в котором содержится общее количество записей. По умолчанию: total
  • &randomize — если установить 1, результаты будут отсортированы в случайном порядке. По умолчанию: 0
  • &preselectLimit — вместе с параметров &randomize можно указать число записей, которые выведутся в любом случае. По умолчанию: 5
  • &where — JSON строка с условиями выборки, например: {«active:=»:«1»,«rating:>»:«5»}
  • &sort — JSON строка с условиями сортировки. Можно указывать несколько параметров:
  • &toPlaceholder — сохранить вывод в плейсхолдер
  • &toSeparatePlaceholders — сохранить каждую запись в отдельный плейсхолдер.
  • &outputSeparator — разделитель между результатами
  • &wrapperTpl — чанк-обертка для вывода результатов. Принимает плейсхолдер ] для вывода результатов
  • &processTVs — включить режим обработки вывода TV параметров (для полей с inputTV). По умолчанию: 1

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

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

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

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

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

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

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

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

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

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

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

Если и этого недостаточно

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

Также можно редактировать типы контента и MIME-данные, расширения страниц (использовать .html или нет), а в качестве источника медиафайлов использовать библиотеку Amazon S3.

Редактировать все можно как в формате простого текста/HTML-кода или ради удобства установить дополнения вроде TinyMCE, CodeMirror или ACE. Здесь даже есть свой редактор для Markdown. Это уже не говоря про расширения для отслеживания редакций и экспорта кода для последующего использования в других сайтах на MODX.

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

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

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

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