it-swarm-ko.tech

양식 api를 사용하여 jquery.ui.datepicker 위젯을 양식 요소에 첨부 할 수 있습니까?

일반 양식 요소가 있습니다.

$form['date'] = array(
    '#type' => 'textfield',
    '#title' => t( 'Date' ),
);

Jquery ui datepicker를이 요소에 추가하고 싶습니다. api 양식을 통해이 작업을 수행 할 수 있습니까? 또는 drupal_add_js를 사용하여 다음을 추가해야합니까?

$('#edit-date').datepicker();

아니면 더 좋은 방법이 있습니까?

7
meriial

폼에서 after_build 를 사용하여 drupal_add_js

4
digital

이것에 대한 훨씬 쉬운 해결책은 Date 및 Date Popup 모듈을 설치하고 다음 양식 api 요소를 사용하여 즉시 날짜 팝업 요소를 얻는 것입니다. 필요한 추가 js가 없습니다.

$form['date'] = array(
  '#type' => 'date_popup',
  '#title' => t('Date'),
  '#date_format' => 'd/m/Y',
);

#date_format 속성은 날짜 필드의 입력 형식으로 사용되는 PHP Date 형식 문자열을 허용합니다.

4
masterchief

Date 프로젝트에는 date_popup 양식 요소를 구현하는 모듈 (date_popup.module)이 포함되어 있습니다. Drupal 6에 대한 date_popup.module은 date_popup_load () 함수를 정의했지만 해당 함수는 Drupal 7의 버전에는 없습니다) Drupal 핵심 기능)도 아닙니다.

함수는 필요한 JavaScript 파일을 포함하는 것이 었습니다.

  $path = drupal_get_path('module', 'date_popup');
  if (module_exists('jquery_ui')) {
    jquery_ui_add('ui.datepicker');
    global $language;
    if ($language->language != 'en') {
      jquery_ui_add("i18n/ui.datepicker-{$language->language}");
    }
  }
  if (variable_get('date_popup_timepicker', 'default') == 'default') {
    drupal_add_js($path . '/lib/jquery.timeentry.pack.js');
  }

Drupal 7 버전의 모듈에있는 동등한 함수는 date_popup_add () 이며 다음 코드를 포함합니다.

drupal_add_library('system', 'ui.datepicker');
drupal_add_library('date_popup', 'timeentry');

// Add the wvega-timepicker library if it's available.
$wvega_path = date_popup_get_wvega_path();
if ($wvega_path) {
  drupal_add_js($wvega_path . '/jquery.timepicker.js');
  drupal_add_css($wvega_path . '/jquery.timepicker.css');
} 

이 함수는 date_popup_element_process () 에서 호출되며 date_popup 양식 필드에서 사용되는 #process 함수입니다. 해당 함수에서 실행 된 코드와 유사한 코드를 포함하는 #process 함수를 작성하여 날짜 선택기를 추가 할 양식 필드에 첨부 할 수 있습니다.

4
kiamlaluno