jQuery 1.4를 기본값으로 사용하는 Drupal 7을 사용하고 있습니까? 최신 버전 (현재 1.7)으로 업데이트하려면 어떻게해야합니까?
jQuery 1.4를 기본값으로 사용하는 Drupal 7을 사용하고 있습니까? 최신 버전 (현재 1.7)으로 업데이트하려면 어떻게해야합니까?
답변:
한 가지 방법은 설치하는 것입니다 dev에 버전 의 jQuery를 업데이트 (에서 설정 페이지를 방문하여 당신에게 jQuery를 1.7 사용할 수있는 옵션을 제공 http://mysite.com/admin/config/development/jquery_update ).
그러나 현재 사이트의 다른 곳에서 JavaScript를 중단하는 것으로 알려져 있습니다 (예 : 필드 관리 페이지의 위젯 드롭 다운이 더 이상 작동하지 않음). 그 문제와 다른 작은 성가심을 고칠 준비가되어 있다면 이것이 가장 좋은 방법 일 것입니다. 또한 모듈의 dev 버전을 사용하는 것이 특정 릴리스를 사용하는 것보다 버그가 발생할 가능성이 높기 때문에 위험이 없습니다.
수동으로 수행하려면 사이트가 예상대로 작동하도록 다시 작성할 수있는 많은 핵심 자바 스크립트 코드가 있습니다. jQuery는 1.4 / 1.5 버전과 1.7 버전 사이에서 끔찍한 부분을 변경했기 때문에 많은 Drupal Javascript 코드가 작동하지 않습니다.
jQuery 1.7 버전을 드롭하려면을 구현 hook_js_alter()
하고 코어 jQuery 파일을 설정 해제 한 다음 원하는 곳에 파일을 추가하십시오.
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']);
}
이 작업을 마치면 개발자 도구 / Firebug를 열고 나머지 사이트 JS를 작동시키기 위해 수행해야 할 모든 변경 사항을 확인할 수 있습니다. :)
최신 정보
최신 버전의 jQuery 업데이트 ( 작성시 7.x-2.3 )를 통해 jQuery를 v1.8로 업데이트 할 수 있습니다. 매우 시원합니다.
jQuery를 멀티 모듈은 다른 옵션, 코멘트에 그 지적에 대한 goron 덕분이다. 또한이 모듈은 안정적인 릴리스를 제공하며 기존 자바 스크립트를 중단하지 않습니다.
hook_js_alter 문서에서 영감을 받아 다음과 같이 작동합니다. 테마의 template.php에 배치 할 수 있습니다. 이것은 Drupal 코어와의 충돌을 피하기 위해 다른 관리자 테마를 사용해야하며, jquery-1.8.3.min.js가 테마 내의 'js'폴더에 있다고 가정합니다 (적합하게 조정 됨).
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';
}
나는 당신의 목적이 무엇인지 잘 모르겠지만 사용자 정의 모듈 개발을 위해 특정 버전이 필요할 때 jQuery.noConflict 를 사용하여 그렇게 할 수있었습니다 .
jquery_update 모듈 (OP가 마음에 들지 않는 것)과 비교할 때 약간의 추가 작업이지만 전체 drupal 설치를 망칠 것인지 걱정할 필요가 없습니다.