表单发布中的Outlook日历事件

时间:2012-02-22 作者:daniel

有人在我的网站上填写表单(使用重力表单)后,是否有任何已知的集成/小部件允许我在提交电子邮件/文本中添加“将此事件添加到Outlook日历”链接?

谢谢

1 个回复
SO网友:krembo99

我不知道有什么特殊的插件可以做到这一点,有很多插件都有这个功能,但只有在作为一个整体事件系统使用时(据我所知,并不是特定于重力形式)。但是,幸运的是,使用PHP很容易:只需构造一个简单的字符串。

header("Content-Type: text/Calendar");
header("Content-Disposition: inline; filename=event.ics");
$ics_string = \'BEGIN:VCALENDAR\\n\';
$ics_string .= \'VERSION:2.0\\n\';
$ics_string .= \'PRODID:-//whatever//NONSGML //EN\\n\';
$ics_string .= \'METHOD:REQUEST\\n\'; // requied only 4  Outlook
$ics_string .= \'BEGIN:VEVENT\\n\';
$ics_string .= \'UID:\'.date(\'Ymd\').\'T\'.date(\'His\').\'-\'.md5(uniqid(mt_rand(), true)).\'-mystrinng\'; // requied only 4  Outlook - you can use only simple rand(0,999999)
$ics_string .= \'DTSTAMP:".date(\'Ymd\').\'T\'.date(\'His\')."\\n\'; //requied only 4  Outlook
$ics_string .= \'DTSTART:20120416T000000\\n\'; // april 16 2012, T = HHMMSS
$ics_string .= \'SUMMARY:your summery\\n\';
$ics_string .= \'DESCRIPTION: your description\\n\';
$ics_string .= \'END:VEVENT\\n\';
$ics_string .= \'END:VCALENDAR\\n\';
echo $ics_string;
当然,您将使用所需的任何内容填充字段,例如:

$summery = get_the_title();
$desc = get_the_excerpt();
在字符串中:

 $ics_string .= \'SUMMARY:\' . $summery . \'\\n\';

 $ics_string .= \'DESCRIPTION:\' . $desc . \'\\n\';
您甚至可以使用GET或POST

echo \'DTSTART:$_GET[date]\\n\';
echo \'SUMMARY:Go to a movie with \' . $_GET[girlfriend] . \'\\n\';
echo \'DESCRIPTION: be careful not to be caught by \' . $_GET[other_girlfriend] . \' or \' .$_GET[wife] .\'\\n\';
请参见此处的规格:http://www.kanzaki.com/docs/ical/

在这里http://www.ietf.org/rfc/rfc2445.txt

或者在这里http://en.wikipedia.org/wiki/ICalendar

结束

相关推荐