CSS와 JavaScript 파일을 내 Drupal 사이트에 추가하려면 drupal_add_css()
과 drupal_add_js()
을 사용하고 있습니다. 내가 사용하고있는 함수가 control_preprocess_page(&$vars)
이라 불리는 컨트롤이라는 모듈에서 이것을하고있다.drupal_add_css, drupal_add_js가 작동하지 않습니다.
하지만 내 테마에는 아무 것도 추가되지 않았습니다!
CSS와 JavaScript 파일을 내 Drupal 사이트에 추가하려면 drupal_add_css()
과 drupal_add_js()
을 사용하고 있습니다. 내가 사용하고있는 함수가 control_preprocess_page(&$vars)
이라 불리는 컨트롤이라는 모듈에서 이것을하고있다.drupal_add_css, drupal_add_js가 작동하지 않습니다.
하지만 내 테마에는 아무 것도 추가되지 않았습니다!
preprocess_page() 함수에서 이러한 함수가 작동하지 않는 이유는 template_preprocess_page() (먼저 호출 됨)이 구조화 된 내용을 $ scripts 및 $ styles 변수로 이미 형식화했기 때문입니다. 당신은 전처리 수준에서 추가 JS 또는 CSS를 추가하려는 경우, 당신은 그 두 변수를 재생하기 위해이 같은 필요 : (hook_init에 drupal_add_js/drupal_add_css을 사용하여, 또는 더 정확하게 표적으로 기능
function control_preprocess_page(&$vars) {
// Add new CSS.
drupal_add_css('path/to/css/foo.css');
// Rebuild the 'styles variable.
$vars['styles'] = drupal_get_css();
// Add new JS.
drupal_add_js(...);
$vars['scripts'] = drupal_get_js();
}
를 예를 들면, alter hook, 또는 nodeapi hook)을 사용하면 해당 변수를 다시 생성하지 않아도됩니다.
CSS/JS가 필요한 시점에 drupal_add_css/js를 사용하여 호출 할 수 있습니다. 모듈이 모든 페이지에서 사용되는 경우 hook_init()에서도 사용할 수 있습니다.
+1 : init 훅은 JS/CSS를 전역 적으로 포함시키는 데 유용합니다. 노드로드 (hook_nodeapi에서), 주석 변경, 양식 변경 등을 포함 할 수도 있습니다. –
도움이 될 몇 가지 포인터 :
1) 테마 폴더에 CSS/JS 스크립트를 놓습니다.
4 :
이<?php drupal_add_js(drupal_get_path('theme', 'INSERT_NAME_OF_THEME') . '/INSERT_NAME_OF_CSS_FILE.css'); ?>
3) 하위 폴더에 CSS를 배치하면, 다음과 같은 코드가 필요합니다 : 당신의 node.tpl.php 파일에서 2) 다음을 사용) yousite.com/admin/settings/performance에서 캐시 새로 고침
5) 때로는 관리자/빌드/테마에서 테마를 비활성화하고 다시 사용하도록 설정해야합니다.
이 작업을 수행 할 수는 있지만 가장 좋은 방법은 아닙니다. –
몇 가지 샘플 코드를 추가 할 수 있습니까? –