Разрботка расширений для CMS Joomla - Страница 22
Обратите внимание, что массив $query должен быть передан в функцию <имя компонента>BuildRoute() по ссылке. По мере заполнения массива $segments обработанные элементы удаляются из массива $query с помощью unset(). Любые элементы, которые останутся в массиве $query после работы функции <имя компонента>BuildRoute(), останутся и в URL. Если мы передадим $query по значению, вызовы функции unset() будут действовать только на локальную копию этого массива и все элементы старого URL будут появляться после SEF-сегментов.
Документ (класс JDocument)
Документ- это буфер, использующийся для хранения содержимого веб-страницы, которая будет показана пользователю после выполнения запроса.
Получение ссылки на глобальный объект 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-Type, Refresh и др.).
Примеры:
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);
Добавление скриптов и каскадных таблиц стилей
Перечисленные ниже методы добавляют в секцию
соответствующие теги.Добавление ссылки на скрипт:
void addScript(string $url, string $type = "text/javascript", bool $defer = false, bool $async = false)
где
$url - URL скрипта; $type - тип скрипта (text/javascript, text/vbscript и т.д.); $defer - добавлять ли к тегу