Как отключить все дни в DatePicker вместо предоставленных дней? - PullRequest
0 голосов
/ 16 октября 2018

У меня есть datepicker, в котором я делаю две операции.Во-первых, я пытаюсь bold дни, которые указаны в форме array Во-вторых, я пытаюсь отключить все остальные дни, которые не указаны в array.В результате моего кода все дни, указанные в array, выделены жирным шрифтом, но я не могу отключить другие дни, которых нет в array.Я проверил этот ответ, но он не работал.Это мой datepicker:

                    <?php
                        echo DatePicker::widget([
                            'name' => 'check_multiple_date',
                            'type' => DatePicker::TYPE_INLINE,
                            'options' => ['placeholder' => 'Select issue date ...', 'id' => 'date-picker-multiple-half-hour', 'toggleActive' => true],
                            'pluginOptions' => [
                                'format' => 'dd-M-yyyy',
                                'todayHighlight' => false,
                                'multidate' => true,
                                'beforeShowDay' => new JsExpression($JsBeforeDayMultipleHalfHour)
                            ],
                        ]);
                    ?>

А это мой код для отключения и выделения текста тех дат, к которым в array указано $thirty_minutes_dates

$JsBeforeDayMultipleHalfHour = <<<EOF
    function(date){
        var dates = new Array();
        dates = {$thirty_minutes_dates};
        var year = date.getFullYear(), month = date.getMonth(), day = date.getDate();
        for (var i=0; i < dates.length; ++i) {
            if (year == parseInt(dates[i][0]) && month == parseInt(dates[i][1]) - 1 &&  day == parseInt(dates[i][2])) {
                return {classes: 'bold-text'};
            }
        return [false, ''];
        }
     }
EOF;

1 Ответ

0 голосов
/ 16 октября 2018

Текст code для отключения и полужирного текста должен выглядеть следующим образом:

$JsBeforeDayMultipleHalfHour = <<<EOF
function(date){
    var dates = new Array();
    dates = {$thirty_minutes_dates};
    var year = date.getFullYear(), month = date.getMonth(), day = date.getDate();
    for (var i=0; i < dates.length; ++i) {
        if (year == parseInt(dates[i][0]) && month == parseInt(dates[i][1]) - 1 &&  day == parseInt(dates[i][2])) {
            return {classes: 'bold-text'};
        }
    return {classes: 'ui-datepicker-unselectable ui-state-disabled'};
    }
 }
EOF;

Вместо возврата false. Он должен возвращать класс, который используется для отключения дней.Я надеюсь, что это правильный ответ.

...