2011-06-28 143 views
8

有誰知道處理存儲,檢索和刪除事件的開源PHP日曆類。帶日曆事件的PHP日曆

我已到處尋找,我可以找到的所有類都將爲日曆創建HMTL輸出,但不管理實際日曆事件。

我不能使用谷歌日曆作爲我正在處理的項目不允許我公開訪問日曆,它也需要脫機工作。

我知道這個問題已被問過千次之前,但我從來沒有遇到過一個完整的答案。

更新:: 這個日曆會在商業應用中使用,但遺憾的是我們沒有資金購買軟件licensces在德當前時間,讓所有的第三方的腳本將需要免費的分發商業應用

感謝

+0

Google日曆可以公開發布 – Alex

+0

對不起,我打算說我不能使用Google日曆,因爲我正在處理的日曆不會公開顯示 –

回答

5

在我目前從事的項目PHP庫,我們也有過類似的挑戰。我們還想顯示不是持續日曆項目的事件,而是顯示來自行動計劃的項目。

我們使用Full Calander,結合提供JSON訂閱源的PHP編程。完整的日曆還提供了許多事件掛鉤,在我們的例子中觸發了一個Ajax帖子到編程數據庫的PHP編程。

一點更詳細:

我們稱全歷:

$('#calendar').fullCalendar({ 
    events: '/pl_feed.php' 
}); 

完整的日曆,然後訪問,例如:

/pl_feed.php?start=1262332800&end=1265011200&_=1263178646 

(額外的參數是用來防止緩存)

pl_feed.php生成顯示在Calend中的事件AR。順便說一下:我發現David Powers Date Class(閱讀他的書:很好)與我合作愉快。您可以在出版商的網站下載:http://www.apress.com/9781430210115

當它這樣做產生的請求事件,pl_feed.php使他們在一個多維數組和呼應與json_encode數組:

foreach ($array_events as $array_event) { 

     $array_feed_item['id'] = $array_event['id']; 
     $array_feed_item['title'] = //Whatever you like to be the title; 
     $array_feed_item['start'] = $array_event['start']; //Y-m-d H:i:s format 
     $array_feed_item['end'] = $array_event['end']; //Y-m-d H:i:s format 
     $array_feed_item['allDay'] = 0; 
     $array_feed_item['color'] = 'blue'; //Whatever you like, of course 
     $array_feed_item['borderColor'] = 'blue'; 
     //You can also a CSS class: 
     $array_feed_item['className'] = 'pl_act_rood'; 

     //Add this event to the full list of events: 
     $array_feed_items[] = $array_feed_item; 
    } 

    echo json_encode($array_feed_items); 

全部日曆會顯示/pl_feed.php生成的事件。

希望這會有所幫助。

+0

我也在使用FullCalendar,但無法正常工作。你有這個腳本嗎? –

+0

我使用PHP創建的JSON饋送生成周期性事件,而不是FullCalandar本身。讓這些事件在外觀上稍有差異很容易,因此用戶很清楚這是一個反覆發生的事件。 – Rick

+0

有沒有可能分享您創建的腳本? –

0

您可以使用谷歌gdata api來管理您的事件。它有很好的經常性事件支持。

他們也有私人活動功能,這讓您的活動不可見公衆。它也支持zend框架 - http://framework.zend.com/manual/en/zend.gdata.calendar.html

+0

感謝您的評論aporat,但不幸的是,Google日曆不是這個項目的一個選項。你知道任何其他開源日曆庫嗎? –

1

我建議你讓你的應用只需要使用協議CalDAV。然後,您可以簡單地讓應用程序的用戶提供自己的日曆存儲。部分用戶可能會選擇使用Google日曆。一些用戶可能有一個現有的Apple iCal服務器。有些用戶可能爲此設置了自己的服務器。

要完成(並使新用戶很容易上手),您可以包含例如DAViCal(PHP,開源)作爲缺乏日曆服務的用戶的默認解決方案。

有跡象表明,讓你輕鬆連接到服務器的CalDAV如iCalCreatoriCal Maker

+0

我活在這種方法的靈活性,但它看起來像DAViCal只適用於PostgreSQL。你知道一個mysql變種嗎? –

+0

@James:DAViCal正在忙於轉向基於PDO的數據庫訪問層,該層允許MySQL,SQLite和其他數據庫後端。也許你可以幫忙? –