반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리

Kurogo Tutorial 17 - Calendar Module -

2012. 6. 1. 23:47 | Posted by 솔웅


반응형

Calendar Module

Calendar 모듈은 날짜와 관련된 정보를 모바일에 맞게 제공합니다. 날짜별 카테고리별 그리고 리스트별로 일정들을 볼 수 있고 그 일정의 세부 일정도 보게 할 수 있습니다. 쿠로고에 자체 내장돼 있는 Calendar 모듈은 iCalendar(ICS) 포맷에 따라 정보를 parsing 하고 보여 줍니다.


Configuring the Calendar Feed


Calendar 모듈을 사용하시려면 먼저 여러분의 데이터와의 connection을 셋업해야 합니다. 반드시 세팅해야 할 2개의 값이 있고 몇개의 옵션값이 더 있습니다.  Administration Module 을 사용하거나  SITE_DIR/config/calendar/feeds.ini 파일을 직접 edit 해서 세팅할 수 있습니다.


Calendar 모듈은 여러 종류의 칼렌더를 제공합니다. 각각의 칼렌더는 configuration 파일의 각각의 섹션에 의해 지정 됩니다. 섹션의 이름은 type이 되고 어떤 칼렌더를 사용할 것인지는 URL들을 이용해서 정해줍니다. type 파라미터가 url을 지정돼 있지 않으면 첫번째 calendar 가 사용될 겁니다.

  • TITLE 값은 calendar feed의 이름에 사용되는 label 입니다. 이 값은 해당 이벤트가 보여질 때 상단의 제목으로 사용될 겁니다.
  • BASE_URL은 ICS feed 의 url로 세팅 됩니다. static file일 수도 있고 web service 일 수도 있습니다.

Optional values

  • RETRIEVER_CLASSData Retriever 에 대한 다른 클래스 이름을 세팅할 수 있도록 해 줍니다. 만약 여러분의 service가 dinamic URL을 사용한다면 custom retriever를 사용하셔야 합니다.
  • PARSER_CLASS (default ICSDataParser) DataParser 의 서브클래스로 세팅해 줍니다. iCalendar(ICS) 포맷이 아닌 포맷으로 데이터를 return 할 때 해당 포맷에 맞게 이 값을 바꿔주셔야 합니다.
  • EVENT_CLASS (default ICalEvent)  검색시 return 된 이벤트 객체들에 대해 다른 클래스 이름으로 세팅할 수 있도록 해 줍니다. feed의 custom field를 처리할 수 있도록 custom behavior를 지정할 수 있도록 해 줍니다.



Configuring the Detail Fields


feed setting이 다 끝났으면 세부정보를 보여주는 화면이 어떻게 display 될지 그리고 어떤 값들을 사용할지를 configure 하셔야 합니다. 각각의 field는 section에서 configure 됩니다. 그 section 이름은 event field와 매핑됩니다. 이 section의 순서는 detail view의 순서가 됩니다. 각각의 섹션안에는 어떻게 이 field가 display 될지를 정해주는 여러 값들이 있습니다. 모두 optional 입니다.

  • label - field에 대한 text label
  • type - value를 포맷하거나 링크를 생성하기 위한 옵션 값. 아래의 값들이 올 수 있습니다.

    • datetime - date/time 값으로 format
    • email - 이메일 주소같은 값에 mailto 링크를 생성함
    • phone - 전화번호 같은 값에 telephone link를 생성함
    • url - url 링크를 생성함
  • class - field에 CSS 클래스를 추가. space를 두고 여러 클래스들을 열거해 사용할 수 있음
  • module - 다른 모듈에 링크를 걸음. 그리고 결과값을 format 하기 위해 그 모듈의 linkForValue 모듈을 사용함. 좀 더 자세한 사항은  Module Interaction를 보세요.

Configuring the Initial Screen

index page는 여러분의 configure 한 calendar들의 리스트를 보여주도록 configure 될 수 있습니다. SITE_DIR/config/calendar/page-index.ini 를 수정해서 이 리스트의 content들을 update 할 수 있습니다. 각각의 entry는 section 입니다. 각각의 section은  listItem 탬플릿에 의해 사용되는 값에 대한 매핑 값들을 가지고 있습니다.

  • title - 사용자에게 보여질 entry 이름
  • subtitle - title 밑에 보여 줄 subtitle
  • url - 목적지 링크. 외부 url에 링크 걸 수도 있고 모듈 안의 한 페이지에 링크를 걸 수도 있슴. 칼렌더 view page들은 어떤 calendar가 보여질지를 지정하기 위해 type 파라미터를 전달해줘야 합니다.

    • day - 해당 일자의 이벤트를 보여 줌
    • year - 12달 동안의 모든 이벤트를 보여 줌. month 파라미터를 전달해서 시작하는 month를 지정할 수 있슴
    • list - 현재일 바로 다음의 이벤트들을 보여 줌. 디폴트 limit은 20 events 임
    • categories - 카테고리의 리스트를 보여 줌. 현재로서는 이 카테고리 리스트를 get 하기 위해서는 특별한 support가 요구됩니다.
  • class - item의 CSS class. 예) phone, email

Configuring User Calendars and Resources

유저 칼렌더와 resources (rooms/equipment 등) 을 보기 위한 기능이 있습니다. 지금까지 support 되는 칼렌더 시스템은 Business 나 Education을 위한 Google Apps 만이 지원 됩니다.


User Calendars 가능하도록 하려면:

  • Setup the authority for your Google Apps Domain.
  • Ensure that you have entered the required OAuth consumer key and secret
  • Ensure that the “http://www.google.com/calendar/feeds” scope is available in your authority.
  • Edit config/calendar/module.ini and add a user_calendars section.
  • Set RETRIEVER_CLASS to GoogleAppsCalendarListRetriever
  • Set AUTHORITY to the section name of your Google Apps Authority. If this value is not set it will use the first defined GoogleAppsAuthority class


아래는 config/calendar/module.ini file 의 예제 입니다.

[user_calendars]
RETRIEVER_CLASS="GoogleAppsCalendarListRetriever"
AUTHORITY="googleapps"

Resource들을 사용하시려면:

  • Setup the authority for your Google Apps Domain.
  • Ensure that you have entered the required OAuth consumer key and secret
  • Ensure that the “https://apps-apis.google.com/a/feeds/calendar/resource/” scope is available in your authority.
  • Edit config/calendar/module.ini and add a resources section.
  • Set RETRIEVER_CLASS to GoogleAppsCalendarListRetriever
  • Set AUTHORITY to the section name of your Google Apps Authority

아래는 config/calendar/module.ini file 예제입니다.

[resources]
RETRIEVER_CLASS="GoogleAppsCalendarListRetriever"
AUTHORITY="googleapps"



반응형