Экранирование тегов в Modx Revolution

Экранирование тегов в Modx Revolution

Всем привет, уважаемые подписчики. В этом коротком уроке я научу вас экранировать теги Modx Revolution. Дело в том, что если попробовать вывести, предположим [[+pagetitle]], то выведется не сама конструкция, а заголовок текущей страницы. Для того, чтобы вывестить именно конструкцию силами самой же Modx можно просто добавлять :tag, как в примере:

[[+pagetitle:tag]]

Если же вам нужно экранировать теги чуть ли не в каждой статье и код у вас заключен в <pre>, то создаем плагин pre со следующим кодом:

<?php switch($modx->event->name) { case 'OnLoadWebDocument': function replace_modxtags($matches){ global $modx; $code_entities_match = array('[', ']','{', '}','`'); $code_entities_replace = array('&#91;','&#93;','&#123;','&#125;','&#96;'); $code = str_replace($code_entities_match,$code_entities_replace,$matches[1]); return '<pre'.$code.'</pre>'; } $content = preg_replace_callback("#<pre(.*?)</pre>#s", "replace_modxtags", $modx->resource->get('content')); $modx->resource->set('content', $content); break; }

И вешаем его на событие OnLoadWebDocument (просто ставим галочку во вкладке Системные события). И вуяля. Все modx теги внутри <pre></pre> выводятся как теги. Всего наилучшего и плодотворной работы

Если вы не видите кнопку "Скачать"
отключите блокировщик рекламы

Комментарии ()

  1. Cергей С 24 апреля 2020, 16:04 # 0
    Вроде еще можно с помощью дополнения FixedPre

    Не то, что искали? Воспользуйтесь поиском