749

Код внутри документов

Достаточно из репозитория MODX установить пакет fixedpre, после этого будет достаточно заключить код внутрь тэга
<fixedpre></fixedpre>
, для красивого отображения можно использовать
&lt;pre&gt;&lt;fixedpre&gt;&lt;/fixedpre&gt;&lt;/pre&gt;


Однако с некоторыми сборками MODX этот плагин начинает ломать работу других модулей или админки, в этом случае есть решение переписать его в сниппет, т.е. отключаем плагин, копируем содержимое плагина в сниппет, после заменяем $output в плагине на
$output = $content;
$output = preg_replace_callback("#()(.*?)()#s",
    "quote_meta", $output);

return $output;
И добавляем к вызову контента в шаблоне документа:
 
В таком случае эта функция будет работать как сниппет для указанных документов, а не для всех как плагин. Однако самым простым решением с подсветкой кода будет объединение PrettyPrint и Jevix, с добавлением параметра к вызову Jevix:
&amp;cfgAllowTagParams=`{"a":["title","href"],"img":{"0":"src","alt":"#text","1":"title","align":["right","left","center"],"width":"#int","height":"#int","hspace":"#int","vspace":"#int"}, "code":["class"], "pre":["class"]}`]]
В prettify.css добавить code.prettyprint с содержимым pre.prettyprint И обрамлять код:
.........ваш код.........
Comment