blueways/bw-bookingmanager

通用预订管理器

安装数: 3,151

依赖: 0

建议者: 0

安全: 0

星级: 0

关注者: 1

分支: 1

开放问题: 2

语言: TypeScript

类型: typo3-cms-extension

v11.1.0 2023-06-11 17:59 UTC

README

安装

  • 通过 composer
composer require blueways/bw-bookingmanager
  • 包含 TypoScript 设置和常量
  • 在网站配置中包含路由增强器
imports:
  - resource: 'EXT:bw_bookingmanager/Configuration/Routing/Api.yaml'
  - resource: 'EXT:bw_bookingmanager/Configuration/Routing/Ics.yaml'

用法

创建新的日历

  • 创建一个新的 SysFolder 并将其用作“预订管理器”的容器
  • 将新的日历添加到文件夹中
  • 为日历创建时间段或启用日历设置中的直接预订

通知

要发送自动电子邮件,请在一个 SysFolder 内添加一个新的通知记录,并选择您想要接收通知的事件和日历。

电子邮件模板

可以在通知设置中选择模板。要修改可用的模板,请使用 PageTS

TCEFORM.tx_bwbookingmanager_domain_model_notification {
  template.addItems {
    welcome = Welcome Template
  }
}

电子邮件通过 TYPO3 邮件 API 发送。要使用自定义电子邮件模板,请将模板目录添加到 TYPO3 配置中,并确保配置的模板名称存在

$GLOBALS['TYPO3_CONF_VARS']['MAIL']['templateRootPaths'][108] = 'EXT:extension/Resources/Private/Templates/Email';

条件通知

要在后端添加新的条件,请通过 TCA 注册一个新的复选框项

$GLOBALS['TCA']['tx_bwbookingmanager_domain_model_notification']['columns']['conditions']['items'][] = [
    'New condition name', \Vendor\Extension\NotificationCondition\TheNewCondition::class
];

该项目的值应该是实现 NotificationConditionInterface 的类名。

class TheNewCondition implements NotificationConditionInterface
{

    public function doSend(Entry $entry): bool
    {
        // ...logic

        // prevent sending of email
        return false;
    }
}

API

有多种方法可以扩展或修改预订管理器的行为。

事件

已分派 PSR-14 事件,提供执行自定义功能的方法

  • AfterEntryCreationEvent

变更日志

  • 不再通过 TypoScript 配置确认邮件 - 创建单独的通知