Как экранировать символы в Modx Revo-самописный плагин

date_range 5 Март 2018 visibility363
add_alert Если нам надо вывести синтаксис на страницу
hdr_strong Меньше слов, больше действий!

Допустим, мы ведем блог, пишем статьи и нужно вывести вызов сниппета, или какой-либо тег Modx Revо. Для решения задачи есть много вариантов, рассмотрим пример:

  1. Самый оптималный вариант это- автозамена квадратных скобок и фигурных скобок, путем создания плагина
    вешаем плагин на системное событие OnLoadWebDocument (тоесть плагин будет делать свое дело только после загрузки страницы)
    как веать на событие плагин
    И вставляем следующий код:
    <?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;');
            $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;
    }
    Плагин готов, теперь каждый кусок вызова сниппета или тэгов модкс оборачиваем в pre .

     

Есть еще много различных вариантов, но лично мне хватает и этого простого способа
beenhere Решено- осталиь вопросы ?
Хостинг сайта
Хостинг от Макхост