vojtasvoboda/oc-reservations-plugin

OctoberCMS的预定插件

安装: 59

依赖: 0

建议者: 0

安全: 0

星标: 21

关注者: 4

分支: 14

开放问题: 6

类型:october-plugin

1.1.10 2022-02-08 12:36 UTC

README

Build Status Codacy Code Coverage License

提供预定表单以及预定管理功能。您还应该检查相关的插件:后端日历

主要特性

  • 预定具有彩色状态、批量操作和全文搜索,以节省您的时间
  • 漂亮的干净仪表板小部件
  • 具有状态筛选功能的预定导出
  • 可以直接从后端创建预定
  • 回头客功能

技术特性

  • 包含翻译,并由单元测试覆盖
  • 预定表单具有CSRF保护和多个机器人提交保护
  • 预定表单具有AJAX发送和也非JS回退
  • 可加载的数据种子用于状态

没有其他插件依赖。与最新的稳定OctoberCMS构建420(带有Laravel 5.5)进行了测试。

安装

  1. 安装插件VojtaSvoboda.Reservations
  2. 将预定表单组件插入您的页面。请确保您已加载jQuery!

回头客

插件允许您标记回头客

  • 后端 > 设置 > 预定 > 预定中设置以前的预定数量
  • 在预定列表中,点击列表设置(右下角的汉堡菜单)并勾选“回头客”
  • 它会在拥有多于未取消预定的客户旁边显示星星

管理员确认

默认情况下,插件会向客户发送确认电子邮件。但您也可以打开向不同用户(您的客户、系统管理员等)发送确认的功能。按照以下步骤启用此功能

  • 后端 > 设置 > 预定 > 预定管理员确认选项卡中设置管理员电子邮件和名称
  • 通过开关打开管理员确认
  • 系统将发送特殊的模板'reservation-admin',因此您可以随意编辑模板内容,在后端 > 设置 > 邮件 > 邮件模板

后端日历

在寻找后端日历来视觉查看您的预定?请查看后端日历插件。

公共外观

您可以使用插件的公共外观 vojtasvoboda.reservations.facade,如下所示使用一些公共方法

$facade = App::make('vojtasvoboda.reservations.facade');
$facade->storeReservation(array $data);
$facade->getReservations();
$facede->getActiveReservations();
$facade->getReservedDates();
$facade->getReservationsByInterval(\Carbon\Carbon $from, \Carbon\Carbon $to);
$facade->isDateAvailable(\Carbon\Carbon $date);

配置

您可以在CMS后端找到一些插件配置(日期时间格式、预定长度、时间段长度等)。但您也可以在插件的配置文件中设置一些值。配置值用于在找不到设置值时(以及与使用旧版插件的用户的后向兼容性)使用。

当您想覆盖默认插件的config.php时,该文件位于插件的/config文件夹中,只需创建文件

/config/vojtasvoboda/reservations/config.php

并覆盖您想更改的值。此文件的示例

<?php return [
    'formats' => [
        'date' => 'd.m.Y H:i:s',
    ],
];

覆盖种子

要覆盖种子,只需将插件文件夹 /updates/sources 中的种子文件复制到

/resources/vojtasvoboda/reservations/updates/sources/

例如

/resources/vojtasvoboda/reservations/updates/sources/statuses.yaml

此文件将在第一次迁移时加载,或者您可以使用此命令强制刷新迁移

php artisan plugin:refresh VojtaSvoboda.Reservations

单元测试

只需在插件目录中运行phpunit。要运行带有项目测试的插件单元测试,请将以下内容添加到您的项目 phpunit.xml 文件中

<testsuites>
    <testsuite name="Reservation Tests">
        <directory>./plugins/vojtasvoboda/reservations/tests</directory>
    </testsuite>
</testsuites>

收到“找不到类'PluginTestCase'”错误?只需在项目根目录中输入composer dumpautoload

待办事项

  • 复选框用于禁用向组件注入资产。
  • 将日期验证从外观层移至模型层(创建预订时也应有效)。
  • 自动加载预订列表/筛选的状态。
  • 资产连接。
  • 记录预订变更的历史日志。
  • 通过一个SQL查询实现批量预订状态更改。
  • 按返回标志排序,不抛出SQL异常。
  • 在后台翻译状态。
  • 使用Translate trait进行翻译。
  • 可以在电子邮件中发送iCal链接。
  • 在日期选择器中仅显示未来日期。
  • 仅将未来的预订加载到日期选择器中,以显示预订时段。
  • 在预订前通过电子邮件/SMS发送预订提醒。
  • 生成下一个预订号的专属函数(回调)。
  • 当管理员确认预订时,发送确认电子邮件。

请随意发送拉取请求!

贡献

请将拉取请求发送到主分支。请添加单元测试,并确保所有单元测试都是绿色的。

许可证

预订插件是开源软件,许可协议与OctoberCMS平台相同,遵循MIT许可证