Como usar la ultima version de Jquery en Drupal sin que interfiera en los modulos contribuidos que usan la version del core.
Si sos un theme developer sabras que Drupal usa una version de Jquery para hacer funcional los modulos del core (Table drag, Ajax, upload).
1.2 Para la version 6.x
1.4.4 para la version 7.x
Recientemente en un proyecto tenia que integrar
Twitter Bootstrap y
Jquery mobile
El cual requiere la version mas reciente de Jquery > 1.6.4 haciendo totalmente imcompatible el funcionamiento de los componentes del core Drupal mencionados.
Aunque existe el modulo
Jquery update, que no solo actualiza la version de Jquery si no tambien reemplaza los scripts del core para que funcionen de manera adecuada, pero esta solo hasta una version 1.3x para la version 6 de Drupal y la 1.5x para la version 7 y no es suficiente....
La solucion fue bastante simple, el uso de
noConflict
Solo cargamos nuestra nueva version de Jquery(hay varias maneras de hacerlo) desde nuestro *.info, o llamandolo con la function drupal_add_js()
Al empezar nuestro script con la version nueva de Jquery
Código Javascript
:
Ver original<script type="text/javascript">
var $jq = jQuery.noConflict();
/* Listo, ahora podemos usar la funcionalidad de nuestra segunda version de Jquery.
Por ejemplo aca hago uso de la function [URL="http://twitter.github.com/bootstrap/javascript.html"]modal de Twitter bootstrap[/URL]
*/
$jq('#login-user-link').click(function(){
$jq("#modal-from-login").modal({
backdrop : true,
show : true
});
});
</script>
Como inconveniente no olviden de que tenemos que cargar dos librerias Jquery a la vez(supone mas de 100k la primera vez) pero creo que vale la pena con las cosas maravillosas que se pueden lograr con Drupal Twitter bootstrap y Jquery.