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

 

 

윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • ?
    저도 넘어가고 싶군요ㅎㅎ
  • ? profile
    아직 베타고, 또 언제 추가 작업을 할 수 있을지... (먼 산)
  • profile

    윤삼님 안녕하세요,

    시간과 품이 많이 드셨을 텐데 수고 많으셨습니다.
    달력 만드는게 예상외로 시간이 많이 들지만 재미는 있어요.
    열심히 응원합니다.

    감사합니다.
    ksc

  • profile profile
    그동안 이 작업을 어떻게 하셨을지... 존경합니다~
  • profile profile

    윤삼님 안녕하세요,

    살면서 세상에 많은 은헤를 입었으니...
    나도 1000명은 행복하게 해주자 하는 마음입니다. 웃기지요?

    계획을 보니 자체함수 특일정보 부분이 있군요.
    예전에 찾아봤을 때는 인터넷에서 구할 수 있는 음력/절기 함수가

    유효기간 2037~8년 정도였던 것으로 기억되는데...  요즘은 어떤지 잘 모르겠습니다.

    지금 플래너용으로 2050년도 까지 계산하는 함수를 준비중이니
    혹시라도 필요하시면 알려주시기 바랍니다.

    감사합니다.
    ksc

  • profile profile
    안 그래도 둘러보니 어떤 php 클래스는 날짜가 틀리다는 이야기도 있고 그래서 번민이 좀 있습니다.
    고민하다가 에버그린님 생각나면 연락드리겠습니다요 ^^/
  • profile
    드디어 배포 하셨군요.
    바로 적용해보겠습니다.
    감사합니다.
  • profile profile

    API키 취득하는 게 좀 귀찮을 수 있는데 그 허들만 넘으신다면...

    아, 생각해보니 기존 모듈 삭제가 더 귀찮을 수 있겠네요ㅜ

  • profile profile

    해외 거주하고 있는 사람은 API 키 취득이 불가하네요.
    회원가입을 하고 싶어도 전화 인증을 받을 수 없네요. ㅠㅠ
    많이 기다렸는데

     

    - API키 취득 및 활용신청은 아래의 링크에서 하세요.
    - 특일(기념일,24절기,잡절) : https://www.data.go.kr/data/15012690/openapi.do
    - 음양력 변환 : https://www.data.go.kr/data/15012679/openapi.do

     

    API 키 취득 문제만 아니면 Perfect 합니다.

    감사합니다.

  • profile profile
    아이고, 그 생각은 미처 못했네요.
    모듈 자체적으로 함수 지원하는 걸 빨리 알아봐야겠어요.
  • profile profile
    역시 윤삼님 파이팅!
    감사합니다.
  • profile profile
    방금 음력이랑 24절기(복날 포함) 자체 로딩을 마쳤구요ㅎ
    조만간 시간이 나게 되면 휴일과 잡절을 뜯어봐야겠습니다.
  • profile profile

    수정본 올렸습니다. 이제 해외에서도 스케줄 모듈을 사용해보아요ㅋㅋ

    업데이트 파일로 이동 

  • profile profile
    감사합니다. 윤삼님 짱!
  • ?
    object 문제가 있군요.

    schedule.item.php 파일에

    class scheduleItem extends Object

    3번째 줄을

    class scheduleItem extends BaseObject

    이렇게 바꿔야 돌아가네요
  • ? profile
    오 감사합니다.
    php 7.0에서 작업하다보니 그 부분을 놓쳤었네요ㅜ
  • ? profile

    수정본 올렸습니다. 짚어주신 부분 수정과 더불어, API키 없이 사용 가능하게 함수도 추가했어요ㅎㅎ

    업데이트 파일로 이동 

  • profile ?
    감사합니다ㅎㅎ
  • profile
    응원합니다!
  • profile profile
    감사합니다! :D
  • ?
    api를 받아야 사용이 가능한 모듈인가요?
  • ? profile
    아뇨. 성능에 미세한 문제가 있을 수 있지만 2.1 버전부터는 api 없이도 사용 가능하게 했습니다.
  • profile ?
    감사합니다 ㅎㅎ 기존 스케줄 모듈에 덮어쓰기 하면 되나요?
  • profile ?
    덮어쓰기하니.. 서버오류가 뜨는군요... ㅠ
  • ? ?
    위에 절대로 덮어쓰기 하지말라고 설명에 씌여있었는데....ㅠㅠㅠ
  • ? profile
    안내문 숙지 부탁드립니다;;;
  • profile ?
    넵.. 죄송합니다 ㅠㅠ;;
    이제 봤어요 ㅠ
  • profile
    다음에 이런 자료들을 포크하실때는 스키마는 기존유저가 호환될 수 있도록 지원해주시면 더 좋을 것 같습니다.

    어떤형태로 만들어도 되지만 기존 자료와 만들어진 자료의 호환성이 안맞게되면 그 부담감은 고스란히 유저들에게 가기 때문이예요.

    물론 스케줄 모듈자체가 기존에 너무 간단한 기능만 지원했기 때문에 유저가 없었다는 측면에서 업그레이드가 괜찮았지만 잘 이용해오던 유저입장에서는 그게 힘들어지거든요 ㅎㅎ :)

    그런 부분에서 호환성까지 잘 맞았더라면 좋지 않을까 생각이 드네요!! ㅎㅎ

    고마워요! 다 죽어가던 자료 살려주셔서ㅎㅎ
  • profile profile

    조금만 손보자는 게 일이 커져버렸어요ㅠ
    어느 순간부터 흑염룡의 기운이 ... 정신을 차려보니 돌이킬 수 없게 됐더라구요ㅠㅠ
    코노리님이 socialXE 제작할 때 이런 기분이셨으려나 하는 생각도 들더라구요ㅋㅋㅋ

    작업 중도에 모듈명과 스키마를 아예 새롭게 할 걸 그랬다는 고민에 빠지기도 하고,
    심지어는 schedule_srl을 아예 버리고 document 모듈과 연동하는 게 좋았겠다는 생각도 들었었습니다.
    아직도 뭐가 올바른 길이었을지 감이 안 잡히네요.

    아무튼 업데이트 한번 더하고 안정화되면 포인트 콘텐츠에도 올리겠습니다.
    저야말로 감사합니다.
    뛰어놀 수 있게 판을 만들어주셔서요!!

  • profile profile
    document와 연동하면 짧은 주소를 쓸 수 있다는 장점이 있지만 이미 라이믹스 2.0에서 사용하는 라우터기능이 적용된 이상 그렇게까지 필요 없고 해당 부분에 SEO부분만 잘 잡아서 metar정보만 띄어주신다면 문제가 없을 것 같네요 ㅎㅎ

    게시판모듈의 스케줄 스킨과 일반 스케줄모듈의 차이가 바로 거기에 있어서 SEO가 안좋다는 단점이 있거든요. (각 게시글이 게시글로 인식하지 않으므로 각각 스케줄에 대한 링크를 생성하거나 SEO링크가 따로 없죠)
  • profile profile

    이렇게 하면 되는 거죠?

    // add the schedule title to the browser
    Context::setCanonicalURL(getFullUrl('', 'mid', $this->module_info->mid, 'schedule_srl', $oSchedule->schedule_srl));
    $seo_title = config('seo.document_title') ? config('seo.document_title') : '$SITE_TITLE - $DOCUMENT_TITLE';
    Context::setBrowserTitle($seo_title, array(
        'site_title' => Context::getSiteTitle(),
        'site_subtitle' => Context::getSiteSubtitle(),
        'subpage_title' => $this->module_info->browser_title,
        'document_title' => $oSchedule->get('title'),
    ));

     

    게시판 소스를 가져와서 스케줄 모듈 콘텐트뷰 액션에 넣어놨는데, 서치 엔진이 어떻게 봐주는지는 아직 잘 모르겠지만 일단 이렇게 해두니 브라우저 타이틀에는 잘 들어가고 있는 것 같습니다.

    리스트 보기 같은 다른 액트에도 넣어줘야 할지는 잘 모르겠어요.

  • profile profile
    사이트 타이틀말고.. 각 게시글 마다 metar 데이터 붙는 항목들 있잖아요.

    왜.. 카카오톡에 링크 뿌리면 아래 붙는 임베드형식으로 가는것들요..

    그런것들이 안되죠.

    거기에 붙는 데이터가 없으니.
  • profile profile
    새로운 과제가 생겼네요.
    진짜 메타 태그들에서 본문 내용 추출이라든가 전혀 안 되고 있었군요.
    이것도 연구해서 옵션으로 넣어봐야겠습니다ㅋ
  • profile
    베리굿
  • profile profile
    마이 플레저~
  • ?

    Screenshot 2021-02-23 at 16.46.04.jpg

    캘린더형식에서는 일정이 보입니다.

    Screenshot 2021-02-23 at 16.46.24.jpg

    목록을 클릭하면 이렇게 아무 일정이 없네요.

     

    라이믹스 2.0.7 php7.0 호스팅환경입니다.

  • ? profile

    저 역시 같은 환경인데 일단 잘 나오고 있습니다.
    혹시 캐시파일 재생성, 권한 설정 체크 등도 해보셨을까요?

     

    0.png

  • ?
    저번에 설치한거라 요번에 모듈 업데이트를 하지 않았네요,
    대시보드에서 모듈 업데이트 해주고 나니 잘 나오네요.
    감사합니다.^.^
  • ? profile
    아하, 2.2로 업데이트하면서 썸네일 때문에 uploaded_count 컬럼을 추가했었거든요.
    확인 감사드립니다~
  • profile

    api는 일반 인증키 (Enecoding) / 일반 인증키 (Decoding) / End Point
    이렇게 3개가 나오던데 어떤걸 입력해야할까요? API 입력하는 공간은 한군데 밖에 없더라구요.

  • profile profile
    두 개 다 되는 걸로 알고 있는데요.
    아마 Enecoding이 좀 더 안전할 겁니다.
  • profile profile

    공휴일도 있고 음력도 있는데 둘중 아무것만 입력하면 될까요? 입력해도 작동은 안되는것 같네요. 저기준으로 Rhymix 2.0.1 버전입니다ㅑ.

  • profile profile
    2020년까지는 또 작동이 되는것 같네요. 2021년 2월부터는 안되는것 같고
  • profile profile

    두 개 다 활용신청을 하셔야 하고, 같은 계정이라면 발급받는 API키는 둘이 같을 겁니다.

    라이믹스 2.0.7에서 제작된 것이어서 가급적 최근 버전에서 테스트해보시길 권합니다.

  • profile
    안녕하세요. 스케쥴 모듈 디자인이 너무 맘에들어서 잘 써보려고 하는데요, 다 문제가 없는데 일정 작성하는 페이지로 넘어가면 레이아웃의 상단메뉴가 출력되지 않고 제목쓰는 칸이 모두 먹어버립니다. 라이믹스 최신버전이구요, 레이아웃은 Equeer 레이아웃 1.4.5버전입니다.
  • profile
    자문자답입니다. 제목 입력부분에 header class 라인을 아얘 삭제했더니 문제는 해결되었습니다. 혹시 이 행위가 다른데에 영향을 미치는지 궁금합니다.
  • profile
    구글캘린더 연동이랑 혹시 위젯도 가능할까요..
  • profile profile
    ㅎㅎㅎㅎ 위젯 제작도 괜찮을 것 같은데, 모듈 자체의 완성도가 그렇게 높지 않은 것 같아요.
    누군가가 후속 작업을 해주시면 좋을 것 같은데...
  • profile

    2021년 까지는 잘나오는데 2022년도 1월~4월 정도가 음력도 0/0으로 뜨고 공휴일등이 뜨지않네요. 어떤 부분을 확인해봐야할까요? 또 5월부터는 잘나오네요

  • profile profile
    해당 문제가 잘 재연되지 않네요.
    캐시파일을 재생성해서 사용해보시는 걸 권해봅니다.
  • profile

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

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

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

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

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

     

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

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

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

     

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

  • profile profile

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

  • profile profile

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

     

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

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

    네, 애드온이 게시판의 document_srl을 기준으로 에디터를 포착하는데, 스케줄 모듈은 schedule_srl로 고유한 식별번호로 운용되거든요.
    적용을 하시려면 아마도 별도의 커스터마이징을 하셔야 할 겁니다 :)

  • profile profile
    아..그런 차이떄문에 작동이 안되는거였군요. 정보 감사합니다
  • profile

    안녕하세요. 윤삼님

    모임일정을 등록하고 댓글로 참여의사를 밝히는 용도로

    동호회 사이트에서 사용해보려고합니다.
    캘린더 내 댓글을 다는 기능은 제공되지 않을까요?

  • profile profile
    글쎄요;;; 현재는 모듈을 람보님이 다시 관리하고 계세요.
  • profile
    추가로 한가지 궁금한 것이 있는데
    2월 1일인데 당연히 2월 1일에 불이 들어와있는것은 맞는데
    3월로 이동해도 4월로 이동해도 1일에 불이들어와있습니다.
    일부러 그렇게 의도 한것 일까요?

    아래 코드를 오늘만 작동하게 수정이 가능할까요?

    <!--@if($month.$_date == date('md') || ($month != date('m') && $date == 1))-->
  • profile profile
    코드를 들여다본지 한참이 돼서 잘 기억이 나지 않습니다ㅜㅜ
    의도대로라면 스케줄 입력시에 반복 설정을 한 경우에만 월별 반복이 되어야 할 텐데요.
    그 사이에 모듈이 업데이트되기도 하고 해서 저도 잘 모르겠어요;;;
  • profile profile

    아 관리주체가 다시 람보님이군요.

    https://dev.aporia.blog/schedule
    여기에서 2월 1일이 오늘이라 배경색이 들어가있는데
    다음달인 3월 4월 5월로 이동해도 1일에 계속 배경색이 들어가있어서 의도하신건지 궁금해서요.

     

    여기에도 댓글 쓰기가 없는걸 보니 애초에 댓글은 없나봅니다! 확인감사합니다!

  • profile profile
    아 그 이야기였군요.
    <!--@if($month.$_date == date('md'))-->
    로 하면 되지 않을까요?
  • profile profile
    그렇게하니 오늘만 불이들어오네요!
    감사합니다.
  • profile profile
    아아 그리고 5번에

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

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