2014-12-02 3 views
3

Я разрабатываю сайт для аренды квартир. Я использую тему Wordpress, которую я настраивал, вместо «комнат» он использует «квартиры» и плагин для бронирования. Каждая из этих квартир также рекламируется в Airbnb и FlipKey.Синхронизация нескольких iCalendars (Airbnb, Flipkey, Календарь Google и т. Д.)

Что мне нужно - это возможность синхронизировать все календари, если, например, кто-то заказывает квартиру в Airbnb, эта квартира автоматически помечена как «не доступная» как на веб-сайте, так и на Flipkey. Это делается с использованием фидов, которые предоставляются обеими компаниями. Существует выходной канал и входной канал для обоих, поэтому, если я вставляю вывод на входе другого и наоборот, вещь работает отлично.

Теперь мне нужен способ централизации календаря в одной системе и использование этой системы для подачи входов Airbnb, Flipkey и моего собственного плагина бронирования wordpress. Я пробовал это с:

PHP iCalendar (он может, как календарь Google, получать каналы, но это не так, насколько я знаю, - обеспечивает единый вывод). Службы, как http://www.accommodationcalendar.com, получают только вход, но не выводят.

Возможно, http://www.davical.org/ может быть хорошим вариантом, но поскольку я использую общий хостинг, я не могу его установить (насколько я знаю) - причина в том, что на общем хостинге есть только MySql, а не PostgreSQL.

Есть ли у кого-нибудь идеи, как это решить?

СПАСИБО!

ответ

1

После некоторых исследований, я нашел это решение:

1) Используйте эту библиотеку: http://kigkonsult.se/iCalcreator/

2) Получить каналы ICS и объединить их, а затем создать новый ICS (создать как «импорт» и «экспортировать» папки и предоставить им права на запись).

require_once('../classes/iCalcreator/iCalcreator.class.php'); 

$config2 = array("unique_id" => "kigkonsult2.se", 
    "directory" => "import", 
); 
$vcalendar2 = new vcalendar($config2); 

$vcalendar2->setConfig("url" , "https://someweb/cal.ics"); 

$vcalendar2->parse(); 

$vcalendar2->setConfig("url" , "https://anotherurl/cal2.ics"); 
$vcalendar2->parse(); 

$vcalendar2->setConfig("directory", "export"); 
$vcalendar2->setConfig("filename", "icalmerge3.ics"); 
$vcalendar2->saveCalendar(); 


echo "done"; 

3) Создайте планировщик CRON для периодического запуска этого файла. Направьте оба Airbnb и Flipkey на URL-адрес, где создается фид. Вы можете использовать столько входных ICS-файлов, сколько хотите.