2010-03-12 6 views
2

나는 기존 달력 솔루션에 하루보기 옵션을 추가하려고합니다. 자신의 캘린더를 구현하는 많은 사람들과 마찬가지로 Google 캘린더를 모델링하려고합니다. 그들은 우수한 달력 솔루션을 가지고 있으며 하루보기는 많은 유연성을 제공합니다. 대부분의 경우, 구현은 잘되고 있습니다. 그러나 충돌하는 이벤트에 관해서는 문제가 있습니다.PHP로 달력보기

본질적으로 이벤트가 나란히 배치되어 동일한 공간을 공유하기를 바랍니다. 동시에 시작하는 이벤트는 가장 긴 이벤트를 먼저 가져야합니다. 11시 반

B - 10시 반 :

A : 내가 함께 일하고 있어요 설정 예제 데이터, 나는 네 개의 이벤트가 13시 30분에서 14시 반 사이

C를 : 10시 반부터 11시까지

D : 10시 45분부터 14시까지

내가 잘, C 및 D를을 처리 할 수있는 문제가 D. A의 제공은 C의 왼쪽한다 그것은 D의 왼쪽에 있어야한다. 각각 너비의 3 분의 1을 차지합니다 (고정 너비이므로 간단한 수학으로 계산할 수 있습니다). 문제는 B가 D의 왼쪽에있는 A와 C에 있어야한다는 것입니다. 이상적으로 B는 A와 C (2/3 너비)와 동일한 공간을 차지하지만, 1/3 너비.

이벤트 내 배열은 다음과 유사

:

$events = array(
    '1030' => array(
    'uniqueID1' => array(
     'start_time' => '1030', 
     'end_time' => '1130', 
    ), 
    'uniqueID2' => array(
     'start_time' => '1030', 
     'end_time' => '1100', 
    ), 
), 
    '1045' => array(
    'uniqueID3' => array(
     'start_time' => '1045', 
     'end_time' => '1400', 
    ), 
), 
    '1330' => array(
    'uniqueID3' => array(
     'start_time' => '1330', 
     'end_time' => '1430', 
    ), 
), 
); 

내 계획은 그와 충돌 얼마나 많은 이벤트 등 각 이벤트에 어떤 인덱스를 추가하는 것은 (내가 폭을 계산할 수 있습니다) 어느 위치 그 시리즈에서 (그래서 나는 왼쪽 값을 계산할 수있다). 그러나 그 도움이되지 않습니다.

나는 몇 가지 기본 기하학 및 행렬을 사용하는 알고리즘이 필요할 수도 있지만 어디서부터 시작해야할지 모르겠다.

도움을 주시면 대단히 감사하겠습니다.

답변

2

이것은 사용자 정의 캘린더 개발에 도움이되지 않지만 인터페이스와 같은 Google 캘린더를 구현할 때 나는 jQuery fullcalendar plugin을 적극 권장합니다.

캘린더 데이터 피드를 가져 오는 중입니다. 현재 Outlook Exchange 공개 캘린더에 연결 한 다음 월/주/일 뷰로 표시합니다. 하루보기는 원래 요청을 구현하는 좋은 예입니다.

+0

이것은 우수합니다! 월별 및 주간 조회수가 구현되었을 때만 주변에 있었으면 좋겠습니다. 이 플러그인을 사용하여 문제가있는 위치를 포함하여 모든 렌더링을 처리하고 이벤트를 반환하는 내 사이트의 파일 (JSON은 물론 인코딩 됨)을 가리킬 수 있습니다. 감사! – JamesArmes

+0

문제 없습니다, 그것이 당신을 위해 잘 작동되기를 바랍니다. 구현에 도움이 필요하면 메시지를 보내주십시오. :-) –