팁/튜토리얼

스케줄 모듈 2.1

2021.02.15 13:37
11,902
9

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 : 여기 참조
- 반복 일정을 전체 삭제가 아니라 일부 삭제하는 커맨드를 고려
- 간단한 한줄 메모 형태로 댓글 기능 추가를 고려
- 스케줄 검색 기능 또한 구상
- 예약 기능도 추가...

 

 

윤삼 Lv. 19
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.

댓글 71

  • 이모지 아이콘이 삽입될 경우 SQL오류가 나옵니다.

    다른분은 작동되시는지 궁금하네요

  • @눈팅용
    제목 부분에서 그런가요?
    어느 필드에 넣으신 건지 알려주시면 (비록 당장의 저는 힘들지만ㅜ) 언젠가 꼭, 또는 다른 분들이라도 아이디어를 나눠볼 수 있을 겁니다.
  • @윤삼

    utf8_mbencode() 라이믹스 함수를 사용해서 db에 입력하시면 됩니다.
    게시글,댓글 등 라이믹스 코어를 통해 db에 입력은 위 함수를 거치게 되어있어서 db에서 이모지 지원을 못하는 상태라도 입력이 가능하도록 라이믹스에서 함수가 사용되고 있죠.

    https://github.com/rhymix/rhymix/blob/10ab65e2f4181a28a40f6035469a40b0008b10ca/common/functions.php#L628

     

    앗.. XE 사용자분들은..... XE 사용자분 까지 고려한다면 저 함수 자체를 모듈에 탑재를 해야 하겠네요....   

  • @웹지기
    라이믹스 전용 모듈이니ㅎㅎ
    입력할 때 소개해주신 함수를 적용하면 되겠군요!
  • @웹지기

    라이믹스 사용자는 저 함수를 스케줄 모듈에 없어도 이모지 작동이 되나요?
    제가 라이믹스 사용자인데 잘 이해한건지 모르겠네요.

  • @눈팅용

    코어에서 제공하는 게시판 모듈에서는 적용되어 있습니다.(글,댓글 저장시) 라이믹스라도 이모듈 처럼 서드파티인 경우 적용할 곳에 함수를 사용해야 합니다. 라이믹스라고 개발자가 지정하지 않은 모든 db입력시 저 함수를 적용하지 않습니다.

     

    라이믹스는 저 함수를 스케쥴 모듈에 탑재할 필요는 없습니다. 라이믹스 함수니까요. 단, 위에 설명한대로 함수를 실행할 부분에 코드를 작성해서 함수가 실행되서 반환된 값이 적용되도록 해야합니다.

  • @윤삼

    제목/본문부분에 윈도우10 이모지 💜 이런걸 넣으면 아래와 같이 에러팝업이 뜹니다.
    스케치북게시판에서는 이모지사용이 되는데 스케쥴모듈만 그러네요 ㅜ
    아무튼. 배포해주신 자료 정말 감사합니다

     

    엇... 웹지기님꼐서 해결방법을 남겨주셨네요. 감사합니다. 저는 라이믹스 유저입니다
     

  • 짱이네요..!
  • seopro 모듈 사용시 게시글제목 타이틀값이 안들어가는 문제가 있군요..ㅜㅜ
  • @눈팅용
    다른 서드파티 자료와의 호환을 맞추기는 어렵습니다.
    특히 유료자료의 경우는 더더욱요ㅜ
  • 윤삼님이 만드신 임베드애드온이 스케쥴모듈 내장 게시판에서는 작동하지 않는것 같습니다~
  • @눈팅용

    네, 애드온이 게시판의 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'))-->
    로 하면 되지 않을까요?
  • @윤삼
    그렇게하니 오늘만 불이들어오네요!
    감사합니다.
  • @윤삼
    아아 그리고 5번에

    - 다만 추가설정에 댓글 설정이 있는데 이 부분은 향후 기능 개선을 위해 남겨둔 것으로 현재 2.2 버전에서는 모듈에 영향을 주지 않습니다.

    라고 적혀있었네요. 댓글 지원이 안되는것이 맞나보네요.
    항상 감사합니다!