Добавляем HTML код в тело страницы перед закрывающимся HEAD или BODY тегом

Итак, проблема.

У вас имеется страница, на которой необходимо добавить javascript или к примеру CSS стили. Скрипт можно подключить в конце страницы, перед закрывающимся BODY тегом, а стили необходимо добавить в секцию HEAD.

Конечно, можно создать новый шаблон, чтобы это сделать, но такая страница только одна и заводить новый шаблон для нее не хочется.

Найдем решение

MODX Revolution позволяет решить описанную проблему очень легко.

Достаточно внимательно изучить список методов класса modX.

Вот те функции, которые нас интересуют:

  • modX::regClientCSS Добавляет CSS код на страницу путем включения его внутрь тега HEAD генерируемого документа.
  • modX::regClientHTMLBlock Включает HTML код на страницу, размещая его перед закрытием тега BODY документа.
  • modX::regClientScript Добавляет JavaScript код на страницу, размещаея его перед закрытием тега BODY документа.
  • modX::regClientStartupHTMLBlock Добавляет HTML на страницу перед закрытием тега HEAD.
  • modX::regClientStartupScript Добавляет JavaScript код на страницу, размещаея его внутри тега HEAD документа.

Примеры

Проще всего воспользоваться этими функциями, создав небольшой сниппет, который будет их вызывать, а уже этот сниппет добавить на страницу.

Посмотрим на пример работы с этими функциями. Обратите внимание, что при добавлении javascript и CSS вам не нужно формировать соответствующие link, style, script теги, эту операцию выполняет MODX.

# добавим CSS файл в начало страницы
$modx->regClientCSS('assets/css/style.css');

# добавим футер
$modx->regClientHTMLBlock('<div id="footer">(c) 2012 My company</div>');

# добавим скрипт в конец страницы
$modx->regClientScript('assets/js/footer.js');

# добавим произвольный тег в начало страницы, до закрытия тега HEAD
$modx->regClientStartupHTMLBlock('<tag></tag>');

# добавим скрипт в начало страницы, в тег HEAD
$modx->regClientStartupScript('assets/js/onload.js');

Как видите, использовать эти функции очень просто, а в тоже время они дают богатые возможности и при должном использовании могут значительно упростить разработку сайта.