xi-ma-media/ical-bundle

该包的最新版本(0.2.3)没有提供许可证信息。

XIMA iCal Bundle

安装: 754

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 15

分支: 0

开放问题: 0

类型:symfony-bundle

0.2.3 2023-12-19 15:46 UTC

This package is auto-updated.

Last update: 2024-09-20 07:56:40 UTC


README

eluceo/ical 包封装成 Symfony Bundle,包含 Doctrine 关联映射和 Sonata Admin 类。

安装

composer require xima-media/ical-bundle

注意

app/AppKernel.php 中加载捆绑包

public function registerBundles()
{
    $bundles = array(
    ...
    new Xima\ICalBundle\XimaICalBundle()
}

配置

您的项目需要支持 dbal 类型 jsondateinterval,在您的 app/config/config.yml 中进行配置,例如。

doctrine:
    dbal:
      ...
      types:
            json: Sonata\Doctrine\Types\JsonType
            dateinterval:  Herrera\Doctrine\DBAL\Types\DateIntervalType

集成

1. 创建一个事件实体

您需要创建一个自定义 Event 类,该类继承自 ICalBundle 的 Event 类,例如。

<?php
use Doctrine\ORM\Mapping as ORM;

/**
 * ICalEvent.
 *
 * @ORM\Entity
 */
class ICalEvent extends \Xima\ICalBundle\Entity\Component\Event
{

}

注意:应启用 ORM auto_mapping 或者在 app/config/config.yml 中手动配置 XimaICalBundle。

2. 更新您的数据库模式

使用您选择的方法来更新您的数据库模式,例如 doctrine 迁移。

Sonata Admin 类

待完成的文档。查看、使用或从 xima-media\ical-bundle\Admin\EventAdmin.phpxima-media\ical-bundle\Admin\RecurrenceRuleAdmin.php 中的 admin 类继承。

用法

获取所有事件的日历格式
/**
 * @Route("/ical")
 * Render all events as iCalendar
 */
protected function iCalAction(Array $events)
{
    $vCalendar = new \Eluceo\iCal\Component\Calendar('myCalendar');

    foreach ($events as $event) {
        $vCalendar->addComponent($event);
    }
    
    $response = new Response();
    $response->headers->set('Content-Type', 'text/calendar; charset=utf-8');
    $response->headers->set('Content-Disposition', 'inline; filename="cal.ics"');
    $response->setContent($vCalendar->render());

    return $response;
}