Как в MODX вставлять различный код в страницу, чтобы он отображался на странице?
Приветствую.
Может быть кто то сталкивался с подобным или знает как это реализуется и подскажет возможные варианты.
Кто пользуется MODX, тот знает, что встраивая в страницу (материал) вызов чанка, сниппета и прочего, в том числе стороннего кода, парсер MODX обрабатывает такой код и выводит его содержимое. Нужно сделать так, как это есть во множестве редакторов - экранирование любого кода и его последующий вывод на странице. К примеру, если я напишу в материале код: [[*pagetitle]], то MODX выведет на странице заголовок материала, а хотелось чтобы выводилось именно так как написано: [[*pagetitle]]
Или, к примеру, написал в материале html код и надо сделать так, чтобы он отображался на странице как исходный html кон ничем не обработанный.
Перепробовал различные редакторы, но ничего такого в них нет. Единственное, что нашел - это Gist.github, но лазить туда постоянно и что то добавлять, а затем вставлять скрипт на сайт - крайне неудобно. Какие варианты?
Я сделал так:
- подключил Google Prettify отсюда
- в настройках MODx в Селекторы CSS создал стиль для визуального редактора с помощью кода codeprettify=prettyprint.
- при добавлении кода обрамляю его в этот стиль.
Должно работать.
Увидеть в живую можно у меня в блоге.
Только сегодня утром пробовал этот вариант. Может быть что то не так делаю? Как делаю:
- добавляю в head шаблона prettify.js и prettify.css
- к тегу body страницы дописываю onload="prettyPrint()"
- в материал добавляю, к примеру, <pre class="prettyprint">[[*pagetitle]]</pre>
Выводится pagetitle страницы, а не сам написанный код.
В чем может быть ошибка?
Вы все правильно делаете. У меня итоговый стиль в исходном коде выглядит так: <pre class="prettyprint prettyprinted">. Проверьте добавляется ли у вас класс prettyprinted в коде страницы на выходе.
У меня все так сделано на MODx Evo. Но скорее всего не должно быть разницы в этом.
Привет. Та же проблема. Помогло исправление < на <и > на >
А [[*pagetitle]] вывел так [[*pagetitle]]Или [[*pagetitle:tag]]
Нашёл выход получше!! Позже скину ссылку, как добавлю в блог свой, наверное ещё актуально. Он сам генерирует в админке такой код.