Отключение Mootools в Joomla 1.6
С выходом новой Joomla 1.6, разработчики шаблонов для этой CMS, желающие использовать в своем шаблоне не стандартную javascript библиотеку, такую например как jQuery или тот же mootools, но более ранней версии (в joomla 1.6 используется mootools 1.3), или более свежие версии библиотеки mootools, столкнутся с той же проблемой что и в joomla 1.5.
Но разница в том, что способ решения этой проблемы для Joomla 1.5 не прокатит в новой Joomla 1.6. Тоесть вот такое обнуление скриптов встраиваимых joomla в head шаблона, не подойдет для joomla 1.6:
$headerstuff = $this->getHeadData(); $headerstuff['scripts'] = array(); $this->setHeadData($headerstuff);
Связано это по видимому с тем что в joomla 1.6 данные для встраиваемых HTML тегов берутся из :
$document =& JFactory::getDocument();
Переменная $document содержит объект JDocumentHTML, содержащий в себе массив:
JDocumentHTML Object ( [_links] => Array ( [0] => Array ( ) [template] => site.com [baseurl] => /site.com [params] => JRegistry Object ( [data:protected] => stdClass Object ( ) ) [_file] =>\templates\yourtheme\index.php [_template:protected] => [_template_tags:protected] => Array ( ) [_caching:protected] => [title] => Home [description] => [link] => [base] => http:site.com/ [language] => en-gb [direction] => ltr [_generator] => Joomla! 1.6 - Open Source Content Management [_mdate] => [_tab] => [_lineEnd] => [_charset] => utf-8 [_mime] => text/html [_namespace] => [_profile] => [_scripts] => Array ( [/media/system/js/core.js] => text/javascript [/media/system/js/mootools-core.js] => text/javascript [/media/system/js/caption.js] => text/javascript ) [_script] => Array ( ) [_styleSheets] => Array ( ) [_style] => Array ( ) [_metaTags] => Array ( [http-equiv] => Array ( [content-type] => text/html ) [standard] => Array ( [robots] => index, follow [keywords] => [rights] => [language] => en-GB ) ) [_engine] => [_type] => html [_errors:protected] => Array ( ) )
В котором нужно обнулить (затем можно и установить свои значения) массивы _scripts и _script, следующим образом:
$document =& JFactory::getDocument();$document->_scripts=array();$document->_script=array();
И тогда в вашем шаблоне для joomla 1.6 должно быть примерно так:
<?php $document =& JFactory::getDocument(); $document->_scripts=array(); $document->_script=array();?><!DOCTYPE html><html lang="en"><head> <script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/js/mootools-1.2.4-core-yc.js"></script><jdoc:include type="head" /><link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/css/template.css" type="text/css" media="screen"/> </head>...
P.S Возможно я ошибаюсь в причинах неработоспособности кода решения этой проблемы от joomla 1.5, поправьте меня в комментариях.
Отключение Mootools в Joomla 1.6 - Генератор расширений Joomla и многое другое на нашем сайте посвященном работе расширений, компонентов, модулей, плагинов для линейки Joomla. Отправляйте ссылку на страницу своим друзьям и в социальные сети воспользовавшись графическими иконками выше.