intelogie/vcalendar

用于生成 VCalendar (ics) 文件的 PHP 类

1.0.1 2016-08-01 18:31 UTC

This package is auto-updated.

Last update: 2024-08-29 04:37:15 UTC


README

PHP 类用于生成 VCalendar (ics) 文件。兼容 GMail 日历附件。

Build Status Latest Stable Version Total Downloads Latest Unstable Version License composer.lock available Code Climate Test Coverage Issue Count

安装

此页面包含有关为 PHP 安装库的信息。

要求

  • PHP 版本 5.3.0 或更高版本(包括 PHP 7)

获取客户端库

获取客户端库文件有两种选项。

使用 Composer

您可以通过将库作为依赖项添加到 composer.json 中来安装库。

  "require": {
    "davaxi/vcalendar": "^1.0"
  }

从 GitHub 克隆

库在 GitHub 上可用。您可以使用 git clone 命令将其克隆到本地存储库中。

git clone https://github.com/davaxi/VCalendar.git

文件处理

获取文件后,确保它们对您的代码可用。如果您使用 Composer,这将自动为您处理。如果不使用,您需要将客户端库中的 autoload.php 文件添加到您的项目中。

require '/path/to/vcalendar/folder/autoload.php';

用法

<?php

require '/path/to/vcalendar/folder/autoload.php';

$VCalendar = new Davaxi\VCalendar();
$VCalendar->setProcess('Davaxi', 'Davaxi Events', 'v1.0', 'EN');
$VCalendar->setMethod('PUBLISH');
$VCalendar->setCalendarName('Events - Davaxi');
$VCalendar->setTimeZone('Europe/Paris');
$VCalendar->setStartDateTime('2016-06-10 10:00:00');
$VCalendar->setEndDateTime('2016-06-10 14:00:00');
$VCalendar->setStatus('CONFIRMED');
$VCalendar->setTitle('My Event Title');
$VCalendar->setDescription('My Event Description');
$VCalendar->setOrganizer('Davaxi', 'root@domain.fr');
$VCalendar->setClass('PUBLIC');
$VCalendar->setCreatedDateTime('2016-06-01 00:00:00');
$VCalendar->setLocation('Paris', 48.874086, 2.345640);
$VCalendar->setUrl('https://www.domain.com/');
$VCalendar->setSequence(4);
$VCalendar->setLastUpdatedDateTime('2016-06-01 01:00:00');
$VCalendar->setCategories(array('ENTERTAINMENT'));
$VCalendar->setUID('event_davaxi_1');
$VCalendar->addAttendee('Guest', 'REQ-PARTICIPANT', 'guest@domain.com',false);
$VCalendar->stream();
exit();

文档

<?php
// Filename for download stream
$event = new Davaxi\VCalendar($fileName = 'invite');

// Set process info
$VCalendar->setProcess($processOwner, $processName, $processVersion, $processLang)

// Set method (REQUEST / PUBLISH)
$VCalendar->setMethod($method);

// Set event calendar name
$VCalendar->setCalendarName($calendarName);

// Set event timezone
$VCalendar->setTimeZone($timeZone);

// Set event start datetime
$VCalendar->setStartDateTime($startDateTime);

// Set event end datetime
$VCalendar->setEndDateTime($endDateTime);

// Set event status (TENTATIVE / CONFIRMED / CANCELED) 
$VCalendar->setStatus($status);

// Set event title
$VCalendar->setTitle($title);

// Set event description
$VCalendar->setDescription($description);

// Set organize info
$VCalendar->setOrganizer($organizerName, $organizerEmail);

// Set event class (PUBLIC / PRIVATE / CONFIDENTIAL)
$VCalendar->setClass($class);

// Set event created datetime
$VCalendar->setCreatedDateTime($createdDateTime);

// Set event location 
$VCalendar->setLocation($locationString, $locationLat, $locationLng);

// Set event URL
$VCalendar->setUrl($url);

// Set sequence
$VCalendar->setSequence($sequence);

// Set event last updated datetime
$VCalendar->setLastUpdatedDateTime($lastUpdatedDateTime);

// Set event categories
$VCalendar->setCategories($categories);

// Set event UID (for updates)
$VCalendar->setUID($UID);

// Add attendee (types: CHAIR / REQ-PARTICIPANT / OPT-PARTICIPANT / NON-PARTICIPANT)
$VCalendar->addAttendee($name, $type, $email, $rsvp);

// Stream file with header
$VCalendar->stream();
// or get content
$content = $VCalendar->getContent();

与 PHPMailer 集成,通过 GMail 直接添加到日历操作

$PHPMailer = new PHPMailer();
$VCalendar = new Davaxi\VCalendar();
// [...] Set VCalendar
// [...] Configure PHPMailer

$PHPMailer->addStringAttachment(
    $VCalendar->getContent(),
    $VCalendar->getFilename(),
    'base64',
    $VCalendar->getContentType(),
    'attachment'
);
$PHPMailer->Send();