Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/11/2011, 12:35
Avatar de NUCKLEAR
NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 14 años
Puntos: 890
Respuesta: Tips, faqs, piezas de codigo, para desarrolladores

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
  1. <script type="text/javascript">
  2. var $jq = jQuery.noConflict();
  3.  
  4. /* Listo, ahora podemos usar la funcionalidad de nuestra segunda version de Jquery.
  5. Por ejemplo aca hago uso de la function [URL="http://twitter.github.com/bootstrap/javascript.html"]modal de Twitter bootstrap[/URL]
  6. */
  7.  
  8. $jq('#login-user-link').click(function(){
  9.  
  10.   $jq("#modal-from-login").modal({
  11.         backdrop : true,
  12.         show : true
  13.     });
  14. });
  15.  
  16. </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.
__________________
Drupal Argentina