vojtasvoboda / oc-reservations-plugin
OctoberCMS的预定插件
Requires
- php: >=5.4
- composer/installers: ~1.0
README
提供预定表单以及预定管理功能。您还应该检查相关的插件:后端日历。
主要特性
- 预定具有彩色状态、批量操作和全文搜索,以节省您的时间
- 漂亮的干净仪表板小部件
- 具有状态筛选功能的预定导出
- 可以直接从后端创建预定
- 回头客功能
技术特性
- 包含翻译,并由单元测试覆盖
- 预定表单具有CSRF保护和多个机器人提交保护
- 预定表单具有AJAX发送和也非JS回退
- 可加载的数据种子用于状态
没有其他插件依赖。与最新的稳定OctoberCMS构建420(带有Laravel 5.5)进行了测试。
安装
- 安装插件VojtaSvoboda.Reservations
- 将预定表单组件插入您的页面。请确保您已加载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许可证。