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

Получение ссылки на глобальный объект JDocument:

$document = JFactory::getDocument();

Этот объект хранит название, описание, язык, направление текста, дату модификации, кодировку и некоторые другие значения. Класс JDocument содержит несколько методов для получения этих значений: getTitle()getDescription()getLanguage()getDirection()getModifiedDate()getCharset() и др. Соответственно, методы для задания этих значений называются setTitle()setDescription() и т.д. и принимают в качестве аргумента новое значение.

Получение значения мета-тега

string getMetaData(string $name, bool $http_equiv = false)

где

$name - название тега;
$http_equiv - относится ли этот мета-тег к группе http-equiv (например, Content-TypeRefresh и др.).

Примеры:

echo $document->getMetaData('content-type', true);
echo $document->getMetaData('keywords', false);

 

Изменение значения мета-тега

void setMetaData(string $name, string $content, bool $http_equiv = false, bool $sync = true)

где

$content - значение атрибута content;
$sync - синхронизировать ли тег content-type с MIME-типом документа.

Пример:

$document->setMetaData('content-type','text/html',true,true);

Добавление скриптов и каскадных таблиц стилей

Перечисленные ниже методы добавляют в секцию <head> соответствующие теги.

Добавление ссылки на скрипт:

void addScript(string $url, string $type = "text/javascript", bool $defer = false, bool $async = false)

где

$url - URL скрипта;
$type - тип скрипта (text/javascript, text/vbscript и т.д.);
$defer - добавлять ли к тегу <script> атрибут defer="defer";
$async - добавлять ли к тегу <script> атрибут async="async".

Пример:

$document->addScript('/components/com_mycomponent/js/script.js');

Добавление непосредственно текста скрипта

void addScriptDeclaration(string $content, string $type = 'text/javascript')

где

$content - текст скрипта;
$type - тип скрипта.

Пример:

$document->addScriptDeclaration('alert("Hello World")');

Добавление внешней таблицы стилей

void addStyleSheet(string $url, string $type = 'text/css', string $media = null, array $attribs = array())

где

$url - URL файла CSS;
$type - MIME-тип файла;
$media - значение атрибута media (screenprintprojection и др.);
$attribs - массив других атрибутов тега <link>.

Пример:

$document->addStyleSheet('/components/com_mycomponent/css/style.css');

Добавление внутренней таблицы стилей

void addStyleDeclaration(string $content, string $type = 'text/css')

где

$content - код CSS;
$type - значение атрибута type будущего тега <style>.

Пример:

$document->addStyleDeclaration('.myclass { color: red; }');