Jump to main content Jump to doc navigation

Программирование в MODX Revolution

MODX Revolution - это OOP Framework, построенный вокруг базы данных ORM xPDO.

Компоненты сторонних производителей (3PCs)

Сторонние компоненты (3PCs) - это коллекции объектов MODX любого типа. Они могут быть коллекцией сниппетов кода, плагинов и блоков, или одним сниппетом кода, или просто набором файлов. Они обычно транспортируются и устанавливаются через Транспортные пакеты.

core/components and assets/components

MODX не обязательно ограничивает то, где вы можете разместить свои собственные сторонние файлы компонентов, но у нас есть некоторые рекомендации. Для файлов, которые не должны находиться в webroot (файлы конфигурации, .php и т.д.), Мы рекомендуем поместить их в:

core/components/myname

Таким образом, если бы у вас был компонент с именем «test», вы бы поместили его файлы без веб-рута в «core/components/test/». Для файлов, которые должны быть доступны через Интернет, таких как CSS, JS и другие файлы, мы рекомендуем:

assets/components/myname

Где myname, будет «test» в директории «assets/components/test». Эта стандартизация путей облегчает другим разработчикам, использующим ваши компоненты, возможность легко находить ваши файлы.

Сниппеты

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

Плагины

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

Свойства и наборы свойств

Свойства - это просто плейсхолдеры для Элементов (Сниппеты/Плагины/Чанки/TV/Шаблоны), которые могут анализироваться каждым отдельным Элементом. Они позволяют настраивать и передавать аргументы для каждого элемента.

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

Подробнее о наборе свойств можно почитать здесь.

Пользовательские страницы менеджера (CMPs)

Пользовательские страницы менеджера, или CMPs, являются пользовательскими страницами в менеджере, созданными сторонними разработчиками, чтобы обеспечить внутреннее управление компонентами. Они используют объекты modAction и modMenu для динамического создания страниц менеджера, которые можно легко найти и добавить без взлома ядра.

Внешнее использование MODX

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

require_once '/absolute/path/to/modx/config.core.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService('error', 'error.modError');

Это инициализирует объект MODX в 'web' Контексте. Теперь, если вы хотите получить доступ к нему под другим Контекстом (и, таким образом, изменяя свои права доступа, политики и т.д.), вам просто нужно изменить 'web' на другой Контекст который вы хотите загрузить.

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • Fabian Christen
  • Dannevang Digital
  • Sepia River Studios
  • CrewMark
  • Chris Fickling
  • deJaya
  • eydolan
  • Lefthandmedia
  • Murray Wood
  • Following Sea
  • Anton Tarasov
  • Stéphane Jäggi
  • Raffy
  • Snow Creative
  • A. Moreno
  • Nick Clark
  • JT Skaggs
  • Helen
  • YJ
  • krisznet
  • Richard
  • Yanni

Budget

$306 per month—let's make that $500!

Learn more