
O Joomla 1.5 como a maioria dos desenvolvedores de websites utilizando este CMS já deve ter reparado, faz por defeito o carregamento da versão 1.11 ad Framework Mootools. Tanto no backend como no frontend. O carregamento desta versão ultrapassada do Mootools cria alguma limitação no desenvolvimento de aplicações javascript recentes utilizando Joomla 1.5. Embora pouco ou nada se possa fazer para desabilitar o load desta versão do mootools no backend (nem se deve fazer), desabilitar o carregamento da versão 1.11 do Mootools no frontend de um site em Joomla é extremamente útil. 1º - Se não utiliza "efeitos" javascript é um peso desnecessário ao carregamento do seu website; 2º - A versão 1.11 está ultrapassada;
3º - Pode haver incompatibilidades caso deseje utilizar outras frameworks javascript;
4º - Permite-lhe actualizar para a versão 1.2 do Mootools.
O código mais utilizado, incluindo eu, aqui no WebLouca passa por adicionar as seguintes linhas logo abaixo do <head> no index.php:
php <?php //Remover mootools $headerstuff = $this->getHeadData(); reset($headerstuff['scripts']); $moo = key($headerstuff['scripts']); unset($headerstuff['scripts'][$moo]); //A linha abaixo não remove o Mootools mas sim o load default do ficheiro caption.js, //utilizado por algumas extensões, pelo que pode ser ignorada unset($headerstuff['scripts']['/media/system/js/caption.js']); $this->setHeadData($headerstuff); ?>
No entanto a solução acima, como me deparei à pouco tempo, não funciona caso o website possua um sistema de reguisto. Isto porque quando o utilizador realiza o login o ficheiro Mootools 1.11 será carregado, criando incompatibilidade com a versão 1.2 ou outra framework Javascript.
A solução mais imediata que me ocorreu foi bloquear o load do Mootools 1.11 via .htaccess, no entanto existe outra solução que passa por modificar o código acima, de forma a que o Mootools não carregue também para utilizadores registados. O código ficaria algo do género: javascript <head> <?php // remove mootools 1.11 para guests e utilizadores reguistados $utilizador =& JFactory::getUser(); if ($utilizador->get('guest') == 1 or $utilizador->usertype == 'Registered') { $headerstuff = $this->getHeadData(); $headerstuff['scripts'] = array(); $this->setHeadData($headerstuff); } ?> <!-- A linha abaixo permite "injectar" css e js directamento no <head>--> <jdoc:include type="head" /> <!-- A framework javascript que desejar --> <script type="text/javascript" src="Mootools12.js"></script> <!-- outro codigo --> </head>
Gostou deste Artigo?
Subscreva o feed RSS ou reguiste-se na Newsletter do WebLouca, agora!
Categoria:
Se preferir, pode ainda deixar um comentário
Trackback(0)
 |
Outubro 05, 2008
http://www.diversidades.com.br