Вход Регистрация
Файл: concrete5.7.5.6/concrete/elements/permission/duration.php
Строк: 351
<?php
use ConcreteCorePermissionDuration;

defined('C5_EXECUTE') or die("Access Denied.");

$repeats = array(
    
''        => t('** Options'),
    
'daily'   => t('Every Day'),
    
'weekly'  => t('Every Week'),
    
'monthly' => t('Every Month')
);
$repeatDays = array();
for (
$i 1$i <= 30$i++) {
    
$repeatDays[$i] = $i;
}
$repeatWeeks = array();
for (
$i 1$i <= 30$i++) {
    
$repeatWeeks[$i] = $i;
}
$repeatMonths = array();
for (
$i 1$i <= 12$i++) {
    
$repeatMonths[$i] = $i;
}

$pdStartDate false;
$pdEndDate false;
$pdRepeats false;
$pdRepeatPeriod false;
$pdRepeatPeriodWeekDays = array();
$pdRepeatPeriodDaysEvery 1;
$pdRepeatPeriodWeeksEvery 1;
$pdRepeatPeriodMonthsEvery 1;
$pdRepeatPeriodMonthsRepeatBy 'month';
$pdEndRepeatDateSpecific false;
$pdEndRepeatDate '';
if (
is_object($pd)) {
    
$pdStartDate $pd->getStartDate();
    
$pdEndDate $pd->getEndDate();
    
$pdRepeats $pd->repeats();
    
$pdStartDateAllDay $pd->isStartDateAllDay();
    
$pdEndDateAllDay $pd->isEndDateAllDay();
    
$pdRepeatPeriodInt $pd->getRepeatPeriod();
    
$pdRepeatPeriodWeekDays $pd->getRepeatPeriodWeekDays();
    if (
$pdRepeatPeriodInt === $pd::REPEAT_DAILY) {
        
$pdRepeatPeriod 'daily';
        
$pdRepeatPeriodDaysEvery $pd->getRepeatPeriodEveryNum();
    }
    if (
$pdRepeatPeriodInt === $pd::REPEAT_WEEKLY) {
        
$pdRepeatPeriod 'weekly';
        
$pdRepeatPeriodWeeksEvery $pd->getRepeatPeriodEveryNum();
    }
    if (
$pdRepeatPeriodInt === $pd::REPEAT_MONTHLY) {
        
$pdRepeatPeriod 'monthly';
        
$pdRepeatPeriodMonthsEvery $pd->getRepeatPeriodEveryNum();
    }
    
$pdRepeatPeriodMonthsRepeatLastDay $pd->getRepeatMonthLastWeekday();
    
$rmb $pd->getRepeatMonthBy();
    if (
$rmb) {
        if (
$rmb === Duration::MONTHLY_REPEAT_MONTHLY) {
            
$pdRepeatPeriodMonthsRepeatBy 'month';
        } elseif (
$rmb === Duration::MONTHLY_REPEAT_WEEKLY) {
            
$pdRepeatPeriodMonthsRepeatBy 'week';
        } elseif (
$rmb === Duration::MONTHLY_REPEAT_LAST_WEEKDAY) {
            
$pdRepeatPeriodMonthsRepeatBy 'lastweekday';
        }
    }
    
$pdEndRepeatDateSpecific $pd->getRepeatPeriodEnd();
    if (
$pdEndRepeatDateSpecific) {
        
$pdEndRepeatDate 'date';
    }
}
$form Loader::helper('form');
$dt Loader::helper('form/date_time');

?>


<div id="ccm-permissions-access-entity-dates">

    <div class="form-group">
        <label for="pdStartDate_activate" class="control-label"><?php echo tc('Start date''From')?></label>
        <div class="">
            <?php echo $dt->datetime('pdStartDate'$pdStartDatetrue); ?>
            <div class="checkbox"><label><?php echo $form->checkbox('pdStartDateAllDayActivate'1$pdStartDateAllDay?> <?php echo t(
                    
"All Day"?></label>
            </div>
        </div>
    </div>

    <div class="form-group">
        <label for="pdEndDate_activate" class="control-label"><?php echo tc('End date''To')?></label>
        <div class="">
            <?php echo $dt->datetime('pdEndDate'$pdEndDatetrue); ?>
            <div class="checkbox"><label><?php echo $form->checkbox('pdEndDateAllDayActivate'1$pdEndDateAllDay?> <?php echo t(
                        
"All Day"?></label></div>
        </div>
    </div>

</div>

<div id="ccm-permissions-access-entity-repeat" style="display: none">

    <div class="form-group">
        <div class="">
            <div class="checkbox"><label><?php echo $form->checkbox('pdRepeat'1$pdRepeats?> <?php echo t('Repeat...'?></label></div>
        </div>
    </div>

</div>

<div id="ccm-permissions-access-entity-repeat-selector" style="display: none">


    <div class="form-group">
        <label for="pdRepeatPeriod" class="control-label"><?php echo t('Repeats')?></label>
        <div class="">
            <?php echo $form->select('pdRepeatPeriod'$repeats$pdRepeatPeriod?>
        </div>
    </div>

    <div id="ccm-permissions-access-entity-dates-repeat-daily" style="display: none">

        <div class="form-group">
            <label for="pdRepeatPeriodDaysEvery" class="control-label"><?php echo t('Repeat every')?></label>
            <div class="">
                <div class="form-inline">
                <?php echo $form->select(
                    
'pdRepeatPeriodDaysEvery',
                    
$repeatDays,
                    
$pdRepeatPeriodDaysEvery,
                    array(
'style' => 'width: 60px')) ?>
                <?php echo t('days'?>
                </div>
            </div>
        </div>

    </div>

    <div id="ccm-permissions-access-entity-dates-repeat-monthly" style="display: none">


        <div class="form-group">
            <label for="pdRepeatPeriodMonthsRepeatBy" class="control-label"><?php echo t('Repeat By')?></label>
            <div class="">
                <div class="radio"><label><?php echo $form->radio(
                    
'pdRepeatPeriodMonthsRepeatBy',
                    
'month',
                    
$pdRepeatPeriodMonthsRepeatBy?> <?php echo t(
                    
'Day of Month')
                
?></label>
                </div>
                <div class="radio"><label><?php echo $form->radio(
                            
'pdRepeatPeriodMonthsRepeatBy',
                            
'week',
                            
$pdRepeatPeriodMonthsRepeatBy?> <?php echo t('Day of Week'?></label>
                </div>
                <div class="radio">
                    <label>
                        <?php echo $form->radio(
                            
'pdRepeatPeriodMonthsRepeatBy',
                            
'lastweekday',
                            
$pdRepeatPeriodMonthsRepeatBy?> <?php echo t('The last '?>
                        <select name="pdRepeatPeriodMonthsRepeatLastDay">
                            <option value="0" <?php echo $pdRepeatPeriodMonthsRepeatLastDay == 'selected' '' ?>><?php echo t('Sunday'?></option>
                            <option value="1" <?php echo $pdRepeatPeriodMonthsRepeatLastDay == 'selected' '' ?>><?php echo t('Monday'?></option>
                            <option value="2" <?php echo $pdRepeatPeriodMonthsRepeatLastDay == 'selected' '' ?>><?php echo t('Tuesday'?></option>
                            <option value="3" <?php echo $pdRepeatPeriodMonthsRepeatLastDay == 'selected' '' ?>><?php echo t('Wednesday'?></option>
                            <option value="4" <?php echo $pdRepeatPeriodMonthsRepeatLastDay == 'selected' '' ?>><?php echo t('Thursday'?></option>
                            <option value="5" <?php echo $pdRepeatPeriodMonthsRepeatLastDay == 'selected' '' ?>><?php echo t('Friday'?></option>
                            <option value="6" <?php echo $pdRepeatPeriodMonthsRepeatLastDay == 'selected' '' ?>><?php echo t('Saturday'?></option>
                        </select>
                    </label>
                </div>
            </div>
        </div>

        <div class="form-group">
            <label for="pdRepeatPeriodMonthsEvery" class="control-label"><?php echo t('Repeat every')?></label>
            <div class="">
                <div class="form-inline">
                    <?php echo $form->select(
                        
'pdRepeatPeriodMonthsEvery',
                        
$repeatMonths,
                        
$pdRepeatPeriodMonthsEvery,
                        array(
'style' => 'width: 60px')) ?>
                    <?php echo t('months'?>
                </div>
            </div>
        </div>

    </div>


    <div id="ccm-permissions-access-entity-dates-repeat-weekly" style="display: none">


        <div id="ccm-permissions-access-entity-dates-repeat-weekly-dow" style="display: none">

            <div class="form-group">
                <label class="control-label"><?php echo t('On'?></label>
                <div class="">
                <?php
                
foreach (PunicCalendar::getSortedWeekdays('wide') as $weekDay) {
                    
?>
                    <div class="checkbox"><label><input
                                <?php if (in_array($weekDay['id'], $pdRepeatPeriodWeekDays)) { ?>checked="checked" <?php ?>
                                type="checkbox" name="pdRepeatPeriodWeeksDays[]" value="<?php echo $weekDay['id'?>"/> <?php echo h(
                                
$weekDay['name']) ?></label></div>
                <?php
                
?>
                </div>
            </div>

        </div>

        <div class="form-group">
            <label for="pdRepeatPeriodWeeksEvery" class="control-label"><?php echo t('Repeat every'?></label>
            <div class="">
                <div class="form-inline">
                    <?php echo $form->select(
                        
'pdRepeatPeriodWeeksEvery',
                        
$repeatWeeks,
                        
$pdRepeatPeriodWeeksEvery,
                        array(
'style' => 'width: 60px')) ?>
                    <?php echo t('weeks'?>
                </div>
            </div>
        </div>
    </div>

    <div id="ccm-permissions-access-entity-dates-repeat-dates" style="display: none">


        <div class="form-group">
            <label class="control-label"><?php echo t('Starts On'?></label>
            <div class="">
                <input type="text" class="form-control" disabled="disabled" value="" name="pdStartRepeatDate"/>
            </div>
        </div>

        <div class="form-group">
            <label for="pdEndRepeatDate" class="control-label"><?php echo t('Ends'?></label>
            <div class="">
                <div class="radio"><label><?php echo $form->radio('pdEndRepeatDate'''$pdEndRepeatDate?> <?php echo t(
                            
'Never'?></label></div>
                <div class="radio"><label><?php echo $form->radio('pdEndRepeatDate''date'$pdEndRepeatDate?> <?php echo $dt->date(
                            
'pdEndRepeatDateSpecific',
                            
$pdEndRepeatDateSpecific?></label></div>
            </div>
        </div>

    </div>

</div>

<script type="text/javascript">
    ccm_accessEntityCalculateRepeatOptions = function () {
        // get the difference between start date and end date
        if (!$("#pdStartDate_activate").is(':checked')) {
            return false;
        }

        var sdf = ($("#pdStartDate_dt_pub").datepicker('option', 'altFormat'));
        var sdfr = $.datepicker.parseDate(sdf, $("#pdStartDate_dt").val());
        var edf = ($("#pdEndDate_dt_pub").datepicker('option', 'altFormat'));
        var edfr = $.datepicker.parseDate(edf, $("#pdEndDate_dt").val());
        var sh = $("select[name=pdStartDate_h]").val();
        var eh = $("select[name=pdEndDate_h]").val();
        if ($("select[name=pdStartDate_a]").val() == 'PM' && (sh < 12)) {
            sh = parseInt(sh) + 12;
        } else if (sh == 12 && $("select[name=pdStartDate_a]").val() == 'AM') {
            sh = 0;
        }
        if ($("select[name=pdEndDate_a]").val() == 'PM' && (eh < 12)) {
            eh = parseInt(eh) + 12;
        } else if (eh == 12 && $("select[name=pdEndDate_a]").val() == 'AM') {
            eh = 0;
        }
        var startDate = new Date(sdfr.getFullYear(), sdfr.getMonth(), sdfr.getDate(), sh, $('select[name=pdStartDate_m]').val(), 0);
        var endDate = new Date(edfr.getFullYear(), edfr.getMonth(), edfr.getDate(), eh, $('select[name=pdEndDate_m]').val(), 0);
        var difference = ((endDate.getTime() / 1000) - (startDate.getTime() / 1000));
        if (difference >= 60 * 60 * 24) {
            $('select[name=pdRepeatPeriod] option[value=daily]').attr('disabled', true);
            $("#ccm-permissions-access-entity-dates-repeat-weekly-dow").hide();
        } else {
            $('select[name=pdRepeatPeriod] option[value=daily]').attr('disabled', false);
            $("#ccm-permissions-access-entity-dates-repeat-weekly-dow").show();
        }
        $('input[name=pdStartRepeatDate]').val($("#pdStartDate_dt_pub").val());
        switch (sdfr.getDay()) {
            case 0:
                $("#ccm-permissions-access-entity-dates-repeat-weekly-dow input[value=0]").attr('checked', true);
                break;
            case 1:
                $("#ccm-permissions-access-entity-dates-repeat-weekly-dow input[value=1]").attr('checked', true);
                break;
            case 2:
                $("#ccm-permissions-access-entity-dates-repeat-weekly-dow input[value=2]").attr('checked', true);
                break;
            case 3:
                $("#ccm-permissions-access-entity-dates-repeat-weekly-dow input[value=3]").attr('checked', true);
                break;
            case 4:
                $("#ccm-permissions-access-entity-dates-repeat-weekly-dow input[value=4]").attr('checked', true);
                break;
            case 5:
                $("#ccm-permissions-access-entity-dates-repeat-weekly-dow input[value=5]").attr('checked', true);
                break;
            case 6:
                $("#ccm-permissions-access-entity-dates-repeat-weekly-dow input[value=6]").attr('checked', true);
                break;
        }
    }

    ccm_accessEntityCheckRepeat = function () {
        if ($('input[name=pdRepeat]').is(':checked')) {
            $("#ccm-permissions-access-entity-repeat-selector").show();
        } else {
            $("#ccm-permissions-access-entity-repeat-selector").hide();
        }
    }

    ccm_accessEntityOnActivateDates = function () {
        if ($("#pdStartDate_activate").is(':checked') || $("#pdEndDate_activate").is(':checked')) {
            ccm_accessEntityCalculateRepeatOptions();
        }
        if ($("#pdStartDate_activate").is(':checked') && $("#pdEndDate_activate").is(':checked')) {
            $("#ccm-permissions-access-entity-repeat").show();
        } else {
            $("#ccm-permissions-access-entity-repeat").hide();
        }
        if ($("#pdStartDate_activate").is(':checked')) {
            $('#pdStartDateAllDayActivate').attr('disabled', false);
        } else {
            $('input[name=pdStartDateAllDayActivate]').attr('disabled', true);
        }
        if ($("#pdEndDate_activate").is(':checked')) {
            $('#pdEndDateAllDayActivate').attr('disabled', false);
        } else {
            $('input[name=pdEndDateAllDayActivate]').attr('disabled', true);
        }

        if ($("input[name=pdStartDateAllDayActivate]").is(':checked')) {
            $('span#pdStartDate_tw').hide();
        } else {
            $('span#pdStartDate_tw').show();
        }

        if ($("input[name=pdEndDateAllDayActivate]").is(':checked')) {
            $('span#pdEndDate_tw').hide();
        } else {
            $('span#pdEndDate_tw').show();
        }

    }

    ccm_accessEntityOnRepeatPeriodChange = function () {
        $("#ccm-permissions-access-entity-dates-repeat-daily").hide();
        $("#ccm-permissions-access-entity-dates-repeat-weekly").hide();
        $("#ccm-permissions-access-entity-dates-repeat-monthly").hide();
        if ($('select[name=pdRepeatPeriod]').val() != '') {
            $("#ccm-permissions-access-entity-dates-repeat-" + $('select[name=pdRepeatPeriod]').val()).show();
            $("#ccm-permissions-access-entity-dates-repeat-dates").show();
        }
    }

    ccm_accessEntityCalculateRepeatEnd = function () {
        if ($('input[name=pdEndRepeatDate]:checked').val() == 'date') {
            $("#ccm-permissions-access-entity-dates-repeat-dates .ccm-input-date-wrapper input").attr('disabled', false);
        } else {
            $("#ccm-permissions-access-entity-dates-repeat-dates .ccm-input-date-wrapper input").attr('disabled', true);
        }
    }

    $(function () {
        $("#ccm-permissions-access-entity-dates input[type=checkbox]").click(function () {
            ccm_accessEntityOnActivateDates();
        });

        $("select[name=pdRepeatPeriod]").change(function () {
            ccm_accessEntityOnRepeatPeriodChange();
        });

        $("input[name=pdRepeat]").click(function () {
            ccm_accessEntityCheckRepeat();
        });

        $("#ccm-permissions-access-entity-dates span.ccm-input-date-wrapper input, #ccm-permissions-access-entity-dates span.ccm-input-time-wrapper select").change(function () {
            ccm_accessEntityCalculateRepeatOptions();
        });
        $("#ccm-permissions-access-entity-dates-repeat-dates input.ccm-input-date").attr('disabled', true);
        $('input[name=pdEndRepeatDate]').change(function () {
            ccm_accessEntityCalculateRepeatEnd();
        });
        ccm_accessEntityCalculateRepeatOptions();
        ccm_accessEntityOnActivateDates();
        ccm_accessEntityCheckRepeat();
        ccm_accessEntityOnRepeatPeriodChange();
        ccm_accessEntityCalculateRepeatEnd();
    });
</script>

<style type="text/css">
    #ccm-permissions-access-entity-dates .ccm-activate-date-time {
        margin-right: 8px;
    }
</style>
Онлайн: 0
Реклама