Jump to main content Jump to doc navigation

MODX Revolution использует параметр a в массиве $_GET для определения действий в менеджере. До MODX 2.3 каждое действие имело свой собственный идентификатор, но с MODX 2.3 действия устарели и больше не используются. Вместо этого, начиная с Revolution 2.3, имя действия передается непосредственно в параметр a.

Действия в JavaScript

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

В Evolution действительно был фиксированный список, но в Revolution его никогда не было.

До Revolution 2.3

Чтобы перенаправить браузер для редактирования ресурса с идентификатором 5:

MODx.loadPage(MODx.action['resource/update'], 'id=5');

Чтобы перенаправить браузер на пользовательский контроллер страницы менеджера с именем «update» в пространстве имен «mycomponent», передавая некоторые параметры URL:

MODx.loadPage(MODx.action['mycomponent:update'], 'foo=bar&bar=foo');
// До Revo 2.2 вам нужно было использовать это, но вы рискуете столкнуться с ядром или другими пакетами
MODx.loadPage(MODx.action['update'], 'foo=bar&bar=foo');

Revolution 2.3+

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

MODx.loadPage('resource/update', 'id=5');
MODx.loadPage('update', 'namespace=mycomponent&foo=bar&bar=foo');

Для обратной совместимости переменная MODx.action все еще присутствует в 2.3, но вместо идентификаторов она, как обычно, содержит имена контроллеров. Эта переменная будет удалена в версии 2.4 или 3.0, поэтому НЕ полагайтесь на нее слишком долго.