Я создаю форму в Drupal 7 с помощью API формы. Прямо сейчас я могу создать обычное поле ввода календаря со следующим кодом:
$form['services_tab']['schedule_datepicker'] = array(
'#title' => t('Pick the desired date'),
'#type' => 'date_popup',
'#date_year_range' => '0:0',
'#date_format' => 'Y-m-d',
'#prefix' => '<div id="datepicker-schedule">',
'#suffix' => '</div>',
);
Прямо сейчас я могу заставить красивое всплывающее окно календаря появляться. То, чего я пытаюсь добиться, это включить или отключить определенные даты на основе правила, такого как: отключить все субботы и воскресенья; или даже удалить состояние клика из определенных дат на основе списка национальных праздников ...
Это то, что может быть достигнуто с помощью PHP-кодирования, или это нужно делать с помощью jQuery? В случае, если jQuery является решением, я был бы признателен за любые советы о том, как это сделать ... Календарь - это таблица, но ячейки таблицы не имеют идентификатора или чего-то такого, что могло бы помочь мне найти и отключить их на основе правила. ..
Спасибо.
Ответы:
Вы можете передать некоторые параметры Datepicker из php в элемент date_popup с помощью ключа #datepicker_options:
С помощью этого метода вы можете передать почти любую опцию, кроме тех, которые принимают функцию в качестве значения, например
beforeShowDay
, ту, которая необходима для ограничения выходных или праздничных дней в соответствии с ответом, на который ссылается Никит: /programming/501943/can- заместитель JQuery-щ-DatePicker-быть сделан на Disable-субботы, воскресенье-и-holidСледовательно, JavaScript необходим. Для начала вам нужно включить пользовательский файл js из кода вашего модуля:
и предоставить некоторый код
FOO.js
для расширения настроек, установленных модулем date_popup, с помощью наших собственных опций.Вот пример, который добавляет базовую опцию отключения выходных для всех виджетов DatePicker на странице:
Продление до отпуска оставлено читателю в качестве упражнения :)
Примечание: три случая
FOO
в моих примерах не обязательно должны быть одинаковыми литералами, то есть: вы можете обеспечитьBAZ
поведение вBAR.js
fromFOO.module
.Обновление: чтобы расширить вышеуказанное для доступности пользовательских дней, просто добавьте функцию, возвращающую true / false для дня, полученного параметрами.
Вы можете найти более полный пример в модуле « Ограничения по дате ».
источник
Я использовал модуль Ограничения по дате. Это обеспечивает возможность выбора даты для ряда параметров, таких как фиксированная дата, относительная дата и т. Д.
источник