Отключение Mootools в Joomla 1.6

Вторник, 18 Январь 2011

 

С выходом новой 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, поправьте меня в комментариях.

 

PS. И не забудьте подписаться на ленту новостей RSS

 

Метки:

Похожие статьи:

Комментарии 

 
anonim Вторник, 05 Апрель 2011

Вот спасибо большое за метод, долго бился с отключением скрипта, подгрузка библиотек отключалась, но в 1.6 появляется ещё какой-то код, сразу после подключения мунтулса. Вот он выдаёт ошибку если библиотеки не подключены.

А этим методом всё убралось сразу =)))

 

 
 
anonim Пятница, 15 Апрель 2011

Круто!!! Спасибо за пост...

 

 
 
anonim Понедельник, 30 Май 2011

сервер:
+ 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

 

 
 
anonim Понедельник, 30 Май 2011

Конгениально! Ненавижу такие "методы". Вы как слоны в посудной лавке себя ведёте.


Вы в курсе, что скрипты в $document->_scripts не просто так попадают? А потому, что различные компоненты этого хотят. Например, карта Гугля, рейтинг, лайтбоксы и проч. - всё это перестаёт работать при вашем "методе".

Правильнее будет итерировать по списку и изымать ненужные элементы..

 

 
 
anonim Вторник, 07 Июнь 2011

$headerstuff = $this->getHeadData();
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);

 

 
 
anonim Суббота, 14 Апрель 2012

Ребята! Проблема почти аналогичная, но более расширенная. joomal 2.5 Шаблон Ja Tiris. Весь Head формируеться

Так вот - нужно отключить мутулз для Фронтенда и некоторые другие скрипты
/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 и еще нескольких

Как это сделать??????

 

 
 
anonim Пятница, 22 Июнь 2012

что то у вас много кода замутнённого получается, я вот самый просто и понятный код нашёл из 5 строчек работает на любой версии джумлы 1.5 2.5 1.7 http://si-web.ru/blog/53-otkljuchenie-mootools-v-joomla-25-17.html

 

 
 
anonim Воскресенье, 26 Август 2012

у меня проблема с JAT3 шаблоном - не вставляет ява-скрипты и фреймы - обрезает первую половину кода (счетчики и пр)
вставляю при выключенном редакторе как побороть? СПАСИБО

 

 

Добавить комментарий