Controllers and Menus
Последнее обновление Oct 12th, 2026 | История страницы | Улучшить эту страницу | Сообщить о проблеме
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
Budget
$194 per month—let's make that $500!
Learn moreMODX использует ряд концепций для своего ядра и менеджера.
На стороне сервера вы найдёте Controllers, которые извлекают данные и регистрируют ассеты для страницы, и загружают (Smarty) шаблоны с голой разметкой. Сам интерфейс рендерится на клиенте, ExtJS в браузере — сервер отдаёт только шаблон и данные.
Контроллеры идентифицируются по комбинации пространства имён и действия, передаваемых в качестве параметров URL в менеджере. Если пространство имён не указано, предполагается core-пространство. Действие указывается в параметре URL a (на сервере читается через $_REQUEST).
Со стороны клиента запросы AJAX отправляются одному из нескольких Connectors, обычно /connectors/index.php. На основании action в этом запросе загружается соответствующий Processor, который выполняет фактическую загрузку/манипулирование данными.
Основные контроллеры и шаблоны находятся в /manager/, в то время как сторонние компоненты имеют их в своём каталоге пространства имён в core/components/.
Как action превращается в контроллер¶
При ?a=some/action&namespace=mycomponent менеджер ищет контроллер в таком порядке (modManagerResponse::getControllerClassName()):
- PSR-4 класс
\MODX\Revolution\Controllers\Some\Action— если есть, файл не грузится; предпочтительный способ в 3.x, доступен и компонентам. - Легаси-глобальный класс
<Namespace><Action>ManagerController, напримерMycomponentSomeActionManagerController(пространство имён и действие режутся по/, каждая часть ucfirst). - Файл
controllers/some/action.class.php. - Файл
controllers/some/action/index.class.php.
Каталоги для файловых форм ищутся в таком порядке: каталог активной темы, default/ и корень пространства имён — каждый под controllers/. Если ничего не найдено, менеджер бросает исключение «не найдено». Права пункта меню (modMenu.permissions) проверяются до запуска контроллера — см. Меню.
Связанные страницы¶
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
Budget
$194 per month—let's make that $500!
Learn more










