Как отключить очистку кода в TinyMCE для MODx

Как всегда решение такой несложной на первый взгляд задачи затянулось на часы.

Итак, как же отключить автоматическое удаление неизвестных TinyMCE тегов?
Для начала нужно сказать, что для MODx Revoluion версия TinyMCE — 3.5.4 (плагина — 4.3.3) и датируется июлем 2012. В то время, как на официальном сайте сейчас можно скачать версии 4.0.26, либо 3.5.11 из третьей ветки.
Не нужно говорить, что за два года многое изменилось. Но для MODx приходится использовать старый плагин.

Отключить cleanup в TinyMCE можно несколькими способами:

  1. Передать параметр «verify_html : false» в вызове Javascript.
    tinyMCE.init({
            ...
            verify_html : false
    });
    

    Но где он находится в MODx я не нашел. Поэтому переходим к следующему пункту.

  2. Настроить список поддерживаемых тегов в файле xconfig.js.
    Либо дописать недостающие теги. Но в нашем случае легче совсем вырубить, указав валидными их все.

    var tinymce_valid_elements = '*[*]';
    

    В предвкушении победы заливаем конфиг на /assets/components/tinymce. И тут оказывается, что в данной реализации плагина он вообще не подгружается.
    Самое интересное, что поэтому нет нужных HTML5 тегов, например <figure> и <figcapture>, и они нещадно режутся.
    Ладно, едем дальше.

  3. И наконец финальное решение:
    Отредактировать /core/components/tinymce/templates/script.tpl:

    Tiny.config = <?php echo $this->modx->toJSON($this->properties); ?>;
    Tiny.config.valid_elements = '*[*]'; //отключаем фильтр как в случае "verify_html : false"
    

    Туда же можно закинуть огромный список html-тегов через Tiny.config.valid_elements, но я этого делать не рекомендую.

Перезагружаем админку и видим, что новые теги больше не режутся. Win!
Лично мне сам редактор не особо нужен, но добавлять вручную ссылки на статьи вида [[~123]] каждый раз разворачивая и копаясь в дереве элементов — сизифов труд. TinyMCE облегчает данную задачу.

Комментарии читателей

  1. Григорий 10.08.2014
  2. Григорий 10.08.2014
    • zooks 10.08.2014
  3. Андрей 20.03.2015
  4. Георгий 14.11.2015
    • zooks 15.11.2015
  5. Serega 19.02.2016
  6. Sergeo 31.10.2017

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