2010-06-24 3 views
2

Drupal 웹 사이트에서 JavaScript 파일을 제거하고 사용자 정의 파일을 추가하고 싶습니다. 이것은 template.php 파일에서 사용하는 코드이지만 작동하지 않습니다 (이전 js 파일은 여전히로드 됨).JavaScript 파일을 바꿀 수 없습니다.

기능 zen_preprocess_page (& $ 바르, $ 후크) {내가 코드를 테스트

/*update js file*/ 
$scripts = drupal_add_js(); 
unset($scripts['module']['sites/all/modules/lightbox2/js/lightbox.js']); 
$scripts['module']['sites/all/themes/zen/zen/myjs/lightbox.js'] = array('preprocess' => 1, 'cache' => 1); 
$variables['scripts'] = drupal_get_js('header', $scripts); 
+0

좋은 정보? 스크립트 배열을 검사했는데, 이전 경로가 올바르게 대체되었지만 이전 js (아직 새 경로가 아닌)가로드되었습니다. – aneuryzm

+0

본 적이 있습니까? http://www.mediacurrent.com/blogs/remove-or-replace-jscss-page? – acm

+0

링크에 감사드립니다. 점은 실제로 경로가 Array에서 대체되지만 이전 파일은 여전히 ​​Drupal에 의해로드된다는 것입니다. 그들은 내가 단지 – aneuryzm

답변

4

를 (I 캐시를 삭제 한), 당신은 hook_preprocess_page()에 배치하는 경우는 실제로 작동합니다. 문제는 아마도 당신이 페이지 템플릿에서 사용하는 $ scripts 변수에 영향을 미치지 않도록 프로세스 프로퍼티를 잘못 사용했기 때문일 것입니다.

당신은 직접 선 테마를 수정해서는 안

  • 편집, 대신에 서브 테마를.
  • drupal_add_js()과 함께 JavaScript 파일을 추가해 보셨습니까?
  • $variables['scripts']을 변경 한 후 예상대로 변경했는지 확인 했습니까?
+0

글쎄, 나는 그것을 내 template.php 파일에서 zen_preprocess_page의 끝 부분입니다. 맞습니까? 사실 $ scripts 배열이 올바르게 업데이트 되었기 때문에 부분적으로 작동하지만 이전 js 파일은 새 파일 대신로드됩니다. – aneuryzm

+0

그래 .. 예. scripts 변수는 사용할 수 있지만 템플릿 페이지는 여전히 이전 버전을 사용하고 있습니다 ... 테마 레지스트리를 새로 고쳐야합니까? 그 라인 뒤에? – aneuryzm

+0

질문을 업데이트하는 것을 보았습니다. 이것은 내가 말한 것입니다. $ variables [ 'scripts '] 완벽하게 업데이트됩니다.하지만 내 테마 페이지의 변수 $ scripts는 아닙니다. – aneuryzm

관련 문제