Добавление тегов в HEAD документа, используемых в расширениях для Joomla
Разрабатывая расширения для Joomla (плагины, модули, компоненты), разработчики часто используют отдельные стилевые таблици (CSS) и javascript файлы. Из-за этого возникает вопрос каким образом подключить все эти файлы в документ, что бы при этом не нарушить стандарты W3C - структуры HTML документа. То есть ссылки на подключаемые таблици стилей и javascript файлы, по стандарту должны находится в HEAD документа.
Довольно часто в расширениях для Joomla, разработчики пренебрегают этим правилам и нарушают структуру HTML документа, внедряя каскадные таблици стилей и подключая javascript файлы в тело документа HTML, в позиции вывода модуля. Это не правильно... И может в лучшем случае привести к не валидному HTML коду, а в худшем к нарушению работы других javascript, используемых в документе HTML.
Решение этого вопроса довольно простое и удобное в использовании, для этого необходимо получить объект документа, вызвав метод getDocument() классa JFactory, который вернет нам объект JDocument со свойствами и методами. Вызывая эти методы, в объект JDocument будут добавляться новые значения свойств, то есть ссылки и теги для HEAD.
Выглядит это так:
Создаем объект:
- <?php
- $document =& JFactory::getDocument();
- ?>
Вызываем методы с передачей им параметров:
Так создаем и добавляем в HEAD документа ссылку на CSS файл, метод - addHeadLink():
- $link = JURI::root().'modules/mod/tmpl/style.css';
Так создаем и добавляем в HEAD документа ссылку на javascript файл, метод - addScript():
- $document->addScript(JURI::root().'modules/mod/tmpl/script.js');
Так создаем и добавляем в HEAD документа произвольный HTML код, метод - addCustomTag():
- $document->addCustomTag('<script type="text/javascript" src="http://vkontakte.ru/js/api/share.js?9" charset="windows-1251"></script>');
И еще один полезный метод который может пригодится, метод - getBase(), вернет текущий адрес страницы:
- $url = $document->getBase();
PS. И не забудьте подписаться на ленту новостей RSS

Комментарии
Поздравляю всех с крещенскими праздниками!
В этой статье пример того как отключить Mootools в шаблоне Joomla. Пример как для joomla 1.5 так и для новой joomla 1.6, способы различны.
jQuery(function ($){
function formatText(inde x, panel) {
return index + "";
}
$(document).ready$(function () {
$('.anythingSlider').anythingSlider( {
easing: "easeInOutExpo", // Anything other than "linear" or "swing" requires the easing plugin
autoPlay: true, // This turns off the entire FUNCTIONALY, not just if it starts running or not.
delay: 3000, // How long between slide transitions in AutoPlay mode
startStopped: false, // If autoPlay is on, this can force it to start stopped
animationTime: 600, // How long the slide transition takes
hashTags: true, // Should links change the hashtag in the URL?
buildNavigation : true, // If true, builds and list of anchor links to link to each slide
pauseOnHover: true, // If true, and autoPlay is enabled, the show will pause on hover
startText: "Start", // Start text
stopText: "Stop", // Stop text
navigationForma tter: formatText // Details at the top of the file on this use (advanced use)
});
$("#slide-jump").click(function( ){
$('.anythingSlider').anythingSlider( 6);
});
});
});
jQuery(function ($){
function formatText(inde x, panel) {
return index + "";
}
$(document).ready$(function () {
$('.anythingSlider').anythingSlider( {
easing: "easeInOutExpo",
autoPlay: true,
delay: 3000,
startStopped: false,
animationTime: 600,
hashTags: true,
buildNavigation : true,
pauseOnHover: true,
startText: "Start",
stopText: "Stop",
navigationForma tter: formatText
});
$("#slide-jump").click(function( ){
$('.anythingSlider').anythingSlider( 6);
});
});
});
alert('скрипт подключен!'), если вылетит алерт значит все подключили правильно. Это первое что требуется выяснить, а затем уже возможные ошибки из-за несовместимости с Mootools который joomla подгружает в шаблон/документ.
А ты еще что нибудь подсказать может у меня в скрипте где-то косяк посмотри пожалуйста
Здоров'ячка вам і натхнення у роботі! )