람보님의 스케줄 모듈을 개조해서 만들었습니다.
- 이제 나름 안정화 버전이라 판단되어 공식 배포합니다.
- 관련 히스토리는 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 버전에서는 모듈에 영향을 주지 않습니다.