Экранирование тегов в 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('[',']','{','}','`'); $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> выводятся как теги. Всего наилучшего и плодотворной работы
Комментарии ()