'#datepicker_options'키를 통해 PHP에서 date_popup 요소로 Datepicker 옵션 을 전달할 수 있습니다 .
<?php
$form['date'] = array(
'#title' => t('Pick the desired date'),
'#type' => 'date_popup',
'#datepicker_options' => array(
'minDate' => 0,
),
);
이 방법을 사용하면 거의 모든 옵션을 전달할 수 있지만 beforeShowDay
Nikit가 참조하는 답변에 따라 주말 또는 공휴일을 제한하는 데 필요한 옵션을 값으로 허용하는 옵션을 전달할 수 있습니다 . /programming/501943/can- jquery-ui-datepicker는 사용할 수 없음-토요일-일요일-공휴일
따라서 자바 스크립트가 필요합니다. 먼저 모듈 코드에서 사용자 정의 js 파일을 포함해야합니다.
<?php
drupal_add_js(drupal_get_path('module', 'FOO') . '/FOO.js');
FOO.js
자체 옵션으로 date_popup 모듈에서 설정 한 설정을 확장하는 코드를 제공하십시오 .
다음은 페이지의 모든 날짜 선택 위젯에 주말을 사용하지 않도록 설정하는 기본 옵션을 추가하는 예입니다.
(function ($) {
Drupal.behaviors.FOO = {
attach: function (context) {
for (var id in Drupal.settings.datePopup) {
Drupal.settings.datePopup[id].settings.beforeShowDay = $.datepicker.noWeekends;
}
}
};
})(jQuery);
휴일까지 연장은 독자에게 연습으로 남습니다. :)
참고 : 세 가지 발행 수 FOO
내 예제는, 즉 같은 문자 일 필요는 없습니다 : 당신이 제공 할 수 BAZ
에서 동작을 BAR.js
에서 FOO.module
.
업데이트 : 사용자 정의 일 가용성을 위해 위의 내용을 확장하려면 매개 변수가 수신 한 날에 대해 true / false를 반환하는 함수를 추가하십시오.
(function ($) {
Drupal.behaviors.FOO = {
attach: function (context) {
for (var id in Drupal.settings.datePopup) {
Drupal.settings.datePopup[id].settings.beforeShowDay = checkDate;
}
}
};
function checkDate(date) {
if ((date.getDate() % 2) == 0) {
return [false, 'Even days not available'];
}
else {
return [true, 'Odd days are fine'];
}
}
})(jQuery);
날짜 제한 모듈 에서보다 완전한 예를 찾을 수 있습니다 .