내 테마에서 내장 jQuery UI 사용 모든 페이지는 jquery UI를

내 테마의 모든 페이지는 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');
}

답변

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


답변

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

답변

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');
}

답변

template.php파일에 전처리 후크를 추가해도 효과가 없었습니다.

단순히 넣어 drupal_add_library('system', 'ui');template.php자체 파일 작동합니다.