Отключение 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();
- $this->setHeadData($headerstuff);
Связано это по видимому с тем что в joomla 1.6 данные для встраиваемых HTML тегов берутся из :
- $document =& JFactory::getDocument();
Переменная $document содержит объект JDocumentHTML, содержащий в себе массив:
- [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();
И тогда в вашем шаблоне для joomla 1.6 должно быть примерно так:
- <?php
- $document =& JFactory::getDocument();
- ?>
- <!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, поправьте меня в комментариях.
PS. И не забудьте подписаться на ленту новостей RSS

Комментарии
А этим методом всё убралось сразу =)))
+ Apache 2.2.17
+ MySQL 5.5.8 (Community Server)
+ PHP 5.3.5 (VC6 X86 32bit) + PEAR
+ SQLite 2.8.15
+ OpenSSL 0.9.8o
+ phpMyAdmin 3.3.9
+ ADOdb 5.11
+ Mercury Mail Transport System v4.62
+ FileZilla FTP Server 0.9.37
+ Webalizer 2.01-10
+ Zend Optimizer 3.3.0
+ Perl 5.10.1
+ Mod_perl 2.0.4
+ Tomcat 7.0.3
сведения о Joomla!
Joomla_1.6.3-Stable-Full_Package
конструкция "=& JFactory:" ведёт к ошибке, из кода нужно исключить знак &
смотрим здесь - http://api16.jumapower.com/Joomla-Framework/JFactory.html
Вы в курсе, что скрипты в $document->_scripts не просто так попадают? А потому, что различные компоненты этого хотят. Например, карта Гугля, рейтинг, лайтбоксы и проч. - всё это перестаёт работать при вашем "методе".
Правильнее будет итерировать по списку и изымать ненужные элементы..
unset($headerst uff['scripts'][$this->baseurl.'/media/system/js/mootools.js']);
unset($headerst uff['scripts'][$this->baseurl.'/media/system/js/caption.js']);
...
$this->setHeadData($he aderstuff);
Так вот - нужно отключить мутулз для Фронтенда и некоторые другие скрипты
/counter/counter.js
/components/com_jshopping/js/validateForm.js
А так же отключить загрузку Стилей
/templates/ja_tiris/css/typo.css
/templates/ja_tiris/css/com_redshop.css
/plugins/system/jat3/jat3/base-themes/default/css/usertools.css
/plugins/system/jat3/jat3/base-themes/default/css/addons.css и еще нескольких
Как это сделать??????