koertho/contao-advanced-repeating-events-bundle
最新稳定版本:0.1.2
Composer 安装命令:
composer require koertho/contao-advanced-repeating-events-bundle
包简介
Add advanced repeat event options to contao calendar.
关键字:
README 文档
README
This bundles replaces the contao build in recurrence handling with a more powerful implementation. Technically, it uses rrule-based recurrence definitions.
Features
- allow advanced recurring rule like nth weekday of the month or weekday selection
- Migration command for existing recurring events
- Support for import event from
cgoit/contao-calendar-ical-bundle
Requirements
- PHP
^8.4 - Contao
^5.6
Installation
Install via Composer:
composer require koertho/contao-advanced-repeating-events-bundle
Then update the database schema in the Contao install tool or via console.
Usage
In the backend, you'll find a new field for activating recurrences replacing the old field. After activating it, you'll see the recurrence widget.
In frontend, you can use the normal event list module, but the bundles reader module for output.
Migrating Existing Recurring Events
If you already use Contao's legacy recurring event fields, you can migrate them to RRULE format:
php vendor/bin/contao-console are:migrate-recurrences
Options:
--dry-runshows what would be written without changing data--overwrite-existingreplaces already stored RRULE values--limit=50restricts how many records are processed
Example:
php vendor/bin/contao-console are:migrate-recurrences --dry-run
iCal Import
If cgoit/contao-calendar-ical-bundle is installed, imported RRULE values are copied into the advanced recurrence fields automatically.
Advances usage
Recurrence calculator
You can use the RecurrenceCalculator to calculate the occurrences of an event.
use Koertho\AdvancedRepeatingEventsBundle\Recurrence\RecurrenceCalculatorFactory; function (RecurrenceCalculatorFactory $factory) { $calculator = $factory->createForEvent($event); $occurrences = $calculator->listOccurrencesInRange(rangeStart: new \DateTime('2024-01-01'), rangeEnd: new \DateTime('2024-12-31'), limit: 12, excludeOriginal: false); // Returns an array of start and end dates like [['start' => 1711922400, 'end' => 1711926000], ...] $next = $calculator->resolveCurrentOrUpcomingOccurrence(); // Returns the next occurrence as array with start and end timestamps like ['start' => 1711922400, 'end' => 1711926000] $description = $calculator->toText(); }
Notes
- The recurrence logic is based on
simshaun/recurr. - Parts of this extension are created with AI
统计信息
- 总下载量: 14
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: LGPL-3.0-or-later
- 更新时间: 2026-03-11
