inspiredminds/contao-event-registration

Contao 扩展,允许对活动进行注册。

资助包维护!
fritzmg

安装数: 2,027

依赖项: 0

建议者: 2

安全: 0

星级: 7

关注者: 6

分支: 7

开放问题: 0

类型:contao-bundle

2.1.4 2024-09-19 10:05 UTC

README

Contao 活动注册

Contao 扩展,允许对活动进行注册。

用法

安装后,您可以在活动的设置中启用对单个活动的注册。

Event settings

  • 注册表单:从表单生成器中选择用于注册的表单。所有表单数据将被保存到每个注册中。表单将按常规处理,即也会发送通知邮件。
  • 最低参与人数:您可以定义一个可选的最低参与人数,然后可以在前端显示(与当前已注册的参与人数一起)。
  • 最高参与人数:您可以定义一个可选的最高参与人数。如果达到这个数字,将无法再进行注册。
  • 注册截止日期:您可以定义一个可选的日期,在此日期后无法再进行注册。
  • 取消截止日期:您可以在一个可选的日期后定义无法再进行取消。
  • 需要确认:当启用时,只有确认的注册才会计入总注册数。
  • 启用等待名单:在达到最大参与人数后保持注册开放。所有注册将被放入等待名单,如果之前的注册被取消,将自动提升。
  • 从等待名单提升通知:当参与者从等待名单中提升时,将发送此通知。

模块

此扩展提供了三个新的活动模块

  • 活动注册表单
  • 活动注册确认
  • 活动注册取消
  • 活动注册列表

所有这些模块都是可选的。《活动注册表单》需要在与活动阅读器模块相同的页面上插入,如果活动启用了注册,它将显示活动注册表单。或者,此表单也可以在活动模板中作为模板变量使用。

确认和取消表单可以插入在其他页面上。在这种情况下,您还需要在日历的设置中指定这些页面。否则,假设这些模块也存在于活动阅读器页面上。这些模块允许您定义一个节点来显示详细内容。当活动注册成功确认或取消时,将显示此内容。您还可以选择在成功取消或确认后发送的通知。如果您不需要确认或取消功能,则不需要创建这些模块。

事件注册列表模块可以用于在事件阅读器页面上显示当前事件的注册列表。如果启用了注册确认,列表将只显示已确认的注册,并且不会显示任何已取消的注册。默认情况下,mod_event_registration_list 模板将根据 tl_event_registration DCA 的 list.label 配置为每个条目自动生成标签。默认配置使用 firstnamelastname 字段 - 然而,如果您的表单中没有这些值,您需要创建一个自定义的 mod_even_registration_list 模板并相应地输出正确的字段。每个注册的注册表单的所有提交值都在 form_data 键下。例如

<?php $this->extend('block_unsearchable'); ?>

<?php $this->block('content'); ?>
  <ul>
    <?php foreach ($this->registrations as $registration): ?>
      <li><?= $registration->form_data->my_form_field ?></li>
    <?php endforeach; ?>
  </ul>
<?php $this->endblock(); ?>

日历设置

如上所述,您的日历中也会有额外的设置。对于每个日历,您可以配置确认的重定向页面以及取消的重定向页面。在这些相应的页面上,根据需要添加 事件注册确认 模块或 事件注册取消 模块。

Calendar settings

模板变量

以下模板变量在事件模板以及事件注册表单模板中可用

  • $this->canRegister:此事件是否可以进行注册。
  • $this->registrationForm:包含注册表单。
  • $this->isFull:此事件的最大注册数量是否已达到。
  • $this->isWaitingList:此事件的最大注册数量是否已达到,并且启用了等待列表。
  • $this->registrationCount:此事件的当前注册数量。
  • $this->reg_min:此事件的最低注册数量。
  • $this->reg_max:此事件的最大注册数量。
  • $this->reg_regEnd:注册不再可能的日期时间戳。
  • $this->reg_cancelEnd:取消不再可能的日期时间戳。

简单令牌

在通知以及确认和取消模块的节点内容中,以下简单令牌可用

  • ##event_*##:事件的所有变量。
  • ##reg_*##:注册的所有变量。
  • ##reg_amount##:每个注册的人数。
  • ##reg_count##:相应的注册数量。
  • ##reg_confirm_url##:可以确认注册的 URL。
  • ##reg_cancel_url##:可以取消注册的 URL。

多语言支持

此扩展支持 terminal42/contao-changelanguage。如果一个事件定义了主要事件,那么上述选项将只在主要事件中可用。任何注册都将始终与主要事件相关联并计算在内,因此所有与主要事件相关的事件的注册总数将相同。

这同样适用于上述提到的模板变量。如果可用,它们将始终引用主要事件。

显示和导出注册信息

对于每个事件,后端的事件列表中都有一个额外的图标。

Event list

这允许您列出每个事件的注册信息。

Event registrations

在列表中,您可以使用信息图标查看事件注册的详细信息。您还可以编辑某些事件属性,例如此注册的人数以及它是否已确认或取消。

Event registration

概述还允许您将注册信息导出为CSV格式。导出功能允许您配置分隔符(可以是,;),并且允许您导出与Microsoft Excel兼容的CSV文件。

Event registration export

后端配置

后端的事件注册列表(以及前端模块)默认使用firstnamelastname字段。然而,如果您的注册表单没有这些字段,您可能需要调整DCA配置,以便在后台显示适合您需要的标签。例如,如果您的表单使用vornamenachnameemail字段,您可以将后台标签配置如下

// contao/dca/tl_event_registration.php
$GLOBALS['TL_DCA']['tl_event_registration']['list']['label']['fields'] = ['vorname', 'nachname', 'email'];
$GLOBALS['TL_DCA']['tl_event_registration']['list']['label']['format'] = '%s %s (%s)';

请注意,这也将影响前端模块事件注册列表的默认标签。

用户自定义金额

默认情况下,每个注册假定注册人数为1人。但是,也可以允许注册事件的访客定义该注册的人数。为此,在表单中插入一个新的文本表单字段(最好带有数字验证),字段名为amount。这将覆盖默认金额,并且注册总人数也将增加这个数量。