本文涵盖的是已废弃的 Google Calendar API v2。关于当前 Google Calendar API v3 的信息,请参考此处。
在开始同步之前,请确保已启用 php_curl.dll 扩展。
如果未启用,请在您的 Web 服务器所用的 php.ini 文件中,将以下行的分号去掉以激活该扩展:
;extension=php_curl.dll
确认扩展已启用后,即可继续进行设置。
要将 Scheduler 与 Google 日历同步,请按以下步骤操作:
服务端操作:
<?php
$email = "";
$pass = "";
$cal = "";
include('google_proxy.php');
$calendar = new GoogleCalendarProxy($email, $pass, $cal);
//$calendar->map("location", "details");
$calendar->connect();
?>
请仔细核对变量值。例如,如果您的日历名称为 test@googlemail.com,但填写为 test@gmail.com,会导致出错。
客户端操作:
scheduler.load("../gCal_proxy/server/01_proxy.php");
初始化 dataProcessor 以实现双向同步。
还需引入一个脚本文件。
<script src="../gCal_proxy/sample/codebase/dhtmlxdataprocessor.js"></script>
var dp = scheduler.createDataProcessor("../gCal_proxy/server/01_proxy.php");
dp.init(scheduler);//'scheduler' 是 scheduler 实例的名称。
同步设置完成。您可以在 [rootFolder] gCal_proxy sample 下的 'sample.html' 文件中找到可直接使用的示例。
如需将事件从 Google 日历导出到数据库,请按以下说明操作:
'export()' 函数会返回从 Google 日历导出的记录数。
如需将事件从数据库导入到 Google 日历,请按以下说明操作:
'import()' 函数会返回导入到 Google 日历的记录数。
Google 日历与 Scheduler 使用的字段集不同。为确保事件信息准确同步(无论导入还是导出),需要在两个日历之间进行字段映射。
默认情况下,Google 日历与 Scheduler 之间有如下字段映射:
Google Calendar -> Scheduler
您还可以包含更多 Google 日历字段:
字段 | 描述 |
canEdit | 指示当前登录用户是否可以编辑该事件。可能的值:'0' 或 '1' |
created | 事件在 Google 日历中的创建日期 |
details | 事件详情 |
updated | 事件在 Google 日历中的最后更新时间 |
location | 事件地点 |
status | 事件当前状态:cancelled(已取消)、confirmed(已确认)、tentative(暂定) |
如需包含附加信息,请按以下步骤操作:
服务端操作:
$calendar->map("location", "place");
place - 对应的 Scheduler 字段名。可自定义。
保存并关闭文件。
客户端操作:
在 lightbox 区域:
scheduler.config.lightbox.sections=[
...
{name:"placeField", height:50, map_to:"place", type:"textarea"}
];
map_to 的值需与服务端设置的字段名一致(如上例中的 "place")。
scheduler.locale.labels.section_placeField = 'Place';
将 "placeField" 替换为您自定义的区域名(下划线后部分)。