Ich verwende Drupal 7, das standardmäßig jQuery 1.4 verwendet. Wie kann ich es auf die neueste Version (derzeit 1.7) aktualisieren?
Ich verwende Drupal 7, das standardmäßig jQuery 1.4 verwendet. Wie kann ich es auf die neueste Version (derzeit 1.7) aktualisieren?
Antworten:
Eine Möglichkeit besteht darin, die Entwicklungsversion von jQuery Update zu installieren , mit der Sie jQuery 1.7 verwenden können (indem Sie die Einstellungsseite unter http://meinewebsite.com/admin/config/development/jquery_update aufrufen ).
Beachten Sie jedoch, dass derzeit bekannt ist, dass JavaScript an anderer Stelle auf der Website beschädigt wird (z. B. funktioniert das Widget-Dropdown auf einer Seite zum Verwalten von Feldern nicht mehr). Wenn Sie bereit sind, das und andere kleine Probleme zu beheben, ist dies wahrscheinlich die beste Wahl. Sie sollten auch beachten, dass die Verwendung der Dev-Version eines Moduls nicht ohne Risiken ist, da die Wahrscheinlichkeit, dass es Fehler aufweist, viel höher ist als die Verwendung einer bestimmten Version.
Wenn Sie es manuell tun möchten, müssen Sie viel JavaScript-Code neu schreiben, damit Ihre Website wie erwartet funktioniert. jQuery hat zwischen Version 1.4 / 1.5 und 1.7 eine Menge verändert, so dass der Drupal-Javascript-Kerncode einfach nicht damit funktioniert.
Wenn Sie nur eine Version von jQuery 1.7 einbinden möchten, können Sie diese wahrscheinlich implementieren hook_js_alter()
, die jQuery-Kerndatei entfernen und an ihrer Stelle eine eigene hinzufügen:
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']);
}
Wenn Sie das getan haben, öffnen Sie Developer Tools / Firebug und Sie werden alle Änderungen sehen, die Sie vornehmen müssen, damit der Rest der Site JS funktioniert :)
AKTUALISIEREN
Mit der neuesten Version von jQuery Update ( 7.x-2.3 zum Zeitpunkt des Schreibens) können Sie jetzt jQuery auf v1.8 aktualisieren. Sehr cool.
Das jQuery Multi- Modul ist eine weitere Option, dank Goron, der darauf in den Kommentaren hingewiesen hat. Wie er auch bemerkt, hat dieses Modul eine stabile Version und wird kein vorhandenes Javascript beschädigen.
Inspiriert von der hook_js_alter- Dokumentation funktioniert Folgendes. Sie können es in die template.php Ihres Themas einfügen. Dies setzt voraus, dass Sie ein anderes Admin-Thema verwenden, um Konflikte mit dem Drupal-Kern zu vermeiden, und dass sich jquery-1.8.3.min.js in einem Ordner namens 'js' innerhalb des Themas befindet (entsprechend anpassen).
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';
}
Ich bin mir nicht sicher, was Ihr Zweck hier ist, aber als ich eine bestimmte Version für die Entwicklung von benutzerdefinierten Modulen benötigte, konnte ich dies mithilfe von jQuery.noConflict tun .
Es ist etwas mehr Arbeit im Vergleich zum Modul jquery_update (was das OP nicht zu stören scheint), aber es bedeutet, dass Sie sich keine Gedanken darüber machen müssen, ob Sie Ihre gesamte Drupal-Installation durcheinander bringen werden.