Skip to content
Ace
Ace
Редактор кода с подсветкой синтаксиса для менеджера MODX Revolution
  1. Компоненты
  2. Ace
  3. Интеграция

Интеграция

Где Ace подключается, как уживается с RTE, mime-типы и Tab-сниппеты.

Плагин Ace слушает события менеджера: формы элементов, файлов, ресурса, вкладка кэша обзора ресурса, регистрация RTE и список TV input.

Где работает редактор

КонтекстСобытие / полеMime по умолчанию
СниппетOnSnipFormPrerendermodx-snippet-snippetPHP
ПлагинOnPluginFormPrerenderPHP
ШаблонOnTempFormPrerenderace.html_elements_mime или авто
ЧанкOnChunkFormPrerenderHTML/Fenom/Twig; у static по расширению файла
ФайлOnFileCreateFormPrerender / OnFileEditFormPrerenderпо расширению
Ресурс (content)OnDocFormPrerender#tacontent type / html mime
Обзор ресурса → кэшOnManagerPageBeforeRendermodx-rdata-bufferhtml mime
TVтип ввода Aceиз свойств TV

Если which_element_editorAce, плагин не инициализирует редактор на формах элементов (кроме регистрации имени RTE).

Ресурсы и RTE

Правила (1.9.10+):

  1. use_editor и which_editor читаются с учётом контекста ресурса.
  2. При use_editor = Да и richtext (или Static/SymLink/WebLink/XMLRPC) Ace не трогает #ta.
  3. При use_editor = Да и which_editor ≠ Ace Ace не подменяет #ta у non-richtext ресурсов: остаётся обычный textarea (раньше Ace перехватывал поле).

Типичные схемы:

СхемаНастройки
Код в ресурсах через Aceuse_editor = Нет или which_editor = Ace
TinyMCE для статей, textarea для «кодовых» страницuse_editor = Да, which_editor = TinyMCE (или другой RTE), richtext только у нужных ресурсов
Ace как единственный «редактор» контентаwhich_editor = Ace, use_editor = Да

Mime и подсветка MODX / Fenom

Подсветка тегов MODX включается только для HTML-подобных mime:

  • text/html
  • text/x-smarty (Fenom / Smarty)
  • text/x-twig

Для CSS/SCSS/LESS/static-чанков с расширением .css mixed-mode MODX не включается: комментарии // и /* */ подсвечиваются как CSS.

Автовыбор ace.html_elements_mime, если настройка пуста:

УсловиеMime
Есть twiggy_classtext/x-twig
Включён pdotools_fenom_parsertext/x-smarty
Иначеtext/html

Явно задайте ace.html_elements_mime = text/x-smarty, если Fenom в чанках нужен всегда.

Tab-сниппеты

Формат настройки ace.snippets (Ace snippets):

text
snippet getr
    [[!getResources? &parents=`${1}` &limit=`${2:10}` &tpl=`${3}`]]

В определении Ace нужна настоящая табуляция после имени сниппета (Alt+09 в настройке), не пробелы. В примере выше отступ показан пробелами из‑за markdown. Развёртывание в редакторе: имя + Tab.

Набор по умолчанию (если ace.snippets пуст при install/upgrade): getr, getResources, pdoResources, pdoMenu, chunk, snippet, tv, formit и др. Эталон файла: assets/components/ace/snippets/modx.default.snippets.

Свои сокращения добавляйте в системную настройку, не правьте файл в assets (при обновлении пакета файл может перезаписаться).

Автодополнение

Ctrl+Space (или Cmd+Space): сниппеты, свойства, поля ресурса, PHP-функции и др. через процессоры completions/*.

TV типа Ace

  1. Создайте TV → тип ввода Ace
  2. В свойствах TV при необходимости укажите mime/режим (как в форме TV Ace)
  3. Выведите TV на шаблон ресурса

Черновики

При ace.draft_restore = Да текст поля пишется в localStorage. После случайной перезагрузки Ace предлагает восстановить или отменить. Черновик сбрасывается после успешного сохранения формы / MODx.onSaveEditor. Срок хранения: 7 дней.

Связанные разделы