모듈

스케줄 모듈

추천 수 0 댓글 70
Extra Form
자료 소개 일정을 효율적으로 관리할 수 있는 기능을 제공해주는 모듈입니다.
설치 경로 ./modules/schedule
테스트 환경 Rhymix 2.0
라이선스 GPL v2
Github https://github.com/bjrambo/xe-module-schedule
이름 버전 날짜 다운수
schedule.2.3.zip 2.3.0 2021-03-03 178
schedule.2.2.zip 2.2.0 2021-02-23 55

람보님의 스케줄 모듈을 개조해서 만들었습니다.

- 이제 나름 안정화 버전이라 판단되어 공식 배포합니다.
- 관련 히스토리는 https://xetown.com/tips/1529234 를 참조해주세요.

관심이 있으신 분들은 아래 사항 숙지하시고 사용해주시면 감사하겠습니다.

 

미리보기 : https://dev.aporia.blog/schedule

 

 

0. 업데이트

 

2.3 : 2021-03-03

- 관리자 페이지

: 대시보드에서 모듈 카테고리 미출력 버그 수정

: 모듈 추가 완료시 리다이렉트 페이지 수정

: 모듈 삭제 시 연관 스케줄 일괄 삭제 (트리거 추가, 관련 함수 삽입, 쿼리 xml 추가)

- php

: 반복일정 item 버그 수정

-> 어느 경우에 발생하는지 모르지만 간헐적으로 lang 함수가 안 먹었음. 그래서 $lang = Context::get('lang') 선언으로 대체

: 입력화면에서 기존스케줄 또는 신규스케줄의 반복 옵션이 없을 때 반복 설명문의 span 태그 미출력 문제 수정

: 메일링 때 스케줄 번호 미출력 문제 수정

- 스킨

: 카테고리 목록 없을 때 헤더 부분 여백 문제 수정

: 삭제 화면에서도 본문 화면과 동일하게 선택일 표기
: common 폴더 부를 때 상대경로 지정으로 수정

: 리스트에서 sorting 링크 복원

: vue-datetime을 활용한 모바일 친화적 date-time picker 적용

-> https://mariomka.github.io/vue-datetime/

: 모바일에서 셀렉트 버튼 접근성 개선(달력 년월 이동, 분류 선택 등)

: 반복 설정에서 반복 중단일 reset 버튼 추가

: 시작일 따라 종료일 및 중단일의 minDateTime 연동

 

 

1. 설치

 

1) 기존에 2.0 미만의 스케줄 모듈이 있다면

완전히 삭제한 뒤에 설치하셔야 합니다. 기존과 테이블 구조가 많이 달라졌기 때문입니다. 절대로 기존 모듈(2.0 미만)에 덮어쓰기 하거나 업데이트하지 마세요.
- 기존의 데이터도 호환되지 않을 겁니다. 만약 데이터 승계가 필요하다면 따로 백업하신 후에 DB 테이블과 컬럼에 맞게 수동으로 옮겨주셔야 합니다.

2) 기존에 2.0~2.1 버전 사용자라면

- 관리자 페이지 첫 화면에서 데이터베이스 업데이트를 반드시 해주셔야 합니다.
- 썸네일 출력 관계로 uploaded_count 컬럼이 추가되었기 때문입니다.

3) 기타

PHP 7.0, 라이믹스 2.0.7, 크롬에서 테스트되었습니다. PHP 8.*에서는 호환성에 문제가 있을 수 있습니다.

- 라이믹스 하위 버전에서 테스트는 해보지 않았지만, 2.0 미만에서는 작동하지 않는 게 확실하니 2.0 이상 환경에서 설치 시도를 해주세요.
- 설치 경로는 루트 > modules > schedule 입니다.

 


2. 주요 기능

 

1) 개요

-람보님에 의하면 "게시판모듈에 소속된 모듈을 밖으로 끄집어냄으로써 더이상 Document 모듈의 복잡한 DB구조와 확장변수의 복잡함을 더 이상 사용하지 않아도 편리하게 스케줄을 이용할 수 있도록 하는 것이 목적"
- 인데, 기능 개선 과정에서 Document와 Board 모듈을 벤치마킹하면서 좀 복잡해지긴 했습니다. 하지만 그만큼 기능이 좋아졌습ㄴ...

 

2) 공신력 있는 날짜 정보 활용

- 공공데이터 API를 통해 음양력, 공휴일, 24절기, 기타 잡절 출력
- API를 사용하지 않으면 별도의 라이브러리를 사용합니다.

 

3) 알기 쉬운 스케줄 반복 설정

- 스케줄 반복 설정시 접근이 쉬운 인터페이스 제공(기본 스킨)
- 반복 설정 내용에 대한 깔끔한 코드 처리 ... 암튼 어렵지 않아요

 

4) SEO 강화

- 라이믹스 2.0 이후에 도입된 짧은 주소 기능으로 검색 엔진 최적화의 수준을 더 높였습니다.
- 또한 본문 내 첨부이미지 외에도 외부이미지로도 메타 태그의 대표 이미지로 설정 가능합니다.

 

5) 스케줄의 원활한 대기/공개 관리

- 스케줄 본문에서 직접 변환 가능
- 관리자 페이지에서도 일괄적으로 관리 가능

 

6) 회원 전용 비밀스케줄 기능 지원

- 상담게시판 기능과 유사하다 보시면 됩니다

 

7) 다양한 스킨 활용 가능

- 스케줄 전용 모듈인 만큼 원하시는대로 스킨을 제작해서 사용하실 수 있습니다.

 


3. 설정

 

1) 특일 정보 설정

- 음력, 공휴일, 24절기, 기타 잡절 등 특일 정보 출력을 위해 공공데이터 포털에서 API키를 받아서 입력합니다. 두 군데에서 '활용신청' 수락을 받아야 하는데, API키는 처음 받은 키를 그대로 유지하면 됩니다.

- 기존의 특일 정보 관련 함수들에 비해 정확하고 공신력 있는 정보라 생각하시면 될 것 같습니다.

- 만약 API키가 없더라도 모듈 자체적으로 특일 정보를 구현할 수는 있습니다. 다만 이 경우에는 API키를 활용하는 것보다 스케줄 표/목록 출력이 살짝 느릴 수는 있습니다.

- API키 취득 및 활용신청은 아래의 링크에서 하세요.

- 특일(공휴일,24절기,잡절) : https://www.data.go.kr/data/15012690/openapi.do

- 음양력 변환 : https://www.data.go.kr/data/15012679/openapi.do

 

2) 모듈 추가/정보 : 설정

- 모듈 이름(mid), 브라우저 제목, 모듈 분류, 관리자 메일 등을 입력합니다. 게시판 모듈의 방식과 동일하니 어렵지 않을 겁니다.
- 특일선택은 공공데이터 포털에서 취득한 API키를 활용해서 스케줄 테이블에 뿌려줄 항목들입니다. 음력, 공휴일, 24절기, 기타 잡절 등을 가져올 수 있습니다.

[주의] API키를 통해 월별 특일 정보가 담긴 xml 파일을 캐시파일로 저장하게 됩니다. 따라서 달력 각 페이지 첫 로드시에는 속도가 다소 느릴 수 있습니다. 그렇지만 캐시파일 생성 이후에는 빠른 속도로 로드가 이뤄집니다.

- 또한 관리자가 공공데이터에서 제공하는 특일 외의 여타 특일을 직접 입력할 수도 있습니다. 행별로 제목, mmdd 형식으로 입력해서 활용할 수 있습니다.

 

3) 모듈 추가/정보 : 레이아웃 | 스킨

- 레이아웃, 스킨, 상단내용, 하단내용 등을 입력할 수 있습니다. 게시판 방식과 동일합니다.

- 단, 모바일 레이아웃과 스킨은 설정 > 시스템 설정 > 고급 설정에서 '모바일 뷰 사용'을 '아니오'로 했다면 해당 폼을 로드하지 않습니다.

 

4) 모듈 추가/정보 : 고급 설정

- 스팸 방지 기능은 스팸필터 모듈의 캡챠 설정과 연동됩니다.
- 상태 지정은 스케줄 입력 화면에서 작성자가 선택할 수 있는 스케줄 콘텐츠 상태 선택 사항을 의미합니다.
- 대기 상태의 스케줄을 어떻게 표시할 것인지 설정할 수 있습니다. 그냥 보이게 하거나, 가리거나, 감출 수 있습니다.
- 비밀 스케줄러를 사용하면 작성자는 본인이 입력한 스케줄만 확인할 수 있습니다. 상담게시판 기능과 유사합니다.

- 목록 보기 체크를 통해 캘린더뿐 아니라 일반적인 목록 형태로도 스케줄을 열람할 수 있습니다.

 

5) 기타 항목

- 분류 관리, 권한 관리, 추가 설정, 스킨 설정 등은 기존 게시판 설정과 유사하므로 따로 설명이 필요 없을 겁니다.
- 다만 추가설정에 댓글 설정이 있는데 이 부분은 향후 기능 개선을 위해 남겨둔 것으로 현재 2.2 버전에서는 모듈에 영향을 주지 않습니다.

 

 

제작자 람보

profile
람보입니다.
  • ?
    기존 모듈을 db 까지 모두 지우고 2.3 설치 했는데요, 스케쥴 작성 권한이 분명 모든 사용자로 되어 있는데 '스케줄을 작성하거나 수정할 권한이 없습니다' 라고 메세지가 출력이 됩니다. 이게 저만 그런가요?
  • ? profile
    1. 지난번에 지우는 과정에서 스케줄 모듈의mid를 지우지 않았더라면 기존의 설정이 잇을 수 있습니다. 설정을 확인할 때 해당 설정페이지에 잠깐 들어가서만 봤는지 아니면 재 설정(해당값들을 수정하며 다시 등록)하는 과정을 거쳤는지에 따라 권한처리가 될 수 있겠습니다. 따라서 권한을 재 설정을 하시길 권장드립니다.

    2. 1번에서 재설정을 해도 안된다면 스케줄 등록하는 것은 InsertDocument 를 사용하는 것만큼 게시글을 작성하는 효과도 있습니다.

    관련 권한을 관장하는 애드온 또는 모듈이 있을경우 거기에서 막힐 수 있습니다.

    원인은 너무 다양할 수 있기 때문에 단순히 스케줄 모듈의 문제로 보기엔 어렵겠지만.. 실제로 테스트하는 과정에서도 문제가 없었던 상황이라 다시한번 더 권한을 알아보시고 관련 애드온이나 문제점이 있는지 찾아보시기 바랍니다 :)
  • profile ?
    답변 감사합니다.
    비밀 스케줄러 사용 옵션을 체크하니 비회원으로 글쓰기가 안됐던 거였네요.

    저는 이 옵션에 대해 이해하기를 이 옵션을 켜면 다른 사람들이 제 스케줄을 볼 수 없게 하고 저 또한 다른 사람의 스케줄을 볼 수 없으며 제 스케줄만 볼 수 있게 하는 것으로만 이해를 했습니다. 물론 관리자는 모두 볼 수 있구요.

    비밀 스케줄러 사용 옵션을 켜면 '스케줄을 작성하거나 수정할 권한이 없습니다' 라고 메시지가 출력되면서 비회원, 즉 로그인 하지 않은 사용자는 스케줄을 작성하지 못하는 것이 정상작동이 맞는지요?
  • profile
    제작자가 @윤삼님에서 @람보님으로 변경되었습니다.
  • profile
    윤삼님 2.3버전 깃허브 넘어온것도 있고 그러니 이거 게시글주인 저로 체인지 가능할가요? 저장소자체가 제꺼라 업데이트 해야할거 많아서요;; (심각한 버그도 있고 작동안되는 부분 싹다 수정해야합니다.. 예예;;)
  • profile profile
    넵넵, 대환영입니다.
    바꿔주세요!!
  • profile profile
    아까 전에 디스코드 들어가서 코딩하시는 실황중계 살짝 봤는데 기대만발입니다~!
  • profile
    와 ~ 멋집니다.
    깔끔하고 좋네요.
    그런데 혹시 하루 종일(시간 선택 없이)인 경우에는 날짜를 변경할 수 없군요. 다시 시간 선택 가능하게 바꾸고 날짜 바꾼 다음 다시 하루 종일로 변경해야 하는 약간(? ^^;;)의 번거로움이 있습니다. 하루 종일에서도 날짜 변경 가능했으면 어떨까 합니다.
    잘 사용하겠습니다. 너무 좋네요 ~~~~ ^^
    (내가 왜 이 모듈을 못봤을까요.. 이제서야 ㅎㅎ)
  • profile
    감사합니다 찾던 기능인데 잘쓰겠습니다!
  • profile
    자료 감사합니다. 메인페이지에서 불러오는 위젯은 없을까요? ㅠㅠ
  • profile profile
    네 현재로서는 없습니다. 따로 제작을 하셔야 해요 :)
  • profile
    구글캘린더 연동이랑 혹시 위젯으로도 가능할까요?
  • profile profile
    아마 꾸역꾸역 하면 될 것도 같은데, 제 능력 밖의 일이긴 하네요;;;
  • ?
    감사합니다. 잘사용하겠습니다.
  • profile
    잘 사용하겠습니다 !!
  • ?
    잘 사용하겠습니다. 항상 감사합니다 :)
  • profile
    php7.4 에서 음력으로 설정된 반복된 1년 단위의 일정은 , 6~7년을 건너뛰고 날짜 변환도 제대로 이루어 지지 않네요!
  • profile
    감사합니다 잘쓰겠습니다!!
  • profile
    깔끔하네요. 어여 라이믹스로 옮겨야 사용할텐데....
  • profile
    보안정책상 추가 오류는 모듈명 공백 있으면 나옵니다. 참고하세요~
    그리고 감사히 잘 사용하겠습니다 ^^
  • profile profile
    감사합니다 ㅠㅠ
  • profile profile
    정확히말하자면 한글로써서 안됬엇네요 ㅠㅠ
  • profile
    감사히 잘사용하겠습니다
    다만 모듈추가시 보안정책상 추가가 안된다는데 어떻게 해결해야할까요 ㅠ
  • profile profile
    제 경우엔 모듈 추가가 잘 되는데요. https://dev.aporia.blog/sorry
    가능하시다면 에러 로그를 한번 확인해보세요.
  • profile profile
    모듈명공백이문제였습니다 감사히 잘사용하겠습니다 : )
  • profile profile
    정확히말하자면 한글로써서 안됬엇네요 ㅠㅠ
  • profile
    멋진 자료감사합니다.^^
    저만의 문제인지는 모르겠으나 에디트 화면에서 날짜 클릭시 datepicker가 활성되지않는 현상이 있습니다.

    http://localhost/common/js/plugins/ui/jquery.ui.datepicker-ko.js
    http://localhost/common/js/plugins/ui/jquery-ui.min.css
    http://localhost/common/js/plugins/ui/jquery-ui.min.js
    Console 에러내용은 위와 같습니다.
  • profile profile
    404 에러인가요? 혹시 해당 파일이 없는 건 아닌 거구요?
    하긴 로딩시가 아니라 클릭시 에러가 뜨는 거면, 404는 아닐 것 같은데요.
    레이아웃과 충돌이 있을 수도 있고...
    에러메시지가 저 내용 외에도 더 있을 텐데 나머지도 다 알려주시면 좋을 것 같습니다.
  • profile profile
    rhymix_version : 2.0.7
    php : 7.4.6 (64-bit)
    레이아웃 미설정으로 테스트하였습니다.
    로컬호스트환경이라 주소제공을 못해드려 죄송합니다.

    index.php:26 GET http://localhost/common/css/xeicon/xeicon.min.css net::ERR_ABORTED 404 (Not Found)
    index.php:27 GET http://localhost/common/js/plugins/ui/jquery-ui.min.css net::ERR_ABORTED 404 (Not Found)
    index.php:32 GET http://localhost/common/js/plugins/ui/jquery-ui.min.js net::ERR_ABORTED 404 (Not Found)
    index.php:33 GET http://localhost/common/js/plugins/ui/jquery.ui.datepicker-ko.js net::ERR_ABORTED 404 (Not Found)
    index.php?mid=schedule&selected_month=202102&selected_day=24&act=dispScheduleInsert:32 GET http://localhost/common/js/plugins/ui/jquery-ui.min.js net::ERR_ABORTED 404 (Not Found)
    index.php?mid=schedule&selected_month=202102&selected_day=24&act=dispScheduleInsert:33 GET http://localhost/common/js/plugins/ui/jquery.ui.datepicker-ko.js net::ERR_ABORTED 404 (Not Found)
    jquery-ui-timepicker-addon.js?20191025205827:21 Uncaught TypeError: Cannot read property 'timepicker' of undefined
    at jquery-ui-timepicker-addon.js?20191025205827:21
    at jquery-ui-timepicker-addon.js?20191025205827:14
    at jquery-ui-timepicker-addon.js?20191025205827:16
    (anonymous) @ jquery-ui-timepicker-addon.js?20191025205827:21
    (anonymous) @ jquery-ui-timepicker-addon.js?20191025205827:14
    (anonymous) @ jquery-ui-timepicker-addon.js?20191025205827:16
    jquery-ui-timepicker-ko.js?20210225165704:4 Uncaught TypeError: Cannot read property 'regional' of undefined
    at jquery-ui-timepicker-ko.js?20210225165704:4
    at jquery-ui-timepicker-ko.js?20210225165704:22
    (anonymous) @ jquery-ui-timepicker-ko.js?20210225165704:4
    (anonymous) @ jquery-ui-timepicker-ko.js?20210225165704:22
    insert.js?20210225165704:60 Uncaught TypeError: Cannot read property 'datetimeRange' of undefined
    at insert.js?20210225165704:60
    (anonymous) @ insert.js?20210225165704:60
    ckeditor.js?20210219154748:99 GET http://localhost/common/css/xeicon/xeicon.min.css net::ERR_ABORTED 404 (Not Found)
    write @ ckeditor.js?20210219154748:99
    setData @ ckeditor.js?20210219154748:1005
    (anonymous) @ ckeditor.js?20210219154748:398
    l @ ckeditor.js?20210219154748:10
    (anonymous) @ ckeditor.js?20210219154748:12
    CKEDITOR.editor.CKEDITOR.editor.fire @ ckeditor.js?20210219154748:13
    setData @ ckeditor.js?20210219154748:295
    b @ ckeditor.js?20210219154748:998
    (anonymous) @ ckeditor.js?20210219154748:1000
    CKEDITOR.editor.setMode @ ckeditor.js?20210219154748:375
    (anonymous) @ ckeditor.js?20210219154748:369
    l @ ckeditor.js?20210219154748:10
    (anonymous) @ ckeditor.js?20210219154748:12
    CKEDITOR.editor.CKEDITOR.editor.fire @ ckeditor.js?20210219154748:13
    fireOnce @ ckeditor.js?20210219154748:12
    CKEDITOR.editor.CKEDITOR.editor.fireOnce @ ckeditor.js?20210219154748:13
    (anonymous) @ ckeditor.js?20210219154748:288
    z @ ckeditor.js?20210219154748:266
    load @ ckeditor.js?20210219154748:266
    (anonymous) @ ckeditor.js?20210219154748:287
    (anonymous) @ ckeditor.js?20210219154748:273
    (anonymous) @ ckeditor.js?20210219154748:271
    z @ ckeditor.js?20210219154748:266
    w @ ckeditor.js?20210219154748:266
    A @ ckeditor.js?20210219154748:266
    (anonymous) @ ckeditor.js?20210219154748:267
    setTimeout (async)
    F.CKEDITOR.env.ie.e.$.onload @ ckeditor.js?20210219154748:267
    load (async)
    F @ ckeditor.js?20210219154748:267
    load @ ckeditor.js?20210219154748:268
    load @ ckeditor.js?20210219154748:270
    k @ ckeditor.js?20210219154748:272
    (anonymous) @ ckeditor.js?20210219154748:273
    z @ ckeditor.js?20210219154748:285
    (anonymous) @ ckeditor.js?20210219154748:285
    (anonymous) @ ckeditor.js?20210219154748:529
    (anonymous) @ ckeditor.js?20210219154748:271
    z @ ckeditor.js?20210219154748:266
    w @ ckeditor.js?20210219154748:266
    A @ ckeditor.js?20210219154748:266
    (anonymous) @ ckeditor.js?20210219154748:267
    setTimeout (async)
    F.CKEDITOR.env.ie.e.$.onload @ ckeditor.js?20210219154748:267
    load (async)
    F @ ckeditor.js?20210219154748:267
    load @ ckeditor.js?20210219154748:268
    load @ ckeditor.js?20210219154748:270
    getStylesSet @ ckeditor.js?20210219154748:529
    e @ ckeditor.js?20210219154748:284
    (anonymous) @ ckeditor.js?20210219154748:284
    d @ ckeditor.js?20210219154748:265
    z @ ckeditor.js?20210219154748:266
    w @ ckeditor.js?20210219154748:266
    A @ ckeditor.js?20210219154748:266
    (anonymous) @ ckeditor.js?20210219154748:267
    setTimeout (async)
    F.CKEDITOR.env.ie.e.$.onload @ ckeditor.js?20210219154748:267
    load (async)
    F @ ckeditor.js?20210219154748:267
    load @ ckeditor.js?20210219154748:268
    load @ ckeditor.js?20210219154748:265
    v @ ckeditor.js?20210219154748:284
    (anonymous) @ ckeditor.js?20210219154748:284
    b @ ckeditor.js?20210219154748:545
    loadPart @ ckeditor.js?20210219154748:547
    l @ ckeditor.js?20210219154748:284
    (anonymous) @ ckeditor.js?20210219154748:283
    l @ ckeditor.js?20210219154748:10
    (anonymous) @ ckeditor.js?20210219154748:12
    CKEDITOR.editor.CKEDITOR.editor.fire @ ckeditor.js?20210219154748:13
    fireOnce @ ckeditor.js?20210219154748:12
    CKEDITOR.editor.CKEDITOR.editor.fireOnce @ ckeditor.js?20210219154748:13
    g @ ckeditor.js?20210219154748:283
    (anonymous) @ ckeditor.js?20210219154748:280
    (anonymous) @ ckeditor.js?20210219154748:30
    setTimeout (async)
    setTimeout @ ckeditor.js?20210219154748:30
    a @ ckeditor.js?20210219154748:280
    a @ ckeditor.js?20210219154748:369
    CKEDITOR.appendTo @ ckeditor.js?20210219154748:374
    editorInit @ editor.app.js?20210219154751:118
    $.fn.XeCkEditor @ editor.app.js?20210219154751:208
    (anonymous) @ index.php?mid=schedule&selected_month=202102&selected_day=24&act=dispScheduleInsert:344
    i @ jquery-2.2.4.min.js?20210219154748:2
    fireWith @ jquery-2.2.4.min.js?20210219154748:2
    ready @ jquery-2.2.4.min.js?20210219154748:2
    J @ jquery-2.2.4.min.js?20210219154748:2
    ckeditor.js?20210219154748:99 GET http://localhost/common/js/plugins/ui/jquery-ui.min.css net::ERR_ABORTED 404 (Not Found)
    write @ ckeditor.js?20210219154748:99
    setData @ ckeditor.js?20210219154748:1005
    (anonymous) @ ckeditor.js?20210219154748:398
    l @ ckeditor.js?20210219154748:10
    (anonymous) @ ckeditor.js?20210219154748:12
    CKEDITOR.editor.CKEDITOR.editor.fire @ ckeditor.js?20210219154748:13
    setData @ ckeditor.js?20210219154748:295
    b @ ckeditor.js?20210219154748:998
    (anonymous) @ ckeditor.js?20210219154748:1000
    CKEDITOR.editor.setMode @ ckeditor.js?20210219154748:375
    (anonymous) @ ckeditor.js?20210219154748:369
    l @ ckeditor.js?20210219154748:10
    (anonymous) @ ckeditor.js?20210219154748:12
    CKEDITOR.editor.CKEDITOR.editor.fire @ ckeditor.js?20210219154748:13
    fireOnce @ ckeditor.js?20210219154748:12
    CKEDITOR.editor.CKEDITOR.editor.fireOnce @ ckeditor.js?20210219154748:13
    (anonymous) @ ckeditor.js?20210219154748:288
    z @ ckeditor.js?20210219154748:266
    load @ ckeditor.js?20210219154748:266
    (anonymous) @ ckeditor.js?20210219154748:287
    (anonymous) @ ckeditor.js?20210219154748:273
    (anonymous) @ ckeditor.js?20210219154748:271
    z @ ckeditor.js?20210219154748:266
    w @ ckeditor.js?20210219154748:266
    A @ ckeditor.js?20210219154748:266
    (anonymous) @ ckeditor.js?20210219154748:267
    setTimeout (async)
    F.CKEDITOR.env.ie.e.$.onload @ ckeditor.js?20210219154748:267
    load (async)
    F @ ckeditor.js?20210219154748:267
    load @ ckeditor.js?20210219154748:268
    load @ ckeditor.js?20210219154748:270
    k @ ckeditor.js?20210219154748:272
    (anonymous) @ ckeditor.js?20210219154748:273
    z @ ckeditor.js?20210219154748:285
    (anonymous) @ ckeditor.js?20210219154748:285
    (anonymous) @ ckeditor.js?20210219154748:529
    (anonymous) @ ckeditor.js?20210219154748:271
    z @ ckeditor.js?20210219154748:266
    w @ ckeditor.js?20210219154748:266
    A @ ckeditor.js?20210219154748:266
    (anonymous) @ ckeditor.js?20210219154748:267
    setTimeout (async)
    F.CKEDITOR.env.ie.e.$.onload @ ckeditor.js?20210219154748:267
    load (async)
    F @ ckeditor.js?20210219154748:267
    load @ ckeditor.js?20210219154748:268
    load @ ckeditor.js?20210219154748:270
    getStylesSet @ ckeditor.js?20210219154748:529
    e @ ckeditor.js?20210219154748:284
    (anonymous) @ ckeditor.js?20210219154748:284
    d @ ckeditor.js?20210219154748:265
    z @ ckeditor.js?20210219154748:266
    w @ ckeditor.js?20210219154748:266
    A @ ckeditor.js?20210219154748:266
    (anonymous) @ ckeditor.js?20210219154748:267
    setTimeout (async)
    F.CKEDITOR.env.ie.e.$.onload @ ckeditor.js?20210219154748:267
    load (async)
    F @ ckeditor.js?20210219154748:267
    load @ ckeditor.js?20210219154748:268
    load @ ckeditor.js?20210219154748:265
    v @ ckeditor.js?20210219154748:284
    (anonymous) @ ckeditor.js?20210219154748:284
    b @ ckeditor.js?20210219154748:545
    loadPart @ ckeditor.js?20210219154748:547
    l @ ckeditor.js?20210219154748:284
    (anonymous) @ ckeditor.js?20210219154748:283
    l @ ckeditor.js?20210219154748:10
    (anonymous) @ ckeditor.js?20210219154748:12
    CKEDITOR.editor.CKEDITOR.editor.fire @ ckeditor.js?20210219154748:13
    fireOnce @ ckeditor.js?20210219154748:12
    CKEDITOR.editor.CKEDITOR.editor.fireOnce @ ckeditor.js?20210219154748:13
    g @ ckeditor.js?20210219154748:283
    (anonymous) @ ckeditor.js?20210219154748:280
    (anonymous) @ ckeditor.js?20210219154748:30
    setTimeout (async)
    setTimeout @ ckeditor.js?20210219154748:30
    a @ ckeditor.js?20210219154748:280
    a @ ckeditor.js?20210219154748:369
    CKEDITOR.appendTo @ ckeditor.js?20210219154748:374
    editorInit @ editor.app.js?20210219154751:118
    $.fn.XeCkEditor @ editor.app.js?20210219154751:208
    (anonymous) @ index.php?mid=schedule&selected_month=202102&selected_day=24&act=dispScheduleInsert:344
    i @ jquery-2.2.4.min.js?20210219154748:2
    fireWith @ jquery-2.2.4.min.js?20210219154748:2
    ready @ jquery-2.2.4.min.js?20210219154748:2
    J @ jquery-2.2.4.min.js?20210219154748:2
  • profile profile
    해당 경로에 파일이 존재하는지 확인해주시겠어요? 이게 원래 코어 기본 구성품이어서 그 자리에 있어야 하는데...
  • profile profile
    파일은 존재하는거 확인했습니다. ^^
  • profile profile
    혹시 코어를 사이트 루트가 아닌 다른 폴더(예. rx)에 설치하신 건 아니겠죠?
  • profile profile
    말씀하신 루트가 아닌 rx폴더 생성 후 설치했습니다.
  • profile profile
    아, 그러면 원래 파일이 있을 경로는
    http://localhost/common/css/xeicon/xeicon.min.css 가 아니라
    http://localhost/rx/common/css/xeicon/xeicon.min.css 겠군요.
    (다른 파일들도 마찬가지겠구요)
    스킨의 _header.html에서 경로 지정을 바꿔줘야 할 것 같기도 하네요.
    점검을 해보도록 하겠습니다.
  • profile profile
    스킨에서 _header.html 파일을 열어보면
    /common 으로 시작하는 부분이 4군데 있을 텐데요.
    /common 을 ../../../../common 으로 전부 바꿔보시겠어요?
  • profile profile
    4군데 수정 및 캐시파일 재생성 후 콘솔상의 에러는 나오지 않습니다.
    다만
    미리보기 : https://dev.aporia.blog/schedule 에서 나오는 형식의 날짜시간 형식이 아닌 날짜만 input에 찍히며 datepicker도 시간,시,분이 없는 날짜만 있는 datepicker가 뜹니다.
  • profile profile
    에러 메시지 없이요?
    에러 메시지가 있다면 공유 부탁드리고, 캐시파일 재생성 및 브라우저 캐시 삭제 등도 해보시면 좋겠습니다.
  • profile profile
    콘솔상에 에러 메시지는 없으며
    캐시파일 재생성 및 브라우저 캐시 삭제 후에도 날짜형식만 있는 datepicker가 뜹니다.
    크롬에서 테스트 중입니다.
  • profile profile
    재연이라도 할 수 있다면 좋겠는데, 더 이상은 저도 잘 모르겠네요ㅜㅜㅜ
  • profile profile
    확인해주셔서 감사합니다~~^^
  • profile profile
    로드 자체는 됐을 것 같은데... 레이아웃 미사용으로 테스트 중이시니 혹시 display가 none 처리가 됐을 리도 없고ㅜ 별 도움을 못 드려서 죄송해요ㅠㅠ
  • profile profile
    [본문내 이미지 조절 애드온] 미설정 후 해결되었습니다.
    라이믹스 설치 후 다른 설정값을 건드린적이 없고 혹시나 해서 활성화 되어있던 애드온을 하나씩 꺼보며 확인해 보니 [본문내 이미지 조절 애드온] 미사용 후 제대로 출력되네요~~ㅜㅜ
  • profile profile
    애드온 간섭이군요. 레이아웃 신경만 쓰다보니ㅎㅎ
    스케줄에선 이미지를 사용하는 경우가 드물 테니 여기선 해당 애드온을 꺼두셔도 좋을 것 같습니다.

    그나저나 datetimepicker 디자인이 조잡스럽다 생각했는데 이 참에 교체하는 것도 고민해봐야겠네요ㅎㅎ
  • profile profile
    오전/오후 윤삼님 시간내주셔서 감사합니다.
    그래도 원인을 찾아서 먼가 후련하네요~~^^
  • profile profile
    조금 헤매긴 했지만 그래도 원활히 해결돼서 다행이에요 :)
    사용하시다 생각 나시면 피드백도 주세요~~
  • profile
    라이믹스 갈아타고...신바람 나게...이것 저것 설치해보고 있습니다.
    이 스케줄러...설치했는데...좋습니다...아주 좋습니다.
    다만 조금 아쉬운것은 사용기간이 정해져 있다는 것...
    어쨌든 만드시느라..고생하셨고..고맙게 잘 쓰겠습니다. ^^
  • profile profile
    딱히 기간 제한을 하진 않았던 것 같은데 그게 어떤 말씀이실까요오...
  • profile profile
    아...API 갱신기간이 있더군요...API 이야기입니다. ^^
  • profile profile
    아 그렇죠. 그걸 왜 그렇게 했는지 몰라요ㅎㅎ
  • profile
    감사합니다. ^^ 대단하십니다. 항상 응원 드려요.
  • profile profile
    응원은 큰 힘이죠. 감사합니다!
  • profile
    감사합니다. 윤삼님
  • profile profile
    네, 부디 유용하게 활용되면 좋겠습니다.
  • ?
    윤삼님 최고십니다. 올려 주신 자료 늘 잘사용 중입니다. 다름이 아니오라 캘린더 모듈을 봤는데 이게 '하루종일' 옵션이 아닐 경우 해당시간을 설정할 수 있을것 같은데. 제가 잘못 설치 해서인지 일자만 등록할 수 있게 되어 있어서요. 혹여 시간 설정을 가능한지요?
  • ? profile
    날짜 입력 창에 커서가 포커스되면 날짜를 선택할 수 있는 달력 모양의 팝업창이 뜨잖아요? 그 달력 바로 아래에 시간을 설정하는 슬라이드바가 있을 텐데요.
  • profile ?
    아하 한번 해보겠습니다. 제가 설정을 잘못 했는지 현재 시간만 나오더라구요,,,,,늘 친절한 답변 감사드립니다.
  • ?
    감사합니다. 잘 사용하겠습니다.
  • ? profile
    네, 알찬 스케줄 되세요~ㅎㅎ
  • profile
    헐.... 윤삼님......
    아... 이렇게 꼭 필요한 것을..... ㅠㅠ 아 정말 감사합니다! ㅠㅠ
  • profile profile
    요긴하게 쓰일 수 있다면 좋겠습니다!
  • profile
    Error #0 "Using $this when not in object context" in modules/module/module.model.php on line 1078
    common/framework/debug.php:663

    API 저장하고 모듈추가 하니깐 위와 같은 에러가 뜨는데 라이믹스 2.x이상부터 사용 가능한가요?
  • profile profile
    네, 2.0 이후 버전대에 기반해서 만든 것이어서요.
    가급적 최신 버전을 추천합니다.
  • profile
    감사합니다. 아직 설치해보진 못했지만 윤삼님 자료는 항상 최고니 빨리 적용해보고 싶은데 요즘 너무 바쁘네요..; 혹시 확장변수처럼 추가 변수를 입력받고 출력시킬 수 있을지 궁금하네요~
  • profile profile
    아뇨, 확장변수까지는 워낙에 대공사여서 엄두가 안 나더라구요ㅜㅜ
  • profile profile
    그렇군요 ㅎ 추가로 받아야 하는 것들이 많아 당분간은 미뤄둬야 하겠네요. 그래도 좋은 자료 너무 감사드립니다.
  • profile
    고생하셔서 만드심에도 불구하고 이렇레 무료로 공개해주셔서 너무 감사드립니다

    혹시...php8.0 지원은 조금 어려울까요..? ㅠㅠ
  • profile profile
    제가 사용을 안해봐서요;;; 심지어 7.0 사용중이에요ㅜ
    8.0에서 가동해보시고 혹시 같은 환경에서 사용 중인 다른 분들이 있다면 의견 나누시는 것도 좋을 것 같습니다.
  • profile profile
    네 좋은 모듈 개선해주셔서 감사합니다!!
  • ?
    만드신다고 고생하셨습니다.👍
    Good!!

    근데 리스트로 출력하니 아무 내용도 출력이 안되는데요
    이곳에는 이미지를 올릴 수가 없어서...
  • ? profile
    이미지로 설명 가능하시다면
    https://xetown.com/tips/1529234
    이쪽에 댓글로 주시겠어요?
    어찌된 사정인지 궁금합니다ㅜ