내 테마의 모든 페이지는 jquery UI를 사용해야합니다. Drupal 7에 포함되어 있다는 것을 알고 있지만 Drupal의 기술 문서를 실제로 해독 할 수는 없습니다. 그것을하는 유일한 방법은 template.php 파일을 사용하는 것 같습니다. 그러나 나는 그 파일을 이해하지 못하기 때문에 그렇게하는 것을 피하려고 노력하고 있습니다.
다른 방법이 있습니까, 아니면 template.php 파일을 사용해보십시오?
내 테마의 모든 페이지는 jquery UI를 사용해야합니다. Drupal 7에 포함되어 있다는 것을 알고 있지만 Drupal의 기술 문서를 실제로 해독 할 수는 없습니다. 그것을하는 유일한 방법은 template.php 파일을 사용하는 것 같습니다. 그러나 나는 그 파일을 이해하지 못하기 때문에 그렇게하는 것을 피하려고 노력하고 있습니다.
다른 방법이 있습니까, 아니면 template.php 파일을 사용해보십시오?
답변:
PHP를 사용해야 할지라도 페이지에 JS를 추가하는 것은 그리 어렵지 않습니다.
일반적인 JS 파일의 경우 다음과 같이 할 수 있습니다
drupal_add_js($path_to_js)
그러나 Drupal은 jQuery UI를 라이브러리에 등록하여 특정 jQuery UI 플러그인에 대해 JS 및 CSS 파일을 모두 쉽게 추가 할 수 있습니다. 이것은 다음을 사용하여 수행 할 수 있습니다
drupal_add_library($module, $library);
모든 jQuery UI 플러그인은 시스템 모듈에 존재하므로 할 수 있습니다
drupal_add_library('system', 'ui');
또는
drupal_add_library('system', 'ui.accordion');
이러한 플러그인 중 일부는 다른 플러그인을 사용하기 때문에 종속성이 있습니다. Drupal은 이것을 매우 영리하게 처리하고 필요한 구성 요소를 포함합니다.
여기 에서 jQuery 플러그인의 전체 목록을 볼 수 있습니다 . 이것은 PHP 배열 형식이지만 일반적으로 명명 규칙은 ui.PLUGIN-NAME입니다.
모든 페이지에 JS를 추가해야하는 경우 사전 프로세스 페이지 후크를 추가하고 여기에 추가 할 수 있습니다. 이것은 template.php 파일에서 다음과 같이 보일 것입니다.
function NAME_OF_THEME_preprocess_page(&$variables) {
drupal_add_library('system', 'ui');
drupal_add_library('system', 'ui.accordion');
drupal_add_library('system', 'effects.highlight');
}
function nocturnal_preprocess_page(&$variables) { drupal_add_library('system', 'ui'); drupal_add_library('system', 'ui.datepicker'); }
drupal_add_library('system', 'ui');
와 drupal_add_library('system', 'ui.accordion');
? 첫 번째 것이 모든 것을 가져 오는가 아니면 핵심을 가져 오는가? 내가 사용하는 모든 플러그인마다 줄이 필요합니까?
date_popup 모듈 을 사용해 보셨습니까 ? 양식 API와 잘 작동
googletorp
답변 해 주셔서 감사 합니다.
UI 플러그인 사용 과 관련하여 여전히 명확하지 않은 경우 추가하십시오 .
언급 할 때 : drupal_add_library('system', 'ui');
이것은 모든 UI 플러그인을 자동으로 활성화하지는 않습니다.
drupal 7에서 사용 가능한 jquery ui 플러그인 목록을 찾을 수 있습니다. /misc/ui/
perticular 플러그인 (예 : :)을 사용하려면 jquery.ui.slider.min.js
다음 행을 추가해야합니다.
drupal_add_library('system', 'ui.slider');
이것이 유용하기를 바랍니다.
최근 에이 문제가 발생했습니다. 누군가 나에게 JQuery UI가 모든 페이지에로드되도록 맞춤형 모듈을주었습니다. 간단하게 다시 만들 수 있습니다. 먼저 jquery_update를 설치 하고 작동하는지 확인하십시오. 그런 다음이 모듈을 작성하고 사용하십시오.
'jquery_force'라는 경로 / to / modules에 폴더를 만듭니다.
내부에 두 개의 파일을 추가하십시오.
jquery_force.info :
name = JQuery UI Force
description = Forces JQuery UI to always load
dependencies[] = jquery_update
package = User Interface
core = 7.x
files[] = jquery_force.module
jquery_force.module :
<?php
/**
* @file jquery_force.module
* TODO: Enter file description here.
*/
/**
* Implements hook_init().
*/
function jquery_force_init() {
drupal_add_library('system', 'ui');
}