스케줄 모듈 2.1
2.2 버전부터는 포인트 콘텐츠 자료실에서 제공합니다.
https://xetown.com/point_contents/1533299
람보님의 스케줄 모듈을 개조해서 만든 2.0 2.1 버전입니다.
(관련 히스토리는 https://xetown.com/topics/1517938 참조)
손대기 시작한지 벌써 1달이 넘었는데도 계획에 비해서는 아직 갈 길이 멉니다ㅜ
그래도 더는 미룰 수 없어서 베타 버전을 올리오니 관심이 있으신 분들은 아래 사항 숙지하시고 테스트사용해주시면 감사하겠습니다.
미리보기 : https://dev.aporia.blog/schedule
0. 업데이트
2.1 : 2021-02-16
- API키 미사용시 자체 함수를 이용해서 특일 정보 출력 (adlib님). API키 사용시보다 첫 로딩 때는 빠르지만 API키로 캐시파일 생성된 이후의 속도와 비교하면 살짝 느릴 수 있습니다.
- item 함수에서 BaseObject 수정 (유니짱님)
1. 설치
- 기존에 스케줄 모듈이 있다면 완전히 삭제한 뒤에 설치하셔야 합니다. 기존과 테이블 구조가 많이 달라졌기 때문입니다. 절대로 기존 모듈에 덮어쓰기 하거나 업데이트하지 마세요.
- 기존의 데이터도 호환되지 않을 겁니다. 만약 데이터 승계가 필요하다면 따로 백업하신 후에 DB 테이블과 컬럼에 맞게 수동으로 옮겨주셔야 합니다.
- PHP 7.0, 라이믹스 2.0.7, 크롬에서 테스트되었습니다. PHP 8.*에서는 호환성에 문제가 있을 수 있습니다.
- 설치 경로는 루트 > modules > schedule 입니다.
2. 설정
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 파일을 캐시파일로 저장하게 됩니다. 따라서 스케줄 테이블 페이지 첫 로드시에는 속도가 다소 느릴 수 있습니다(0.8~0.9초 정도). 그렇지만 캐시파일 생성 이후에는 스케줄 테이블 페이지 로드시 0.04~0.06 정도로 단축됩니다.
- 또한 관리자가 공공데이터에서 제공하는 특일 외의 여타 특일을 직접 입력할 수도 있습니다. 행별로 제목, mmdd 형식으로 입력해서 활용할 수 있습니다.
3) 모듈 추가/정보 : 레이아웃 | 스킨
- 레이아웃, 스킨, 상단내용, 하단내용 등을 입력할 수 있습니다. 게시판 방식과 동일합니다.
- 단, 모바일 레이아웃과 스킨은 설정 > 시스템 설정 > 고급 설정에서 '모바일 뷰 사용'을 '아니오'로 했다면 해당 폼을 로드하지 않습니다.
4) 모듈 추가/정보 : 고급 설정
- 스팸 방지 기능은 스팸필터 모듈의 캡챠 설정과 연동됩니다.
- 상태 지정은 스케줄 입력 화면에서 작성자가 선택할 수 있는 스케줄 콘텐츠 상태 선택 사항을 의미합니다.
- 대기 상태의 스케줄을 어떻게 표시할 것인지 설정할 수 있습니다. 그냥 보이게 하거나, 가리거나, 감출 수 있습니다.
- 비밀 스케줄러를 사용하면 작성자는 본인이 입력한 스케줄만 확인할 수 있습니다. 상담게시판 기능과 유사합니다.
5) 기타 항목
- 분류 관리, 권한 관리, 추가 설정, 스킨 설정 등은 기존 게시판 설정과 유사하므로 따로 설명이 필요 없을 겁니다.
- 다만 추가설정에 목록 설정, 댓글 설정이 있는데 이 부분은 향후 기능 개선을 위해 남겨둔 것으로 현재 2.0 2.1 버전에서는 모듈에 영향을 주지 않습니다.
3. 덧. 향후에 했으면 하는 것들
- API키 미사용시 자체 함수를 이용해서 특일 정보 출력 (2.1버전에서 구현)
- 스케줄을 달력 형태뿐 아니라 일반적인 목록 형태로도 구현
- SEO : 여기 참조
- 반복 일정을 전체 삭제가 아니라 일부 삭제하는 커맨드를 고려
- 간단한 한줄 메모 형태로 댓글 기능 추가를 고려
- 스케줄 검색 기능 또한 구상
- 예약 기능도 추가...

댓글 71
이모지 아이콘이 삽입될 경우 SQL오류가 나옵니다.
다른분은 작동되시는지 궁금하네요
어느 필드에 넣으신 건지 알려주시면 (비록 당장의 저는 힘들지만ㅜ) 언젠가 꼭, 또는 다른 분들이라도 아이디어를 나눠볼 수 있을 겁니다.
utf8_mbencode() 라이믹스 함수를 사용해서 db에 입력하시면 됩니다.
게시글,댓글 등 라이믹스 코어를 통해 db에 입력은 위 함수를 거치게 되어있어서 db에서 이모지 지원을 못하는 상태라도 입력이 가능하도록 라이믹스에서 함수가 사용되고 있죠.
https://github.com/rhymix/rhymix/blob/10ab65e2f4181a28a40f6035469a40b0008b10ca/common/functions.php#L628
앗.. XE 사용자분들은..... XE 사용자분 까지 고려한다면 저 함수 자체를 모듈에 탑재를 해야 하겠네요....
입력할 때 소개해주신 함수를 적용하면 되겠군요!
라이믹스 사용자는 저 함수를 스케줄 모듈에 없어도 이모지 작동이 되나요?
제가 라이믹스 사용자인데 잘 이해한건지 모르겠네요.
코어에서 제공하는 게시판 모듈에서는 적용되어 있습니다.(글,댓글 저장시) 라이믹스라도 이모듈 처럼 서드파티인 경우 적용할 곳에 함수를 사용해야 합니다. 라이믹스라고 개발자가 지정하지 않은 모든 db입력시 저 함수를 적용하지 않습니다.
라이믹스는 저 함수를 스케쥴 모듈에 탑재할 필요는 없습니다. 라이믹스 함수니까요. 단, 위에 설명한대로 함수를 실행할 부분에 코드를 작성해서 함수가 실행되서 반환된 값이 적용되도록 해야합니다.
제목/본문부분에 윈도우10 이모지 💜 이런걸 넣으면 아래와 같이 에러팝업이 뜹니다.
스케치북게시판에서는 이모지사용이 되는데 스케쥴모듈만 그러네요 ㅜ
아무튼. 배포해주신 자료 정말 감사합니다
엇... 웹지기님꼐서 해결방법을 남겨주셨네요. 감사합니다. 저는 라이믹스 유저입니다
특히 유료자료의 경우는 더더욱요ㅜ
네, 애드온이 게시판의 document_srl을 기준으로 에디터를 포착하는데, 스케줄 모듈은 schedule_srl로 고유한 식별번호로 운용되거든요.
적용을 하시려면 아마도 별도의 커스터마이징을 하셔야 할 겁니다 :)
안녕하세요. 윤삼님
모임일정을 등록하고 댓글로 참여의사를 밝히는 용도로
동호회 사이트에서 사용해보려고합니다.
캘린더 내 댓글을 다는 기능은 제공되지 않을까요?
2월 1일인데 당연히 2월 1일에 불이 들어와있는것은 맞는데
3월로 이동해도 4월로 이동해도 1일에 불이들어와있습니다.
일부러 그렇게 의도 한것 일까요?
아래 코드를 오늘만 작동하게 수정이 가능할까요?
<!--@if($month.$_date == date('md') || ($month != date('m') && $date == 1))-->
의도대로라면 스케줄 입력시에 반복 설정을 한 경우에만 월별 반복이 되어야 할 텐데요.
그 사이에 모듈이 업데이트되기도 하고 해서 저도 잘 모르겠어요;;;
아 관리주체가 다시 람보님이군요.
https://dev.aporia.blog/schedule
여기에서 2월 1일이 오늘이라 배경색이 들어가있는데
다음달인 3월 4월 5월로 이동해도 1일에 계속 배경색이 들어가있어서 의도하신건지 궁금해서요.
여기에도 댓글 쓰기가 없는걸 보니 애초에 댓글은 없나봅니다! 확인감사합니다!
<!--@if($month.$_date == date('md'))-->
로 하면 되지 않을까요?
감사합니다.
- 다만 추가설정에 댓글 설정이 있는데 이 부분은 향후 기능 개선을 위해 남겨둔 것으로 현재 2.2 버전에서는 모듈에 영향을 주지 않습니다.
라고 적혀있었네요. 댓글 지원이 안되는것이 맞나보네요.
항상 감사합니다!