it-swarm-ko.tech

내 테마에서 내장 jQuery UI 사용

내 테마의 모든 페이지는 jquery UI를 사용해야합니다. 나는 그것이 Drupal 7에 포함되어 있다는 것을 알고 있지만 Drupal의 너무 기술적 인 문서를 실제로 해독 할 수는 없습니다. 나는 그 파일을 이해하지 못하기 때문에 그렇게하는 것을 피하려고 노력하고 있습니다.

다른 방법이 있습니까, 아니면 template.php 파일을 사용해보십시오?

24
Ben

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 플러그인의 전체 목록을 볼 수 있습니다 here . 이것은 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');
}
36
googletorp

date_popup 모듈을 사용해 보셨습니까? 양식 API와 잘 작동

4
LSU_JBob
  1. .tpl 파일의 하드 코딩 된 양식을 Form API 구현으로 리팩토링하십시오. @LSU_JBob이 말했듯이 FAPI를 사용하지 않고 양식을 작성해야하는 이유는 없습니다. 양식 API 빠른 시작 안내서 를 읽고 양식 API 참조 페이지를 즐겨 찾기에 추가하십시오.
  2. 양식을 작성하고 값을 제출하고 처리하는 등의 작업이 완료되면 Date contrib 모듈에서 코드를 다운로드하여 읽으십시오. 날짜는 생성하려는 날짜 팝업 종류를 제공하는 데 사용되지만 D6의 CCK 및 D7의 코어 필드에 사용됩니다. 필드 작업을 원하지는 않지만 Date 모듈은 JQuery UI를 사용하여 수행하려는 작업을 수행합니다. 이 모듈은 확실한 예를 제공해야합니다.
4
amateur barista

답변 해 주셔서 감사합니다. googletorp.

I plugins 활성화와 관련하여 여전히 명확하지 않은 경우 추가하십시오.

언급 할 때 drupal_add_library('system', 'ui');
이것은 모든 UI 플러그인을 자동으로 활성화하지는 않습니다.

사용 가능한 jquery UI 플러그인의 목록은 drupal 7 here : /misc/ui/

퍼티 큘러 플러그인을 활성화하려면 다음과 같이하십시오. jquery.ui.slider.min.js,이 줄을 추가해야합니다 :

drupal_add_library('system', 'ui.slider');

이것이 유용하기를 바랍니다.

3
Sumoanand

최근 에이 문제가 발생했습니다. 누군가 나에게 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');
}
2
mtro

template.php 파일에 사전 프로세스 후크를 추가해도 효과가 없었습니다.

단순히 drupal_add_library('system', 'ui');template.php 파일에 넣으면됩니다.

2
user17418