janborg / contao-ical-bundle
提供Contao日历的ical功能
0.2.4
2024-09-16 14:23 UTC
Requires
- php: ^8.1
- contao/calendar-bundle: ^4.13 || ^5.0
- contao/core-bundle: ^4.13 || ^5.0
- doctrine/dbal: ^3.6
- kigkonsult/icalcreator: ^2.4
- symfony/config: ^5.4 || ^6.0
- symfony/dependency-injection: ^5.4 || ^6.0
- symfony/http-foundation: ^5.4 || ^6.0
- symfony/http-kernel: ^5.4 || ^6.0
- symfony/routing: ^5.4 || ^6.0
- symfony/security-core: ^5.4 || ^6.0
Requires (Dev)
- bamarni/composer-bin-plugin: ^1.5
- contao/easy-coding-standard: ^6.0
- contao/manager-plugin: ^2.0
- phpstan/phpstan: ^1.10
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-symfony: ^1.2
- phpunit/phpunit: ^10.0.16
- shipmonk/composer-dependency-analyser: ^1.7
- symfony/phpunit-bridge: ^5.4 || ^6.0
Conflicts
- contao/manager-plugin: <2.0 || >=3.0
README
Contao Ical Bundle
使用此包可以为Contao日历创建ics文件,以便在其他程序(例如ICSx5、GoogleCalendar等)中订阅。
安装
请使用Contao Manager或执行CLI中的composer require janborg/contao-ical-bundle
来安装扩展。
配置
该包使用默认配置。如有必要,可以在文件config/config.yml
中覆盖这些设置。
参数
- defaultEndDateDays: 如果未指定结束日期,ical日历中考虑的未来的最大天数
- defaultEventDuration: 如果事件有一个开始时间但没有结束时间,指定为事件持续时间的时间(分钟)
# config/config.yml # Contao Ical (default settings) janborg_contao_ical: defaultEndDateDays: 365 defaultEventDuration: 60
将事件或日历导出为.ics
通过自定义路由
该包实现了两个新路由,可以通过这些路由下载事件或整个日历的ical文件。通过相应的应用程序(例如ICSx5 for Android),也可以通过这些路由订阅日历。
- /ical/event/{alias} 通过此路由可以为每个事件下载相应的*.ics文件,除非父日历受保护。在这种情况下,必须作为有权限的FE用户登录。
- /ical/calendar/{ical_alias} 要通过此路由导出和导入日历,必须在相应的日历中激活并设置ical_alias。如果日历受保护,则必须作为有权限的FE用户登录。
通过“/share”下的文件
除了路由外,还可以将文件/share/ical_alias.ics放置在必要时。这里不能检查日历是否受保护!
通过钩子修改ical数据
存在修改作为ical提供的活动数据或添加自己的字段的可能性。为此,可以注册一个名为editVEvent
的钩子。
示例
<?php namespace App\EventListener; use Contao\CalendarEventsModel; use Contao\CoreBundle\DependencyInjection\Attribute\AsHook; use Kigkonsult\Icalcreator\Vevent; #[AsHook('editVEvent')] class EditVEventListener { public function __invoke(Vevent $vEvent, CalendarEventsModel $objEvent): Vevent { // Add additional data or modify $vEvent … return $vEvent; } }