관리자 페이지에 문제없이 jQuery 1.7을 어떻게 사용할 수 있습니까?


11

jQuery 1.7을 성공적으로 실행중인 사람이 있습니까? jQuery 1.7 이상이 필요한 내 페이지에서 jQuery 구성 요소를 사용하고 있습니다. 이 버전은 관리 UI에서 원하지 않는 부작용 (예 : 사용 가능한 경우 추가 제어를 표시하지 않는 확인란) 또는 필드 위젯이 활성화되지 않은 부작용을 유발합니다.

jQuery 1.7에서 쉽게 작업 할 수있는 솔루션이 있는지 궁금합니다.

묻기 전에이 답변을 보았습니다 . 내가 이해하는 한, jQuery의 src를 1.7.x로 업데이트하고 관리자가 사용하는 자바 스크립트를 업데이트하는 두 가지 별도의 문제가 있습니다. 최신 jquery_update 개발 스냅 샷을 사용하고 patch를 적용 하려고 했지만 위에서 언급 한 UI 문제를 해결하지 못했습니다.


이 정책은 Drupal 버전을 업그레이드해도 jQuery에 의존하는 것을 중단해서는 안되므로 버전이 일관되게 유지됩니다.
mpdonadio

기술적 으로이 문제는 drupal.stackexchange.com/a/41394/809 의 속임수입니다 . 또한 약간 편견이지만 다른 질문에는 더 나은 답변이 있습니다.
ericduran

답변:


11

여기에서 수동으로 수행하는 Clive의 조언을 살펴 보겠습니다.

jQuery를 다운로드 할 수있는 최신 버전으로 업데이트하려면 어떻게합니까?

관리 페이지에서 수행하지 않도록 스크립트에 지능을 더 추가하십시오. 예 :

if (arg(0)=='admin') {
  return;
}

당신은 또한 거기에 "핵심"을 방해하거나 원한다면 드루팔 코어로 뛰어 들어 다른 모든 것을 1.7까지 가져 오지 않도록 페이지 node/#/addnode/#/edit페이지 등에서 그렇게해야합니다.

실행중인 Drupal 버전에 따라 작동 할 수도 있습니다.

function YOURTHEME_preprocess_page(&$vars) {
  if (YOUR CONDITION HERE) {
    $scripts = drupal_add_js('PATH TO YOUR JQUERY FILE');
    unset($scripts['core']['PATH TO DRUPAL JQUERY FILE']);
    $variables['scripts'] = drupal_get_js('header', $scripts);
  }
}

예를 들어 "JOUR CONDITION HERE"를 새 jquery를 원하는 페이지로 설정할 수 있습니다 arg(0)!='admin'.


고마워 Jimajamma, 나는 당신의 코드를 사용하지 않았지만, 당신의 대답은 나를 올바른 길로 안내했습니다. jquery_update 구성 화면에 UI를 추가하여 관리자를 위해 다른 버전의 jQuery를 사용할 수있는 멋진 패치를 발견했습니다. drupal.org/node/1524944 . 지금까지 잘 작동합니다.
Artur

2
ctools는 jquery 업데이트를 통해 중단의 역사를 가지고 있음을 명심하십시오. 이를 설명하기 위해 패치를 조정해야 할 수도 있습니다.
mpdonadio

이것을 지적 해 주셔서 감사합니다. 이에 대해 테스트하는 가장 좋은 방법이 무엇인지 알고 있습니까?
Artur

3
+1 URL에 'admin'이없는 모든 관리 페이지 목록을 얻는 간단한 방법은 다음과 같습니다.$pages = module_invoke_all('admin_paths');
Clive

1
@Clive, 이것이 ctools AJAX URL을 잡을까요? "일반"페이지에서 ctools 위젯을 사용할 때와 같은가?
mpdonadio

2

jQuery Update는 이제 프론트 엔드 및 백엔드에 대해 서로 다른 jQuery 버전을 활성화 할 수 있습니다. 최신 개발 버전을 다운로드하면 백엔드에서 1.5를 사용할 수 있으므로 뷰 j와 함께 작동하고 프론트 엔드에서 1.7 또는 1.8을 사용하여 jQuery를 더 잘 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.