В этой статье рассматривается Google Calendar API v2, который больше не используется. Для получения информации о текущем Google Calendar API v3, пожалуйста, обратитесь сюда.
Перед началом синхронизации убедитесь, что расширение php_curl.dll включено.
Если оно не включено, активируйте его, удалив точку с запятой в этой строке вашего файла php.ini, который используется вашим веб-сервером:
;extension=php_curl.dll
После подтверждения активности расширения можно переходить к настройке.
Чтобы синхронизировать Scheduler с Google Calendar, выполните следующие шаги:
На стороне сервера:
<?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.
Настройка синхронизации завершена. Готовый пример можно найти в файле 'sample.html', который находится в [rootFolder] gCal_proxy sample.
Чтобы экспортировать события из Google Calendar в вашу базу данных, выполните следующие шаги:
Функция 'export()' возвращает количество экспортированных записей из Google Calendar.
Чтобы импортировать события из вашей базы данных в Google Calendar, выполните следующие шаги:
Функция 'import()' возвращает количество записей, импортированных в Google Calendar.
Google Calendar и Scheduler используют разные наборы полей. Для корректной синхронизации информации о событиях (при импорте или экспорте) необходимо сопоставить соответствующие поля между двумя календарями.
По умолчанию между Google Calendar и Scheduler установлено следующее сопоставление:
Google Calendar -> Scheduler
Вы также можете включить дополнительные поля Google Calendar:
Поле | Описание |
canEdit | указывает, может ли авторизованный пользователь редактировать событие. Возможные значения: '0' или '1' |
created | дата создания события в формате Google Calendar |
details | детали события |
updated | дата последнего обновления события в формате Google Calendar |
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" на имя вашей секции после подчеркивания.