定制 koertho/contao-advanced-repeating-events-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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.

Screenshot 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-run shows what would be written without changing data
  • --overwrite-existing replaces already stored RRULE values
  • --limit=50 restricts 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

GitHub 信息

  • Stars: 2
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: LGPL-3.0-or-later
  • 更新时间: 2026-03-11

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固