0

我正在为客户构建一个简单的调度应用程序。它允许教师为学生创建作业日历。我想为学生提供一次将所有作业添加到他们的日历的能力。假设在 4 周内有 20 个作业。此功能将允许学生下载单个文件,或按照某个提要,一次将所有 20 个作业添加到他们的日历中。

在我看来,这将是一个单独的 iCal 文件,但我不确定 iCal 是否以这种方式工作。或者,每门课程都会有一个可以遵循/course/basket-weaving-101_51/的 RSS 提要。/course/basket-weaving-101_51/cal/

有没有人有这方面的经验,或者可以提供指导?

4

2 回答 2

1

您需要熟悉不同日历客户端(outlook、webmail)对 ical 的处理,然后才能决定如何最好地定位它们。一般来说,他们有两种处理 ical 的模式:“接受邀请”和“订阅互联网日历”。

“接受邀请”的最大优势是您的事件进入用户的日历,并生成提醒等,就好像用户创建了事件一样。缺点是您需要通过电子邮件一次发送一个“事件”邀请,特别是在 Outlook 中,它们可能需要在出现在日历中之前被视为邮件。如果您要发送 20 个或更多作业,这可能会给收件人带来垃圾邮件。

“订阅互联网日历”有点误导,因为 ical 提要不是提要。您将“整个日历”放在网站上,而客户则将网站置于极点。Outlook 和 webmail 客户端通常很乐意显示这些日历,但是将事件“导入”到用户自己的日历中有点笨拙。默认情况下,Gmail 和 webmail 在同一网格上显示信息。Outlook 为每个日历显示一个新网格。

对于订阅方案,修改稍微复杂一些。您可能希望为受影响的学生重新生成整个日历,而在邀请方案中,您只需发送一封包含更改事件的邮件。

即便如此,如果你有一个包含课程、学生和注册的数据库,你可以做一个不错的小应用程序,为每个学生生成一个 ical,用他们的学号命名,然后将它放在日历文件夹中。学生订阅一次http://myuniversity.com/calendars/12345.ical,每个学期他们的所有作业都会自动在他们的网络日历中。

小心订阅链接。如果数以万计的学生订阅(极点)动态生成的日历,您将有很多不必要的处理,很可能是性能问题。您想要生成静态文件,然后让您的网络服务器与客户端协商是否需要重新发送它们。

于 2014-11-17T10:45:27.557 回答
1

是的,一个通过 url 接受参数的提要程序可用于以您希望的任何详细程度提供可订阅的日历提要。我说可订阅,在学生级别...... /student_id_or_name?feed=ics 将为学生提供最方便的解决方案。他们可以订阅一次,然后随着他们的日历应用程序刷新提要,随着时间的推移他们为所有课程注册的所有课程作业会自动出现。

单个分配也可以提供一个“事件”的提要。但这可能应该导入到他们的主日历中,而不是订阅!

注意订阅与导入不同 - 您的帮助说明需要说明这一点,因为这取决于用户如何处理提要。

导入(或添加到日历)是一次性的,不会随新事件/任务而更新。

作为单独的日历订阅我觉得更可取,因为大多数日历应用程序都会让您根据需要检查和取消选中日历。我订阅了 mykids 的时间表(以及公共假期等),但这是一个非常繁忙的视图,所以我通常只是取消勾选它们以获得更清晰的视图。

于 2014-11-15T07:19:27.157 回答