테스트 사이트 - 개발 중인 베타 버전입니다

일정관리 스킨 수정 질문(도움) 입니다.

chrh 5년 전 조회 2,659

안녕하세요. 

 

위 스킨을 다운 받아 사용할려고 하는데 

이전 날짜로 선택 및 수정이 되지 않아 질문 드립니다. 

 

제작님께서 댓글주신 부분을 수정 하였으나 적용이 되지 않아 질문 게시판에 글남깁니다. 

 

너무 초보적인 질문 이라 죄송 합니다. 

 

 

 

alert("오늘 날짜 이전으로 일정을 변경할 수 없습니다.");                 info.revert();                 return false;             }

            var start = info.event.startStr;             var end = info.event.endStr;             var wr_id = info.event.id;             dragEditDateChange(start, end, wr_id);         },         eventResize : function(info)

</strong></p>

<p>document.addEventListener("DOMContentLoaded", function() {

    var calendarEl = document.getElementById('calendar');

    var calendar = new FullCalendar.Calendar(calendarEl, {

        headerToolbar: {

            left : "today",

            center : "prev title next",

            right : fc_display_types

        },

        //height: '100%',

        expandRows: true,

        stickyHeaderDates:false,

        initialDate: new Date(g5_time_ymd),

        initialView: defaultview,

        locale: fc_lang,

        dayMaxEvents: false, // allow "more" link when too many events ( 일일별 스케쥴이 많을 경우 '더보기(+)'로 표시하기 )

        navLinks: true, // can click day/week names to navigate views

        editable: true, // Drag & Drop

        droppable: true,

        weekNumbers: weekNumbers, // 주차표시

        timeZone: 'KST',

        selectable: true,

        eventOverlap: true, // 스케쥴 겹침 허용 (동일날짜 동일시간으로 일정을 중복으로 등록)

        eventSources : [{

            events : function(info, successCallback, failureCallback) {

                $.ajax({

                    url : board_skin_url+"/get-events.php?bo_table="+g5_bo_table+"&sca="+sca,

                    type : "POST",

                    dataType : "json",

                    data : {

                        bo_table : g5_bo_table,

                        sca : $("#sca").val(),

                        start : info.startStr,

                        end : info.endStr,

                        stx : $("#stx").val(),

                        timeZone : 'local'

                    },

                    success : function(data) {

                        if(!bbs_write_url) {

                            $(".rumi-write").remove();

                        }

                        else {

                            $(".rumi-write").prop("title", "일정등록");

                        }

                        successCallback(data);

                    }

                });

            }

        }],

        select: function(info) {

            var d = timeConvet(info);

            if(info.allDay == true && d.start == d.end) {

                return false;

            }

            boardwrite("write", '', d.start, d.end);

        },

        eventClassNames: function(arg) {

            /** 이벤트 로드시 호출 */

            //console.log(arg.);

        },

        columnHeaderText: function(date) {

            console.log(date);

        },

        eventDrop: function(info) { // 달력화면에서 스케쥴 막대전체를 이동시</p>

<p>            if(!g5_is_admin && (info.event._def.extendedProps.wr_id != info.event._def.extendedProps.member_id) || !info.event._def.extendedProps.member_id) {

                alert("권한이 없습니다.");

                info.revert();

                return false;

            };</p>

<p>            if(get_ymd(info.event.start) < g5_time_ymd) {

                alert("오늘 날짜 이전으로 일정을 변경할 수 없습니다.");

                info.revert();

                return false;

            }</p>

<p>            var start = info.event.startStr;

            var end = info.event.endStr;

            var wr_id = info.event.id;

            dragEditDateChange(start, end, wr_id);

        },

        eventResize : function(info) { // 달력화면에서 스케쥴  막대의 사이즈를 변경시 (날자구간을 변경) - 종료 이벤트</p>

<p>            // 자신의 일정인지 체크 (관리자 제외)

            if(!g5_is_admin && (info.event._def.extendedProps.wr_id != info.event._def.extendedProps.member_id) ||  !info.event._def.extendedProps.member_id) {

                alert("권한이 없습니다.");

                info.revert();

                return false;

            };</p>

<p>            // 변경전 시작날짜

            var oldStart = new Date(info.oldEvent.start);

            oldStart = oldStart.setMinutes(oldStart.getMinutes() - 540); // 시작날짜는 9시간 빼기

            oldStart = get_ymd(oldStart);</p>

<p>            // 변경전 종료날짜

            var oldEnd = new Date(info.oldEvent.end);

            oldEnd = oldEnd.setMinutes(oldEnd.getMinutes() - 541); // 종료날짜는 9시간 1분 빼기

            oldEnd = get_ymd(oldEnd);</p>

<p>            // 변경후 시작날짜

            var newStart = new Date(info.event.start);

            newStart = newStart.setMinutes(newStart.getMinutes() - 540);

            newStart = get_ymd(newStart);</p>

<p>            // 변경후 종료날짜

            var newEnd = new Date(info.event.end);

            newEnd = newEnd.setMinutes(newEnd.getMinutes() - 541);

            newEnd = get_ymd(newEnd);</p>

<p>            /**

             * 시작날짜를 변경시 : 시작날짜가 오늘 이전이라면 변경 불가

             * - 변경전 종료날짜와 변경후 종료날짜가 같아야 함

             * - 변경전 시작날짜와 변경후 시작날짜가 달라야 함

             **/

            if(oldEnd == newEnd && oldStart != newStart) {</p>

<p>                //변경전 종료날짜가 현재날짜와 같거나 크고, 변경후 시작날짜가 오늘보다 작으면 .

                if(oldStart >= g5_time_ymd && newStart < g5_time_ymd) {

                    alert("[1] 오늘 날짜 이전으로 일정을 변경할 수 없습니다.");

                    info.revert();

                    return false;

                }</p>

<p>                // 변경전 시작날짜가 오늘 이전이라면.

                console.log(info.oldEvent.start);

                console.log(oldStart);

                if(oldStart < g5_time_ymd) {

                    alert("[2] 오늘 날짜 이전의 자료는 변경할 수 없습니다.");

                    info.revert();

                    return false;

                }</p>

<p>            }</p>

<p>            /**

             * 종료날짜 변경 : 종료날짜가 오늘 이전이라면 변경 불가

             * - 변경전 시작날짜와 변경후 시작날짜가 같아야 함.

             * - 변경전 종료날짜와 변경후 종료날짜가 달라야 함.

             */

            if(oldStart == newStart && oldEnd != newEnd) {</p>

<p>                //변경전 종료날짜가 현재날짜와 같거나 크고, 변경후 종료날짜가 오늘보다 작으면 .

                if(oldEnd >= g5_time_ymd && newEnd < g5_time_ymd) {

                    alert("[3] 오늘 날짜 이전으로 일정을 변경할 수 없습니다.");

                    info.revert();

                    return false;

                }</p>

<p>                // 변경전 종료날짜가 오늘 이전자료라면.

                if(oldEnd < g5_time_ymd) {

                    alert("[4] 오늘 날짜 이전의 자료는 변경할 수 없습니다.");

                    info.revert();

                    return false;

                }</p>

<p>            }</p>

<p>            var start = info.event.startStr;

            var end = info.event.endStr;

            var wr_id = info.event.id;

            //console.log(start+' / '+end+' / '+wr_id);

            dragEditDateChange(start, end, wr_id);

        },

        eventClick: function(info) {</p>

<p>            if (info.event.url.indexOf(document.location.hostname) === -1) {

                boardwrite("view", info.event.id, '');

                info.jsEvent.preventDefault(); // don't let the browser navigate

            }

        },

        datesRender: function(info) {

            console.log(info);

            // addSelectedClass: '오늘' 날짜가 없는 달에는 1일이 선택되어 있는 것처럼 배경색 바꾸기.

            //addSelectedClass(info.view.currentStart).then(function (seletedEl) {

            // 배경색 바꾼 후 다른 작업 ...

            //});

        },

        loading: function(bool) {

            $("#loading").toggle(bool);

        }

    });</p>

<p>    calendar.render();</p>

<p>    /* 팝업창 닫을때 실행될 함수 - 일정데이터 불러오기 */

    calendarRefresh = function() {

        calendar.refetchEvents();

    }</p>

<p>    // 관리자버튼 생성

    var btns = "";

    if (g5_is_admin) {

        btns += '<button type="button" class="fc-button fc-button-primary" id="btn-settings"><i class="fa fa-gear" aria-hidden="true"></i></button>';

        btns += '<button type="button" class="fc-button fc-button-primary" id="btn-adminset">A</button>';

    }</p>

<p>    // 글쓰기 버튼

    if(bbs_write_url) {

        btns += '<button type="button" class="fc-button fc-button-primary" id="btn-write"><i class="fa fa-pencil" aria-hidden="true"></i></button>';

    }

    $("#calendar .fc-button-group").append(btns);</p>

<p>

    /** 카테고리 */

    if(is_category) {

        var cate ="<li class='category fc-button-primary' data-id=''>전체</li>";

        for(i = 0; i < category.length; i++) {

            cate += "<li class='category fc-button-primary' data-id='"+category[i]+"'>"+category[i]+"</li>";

        }

        $("#bo_cate_ul").append(cate);</p>

<p>        // 카테고리 클릭

        $(".category").click(function() {

            var val = $(this).attr("data-id");

            $("#sca").val(val);

            $(".category").removeClass("category-active");

            $(this).addClass("category-active");

            calendarRefresh();

        });</p>

<p>    }</p>

<p>

    // 우측 상단 글쓰기 버튼

    $("#bo_list").on('click', '#btn-write', function() {

        boardwrite("write", '', '', '');

    });</p>

<p>    // 관리자 설정

    $("#bo_list").on('click', '#btn-adminset', function() {

        location.href = bbs_admin_url;

    });</p>

<p>    // 일별 글쓰기 바로가기

    $("#bo_list").on('click', '.rumi-write', function(e) {

        var dt = JSON.parse($(this).attr("data-navlink"));

        boardwrite("write", '', dt.date, dt.date);

    });</p>

<p>    // 스케쥴러 기본 설정

    $("#bo_list").on('click', '#btn-settings', function() {

        fullcalendarSetup();

    });</p>

<p>});</p>

<p> </p>

<p><strong>

 

이부분은 스킨의 작성자 write.skin.php 파일 부분인데 

이부분에 수정을 해줘야 하는 질문 드립니다. 

</strong></p>

<p><strong>/* 글쓰기, 수정, 답글에 대한 시간 설정 */

$start = ($w=="u" || $w=="r") ? $write['wr_1'] : $_GET['start'];

$end = ($w=="u" || $w=="r") ? $write['wr_2'] : $_GET['end'];

$allday = $_GET['allday'];

$start = ($start) ? $start : G5_TIME_YMD."T00:00:00";

$end = ($end) ? $end : G5_TIME_YMD."T23:59:59";

$fr_date = date('Y-m-d', strtotime($start));

list($fr_h, $fr_m) = explode(":", date('H:i:s', strtotime($start)));

$to_date = date('Y-m-d', strtotime($end));

list($to_h, $to_m) = explode(":", date('H:i:s', strtotime($end)));

$fr_h = ($start != $fr_date) ? $fr_h : "00";

$fr_m = ($start != $fr_date) ? $fr_m : "00";

$to_h = ($end != $to_date) ? $to_h : "23";

$to_m = ($end != $to_date) ? $to_m : "59";</strong></p>

<p><strong>add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/css/style.css?ver='.G5_CSS_VER.'">', 0);

add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/css/fullcalendar.css?ver='.G5_CSS_VER.'">', 0);

add_javascript('<script src="'.FC_PLUGIN_URL.'/jscolor.min.js?ver='.G5_JS_VER.'"></script>', 0);

?></strong></p>

<p><strong><script>

var w = "<?php echo $w; ?>";

$(function(){ // 날짜 입력</strong></p>

<p><strong>    if(w == 'r') { // 글 답변시

        $("div.rumiButton button:contains('취소')", parent.document).show();

        $("div.rumiButton button:contains('수정')", parent.document).hide();

    }

    else if(w == 'u') { // 글수정시

        $("div.rumiButton button:contains('취소')", parent.document).show();

        $("div.rumiButton button:contains('수정')", parent.document).hide();

    }

    else {

        $("div.rumiButton button:contains('취소')", parent.document).hide();

        $("div.rumiButton button:contains('수정')", parent.document).hide();

    }

    $("div.rumiButton button:contains('삭제')", parent.document).hide();

    $("div.rumiButton button:contains('저장')", parent.document).show();</strong></p>

<p><strong>    $("#wr_1, #wr_2").datepicker({

        changeMonth: true,

        changeYear: true,

        dateFormat: "yy-mm-dd",

        showButtonPanel: true,

        yearRange: "c-0:c+10",

        minDate: "0",

        maxDate: ""

    });</strong></p>

<p><strong>    $("#bo_w").on('click', '.btn-color', function() {

        var id = $(this).attr('data-id');

        var color = $(this).attr('data-color');

        if(id == "background") {

            $(".color-sample").css({"background":color});

            $('#wr_4').val(color);

        }

        else {

            $(".color-sample").css({"color":color});

            $('#wr_3').val(color);

        }

    });</strong></p>

<p><strong>    $(".user-color").click(function() {

        jscolor.installByClassName("jscolor");

    });</strong></p>

<p><strong>    $(".user-color").blur(function() {

        var id = $(this).attr("data-id");

        var color = $(this).val();

        if(id == "background") {

            $(".color-sample").css({"background":color});

            $('#wr_4').val(color);

        }

        else {

            $(".color-sample").css({"color":color});

            $('#wr_3').val(color);

        }

    });

});</strong></p>

<p><strong>
 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

5년 전

</p>

<pre>
<code>            if(get_ymd(info.event.start) < g5_time_ymd) {
                alert("오늘 날짜 이전으로 일정을 변경할 수 없습니다.");
                info.revert();
                return false;
            }</code></pre>

<p>

 

여기가 체크 하는 부분 같습니다.   이 부분을 코멘트 처리해 보세요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인