람보님의 스케줄 모듈을 개조해서 만들었습니다.
- 이제 나름 안정화 버전이라 판단되어 공식 배포합니다.
- 관련 히스토리는 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 버전에서는 모듈에 영향을 주지 않습니다.
람보님 안녕하세요. 스케줄 모듈은 댓글 기능은 지원하지 않을까요?
동호회 일정에서 사용하는데 참석 유무를 댓글로 확인하려고 하는데 설정 권한에는 댓글이 있지만 실제로 댓글 작성하는 창이나오지 않네요.
--------------------------------------------
- 다만 추가설정에 댓글 설정이 있는데 이 부분은 향후 기능 개선을 위해 남겨둔 것으로 현재 2.2 버전에서는 모듈에 영향을 주지 않습니다.
위 내용을 확인했습니다.