Вставка HTML кода перед закрывающими тегами BODY или HEAD
Проблема
У вас есть ресурс, в который вы хотите добавить некоторый скрипт или CSS стили. Допустим вам нравится, чтобы скрипты находились внизу страницы, перед закрывающим тегом BODY и CSS должны попадать в HEAD. В то же время эти скрипты (стили) нужны только для данной страницы (ресурса). И вы не хотите создавать новые шаблонирующие элементы (несмотря на простоту их создания в MODX) только для этой одной страницы.
Это ценное решение пришло от всем известного Марка Хамстры и находится в руководстве: modX.regClientHTMLBlock. Это часть MODX API, которая делает как раз, что нам нужно - посылает часть кода прямо перед закрывающим тегом BODY.
Например, вот так: modX.regClientCSS вы можете отправить CSS в head элемент. Также есть следующие методы:
modX.regClientScript modX.regClientStartupHTMLBlock modX.regClientStartupScript modX.getRegisteredClientScripts modX.getRegisteredClientStartupScripts
Сниппет добавления HTML кода на страницу
Для использования всех этих чудестных MODX вещей нужно написать коротенький сниппет
$modx->regClientHTMLBlock($what); return '';
Разберём по частям:
$modx->regClientHTMLBlock » Это наш маленький php класс, замените его на $modx->regClientCSS для проделывания того же с CSS стилями.
($what) » Это переменная, значение которой вы передаёте в сниппет при его вызове.
return ''; » тут всё ясно.
Использование
Подсмотрел тут
22-09-2012 сниппеты MODx API Виктор Матушевский
10.10.2012 15:07Не совсем понятна цель данного решения. Я правильно понял, что здесь ещё не хватает условия срабатывания снипета в зависимости от ресурса? и он предназначен если в шаблон просто невозможно поместить вызов скрипта и СSS в нужное место только для одного ресурса с использованием того же модификатора?
Viktor Minator
10.10.2012 15:11Приведу пример использования: пишу я в свой блог статью и там для Демо нужно подключить одну библиотеку или какие-то стили, поэтому помещаю в content вызов SnippetName с нужной библиотекой.
Второй способ: назначать библиотеку как TV для разных шаблонов SnippetName? &what=^[[*TVName]]^
10.10.2012 15:59Спасибо за разъяснение. Действительно через контент удобно управлять подключением. Для менеджеров можно разместить код в шаблон редактора.
Alexey Kartashov
30.10.2012 15:36А нету решения для склейки скриптов и стилей средствами revo?
Alexey Kartashov
30.10.2012 15:37А нету решения для склейки скриптов и стилей средствами revo?
Вика Бубнова
13.05.2013 22:56Скажите, а можно ли как нибудь изменить исходный код html?
У меня проблема. Мне нужно добавить на сайт значки соц. сетей.
Я код для добавления написала, но не могу найти куда его вставить.
Помогите пожалуйста!
Viktor Minator
13.05.2013 23:03только не этим способом. Вставьте в код шаблона. Зависит от самого сайта, как там всё сделано...