带有重复活动的PHP日历

时间:2011-06-28 11:22:31

标签: php zend-framework calendar

有没有人知道处理存储,检索和删除事件的开源PHP日历类。

我到处寻找,我能找到的是为日历创建HMTL输出但不管理实际日历事件的类。

我无法使用谷歌日历作为我正在处理的项目,不允许我公开日历,也需要离线工作。

我知道这个问题之前已被问过一千次,但我从来没有得到完整的答案。

UPDATE :: 此日历将用于商业应用程序,但遗憾的是,我们目前没有资金购买软件许可证,因此所有第三方脚本都需要在商业应用程序中免费分发

由于

4 个答案:

答案 0 :(得分:5)

在我目前正在进行的项目中,我们遇到了类似的挑战。我们还希望显示不是本身日历项目的事件,而是显示来自行动计划的项目。

我们使用Full Calender,结合提供JSON提要的PHP编程。完整日历还提供了许多事件挂钩,在我们的例子中触发了一个编写数据库的PHP编程的Ajax帖子。

更详细一点:

我们将完整日历称为:

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

完整日历然后访问,例如:

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

(额外参数用于防止缓存)

pl_feed.php生成日历中显示的事件。

顺便说一下:我发现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生成的事件。

答案 1 :(得分:2)

答案 2 :(得分:1)

我建议你让自己的应用只使用像CalDAV这样的协议。然后,您只需让应用程序的用户提供自己的日历存储即可。有些用户可能会选择使用Google日历。某些用户可能拥有现有的Apple iCal服务器。有些用户可能会为此设置自己的服务器。

为了完成(并且为了让新用户轻松上手),您可以包含以下内容: DAViCal(PHP,开源)作为那些还没有日历服务的人的默认解决方案。

有一些PHP库可以让您轻松连接到iCalCreatoriCal Maker

等CalDAV服务器

答案 3 :(得分:0)

您可以使用google gdata api来管理您的活动。它有很好的重复活动支持。

他们还拥有私人活动功能,这使您的活动对公众不可见。它也受到zend框架的支持 - http://framework.zend.com/manual/en/zend.gdata.calendar.html