Sto usando Drupal 7, che utilizza jQuery 1.4 come impostazione predefinita? Come posso aggiornarlo all'ultima versione (attualmente 1.7)?
Sto usando Drupal 7, che utilizza jQuery 1.4 come impostazione predefinita? Come posso aggiornarlo all'ultima versione (attualmente 1.7)?
Risposte:
Un modo è installare la versione dev di jQuery Update , che ti dà la possibilità di usare jQuery 1.7 (visitando la pagina delle impostazioni su http://mysite.com/admin/config/development/jquery_update ).
Attenzione, al momento è noto che JavaScript non è presente altrove nel sito (ad esempio, il menu a discesa del widget in una pagina Gestisci campi non funzionerà più). Se sei pronto a risolvere questo, e altri piccoli fastidi, questa è probabilmente la soluzione migliore. Dovresti anche notare che l'uso della versione dev di un modulo non è privo di rischi, poiché le probabilità che abbia dei bug sono molto più alte rispetto all'utilizzo di una versione specifica.
Se vuoi farlo manualmente, avrai un sacco di codice javascript di base da riscrivere per far funzionare il tuo sito come previsto; jQuery ha cambiato moltissimo tra la versione 1.4 / 1.5 e 1.7, quindi gran parte del codice javascript Drupal di base semplicemente non funzionerà con esso.
Se vuoi semplicemente inserire una versione di jQuery 1.7, probabilmente potresti implementare hook_js_alter()
, disinserire il file jQuery di base e aggiungerne uno al suo posto:
function MYMODULE_js_alter(&$js) {
$path = drupal_get_path('module', 'MYMODULE') . '/path/to/jquery.1.7.js';
// Copy the current jQuery file settings and change
$js[$path] = $js['misc/jquery.js'];
// Update necessary settings
$js[$path]['version'] = 1.7;
$js[$path]['data'] = $path;
// Finally remove the original jQuery
unset($js['misc/jquery.js']);
}
Una volta che lo hai fatto, apri gli Strumenti per gli sviluppatori / Firebug e vedrai tutte le modifiche che dovrai apportare per far funzionare il resto del sito JS :)
AGGIORNARE
L'ultima versione dell'aggiornamento jQuery ( 7.x-2.3 al momento della stesura) consentirà ora di aggiornare jQuery alla v1.8. Molto bello.
Il modulo jQuery Multi è un'altra opzione, grazie a Goron per averlo sottolineato nei commenti. Come osserva anche, questo modulo ha una versione stabile e non romperà alcun javascript esistente.
Ispirato alla documentazione di hook_js_alter , i seguenti lavori. Puoi inserirlo nel template.php del tuo tema. Ciò richiede l'utilizzo di un diverso tema di amministrazione per evitare conflitti con il core di Drupal e si presuppone che jquery-1.8.3.min.js si trovi in una cartella chiamata 'js' all'interno del tema (regolare per adattarsi).
function [theme_machine_name]_js_alter(&$javascript) {
$javascript['misc/jquery.js']['data'] = drupal_get_path('theme', '[theme_machine_name]') .
'/js/jquery-1.8.3.min.js';
$javascript['misc/jquery.js']['version'] = '1.8.3';
}
Non sono sicuro di quale sia il tuo scopo qui, ma quando avevo bisogno di una versione specifica per lo sviluppo di moduli personalizzati sono stato in grado di farlo utilizzando jQuery.noConflict .
È un lavoro extra rispetto al modulo jquery_update (che all'OP non sembra importare), ma significa che non devi preoccuparti se rovinerai l'intera installazione di Drupal.