ubl / booking
管理为前端用户管理的房间预订
Requires
- php: >=7.4.0
- typo3/cms: ^8.7 || ^9.5
Requires (Dev)
- mikey179/vfsstream: ^1.4
- namelesscoder/typo3-repository-client: ^1.2
- nimut/testing-framework: ^1.0
- phpunit/phpunit: ^4.7 || ^5.0
README
管理 typo3 前端用户的房间预订
此扩展是根据管理莱比锡大学图书馆学生和读者可用的团体学习室预订的需求而创建的。
匿名网站访客可以在 typo3 后端中管理特定时间段的房间和占用情况。
登录用户还可以根据定义的每天和位置的预订最大值预订房间时间段。
要求
- Typo3 > 8.0 < 9.5.99
- PHP >= 7.4
- 图标字体 >= 0.9.0
我们没有测试更高版本,但代码库应该是足够的。
使用方法
此扩展提供了一个插件,需要将其分配到指定的页面。
创建位置
添加 新内容元素->插件->通用插件。在 插件 选项卡下,选择 房间预订。
配置
切换回 插件 选项卡后,您有多个选项可以进行指定
- 每天和用户的最大预订数 定义用户每天可以预订的数量,无论您在此页面上提供多少房间。默认为 5 个预订,除非指定。
- 可预订的周数 定义用户可以提前预订的周数。当前周加上您在此处定义的周数。默认为 2 周,除非指定。
- 可查看的周数 定义可以查看的周数。默认为 1 周,除非指定。
- 管理帐户 定义前端用户帐户,被视为管理员。它们不受所有先前设置的限制。
在 行为 选项卡中,必须指定 记录存储页面,其中将存储房间、预订、营业时间和关闭日。
如果不按 高级自定义 部分中所述进行覆盖,则此处创建的所有营业时间和关闭日均适用于此处创建的所有房间。
创建房间
要创建房间,请转到之前在 配置 部分中指定为 记录存储页面 的页面,创建新记录 并选择 房间
您必须提供至少一个 房间名称。
启用样式表
要启用扩展附带的基本 CSS 样式表,必须将其包含在根模板中。转到 网站->模板,在下拉框中选择 信息/修改,然后单击 编辑整个模板记录。选择 包括 选项卡,从 可用项 中将 预订 CSS 样式(预订) 添加到 选定项 中,然后单击 保存。您现在已将扩展样式表添加到页面并启用了图标字体样式。
定义关闭日
关闭日对于银行假日等非常有用。
要创建关闭日,请转到之前在 配置 部分中指定为 记录存储页面 的页面,创建新记录 并选择 关闭日
您必须提供至少一个关闭日名称和日期。在周概述中,这些天显示为不可预订,且在这些天无法从前端创建预订。然而,从后端创建的预订没有验证,但这些预订也不会在前端显示。
定义营业时间
默认情况下,一周中所有天的所有时间都可以预订。使用营业时间,您可以定义一天的开业时间。
要为一天创建营业时间,请转到之前在配置部分指定的记录存储页面页面,创建新记录并选择营业时间
选择您想要指定营业时间的星期几,然后选择值班时间。
如果您一点时间都不选择,则该天完全关闭预订。例如,可以创建每周关闭的天,即星期日。
高级定制
默认情况下,关闭日和营业时间适用于所有房间。但是,如果您想为不同的房间定义不同的规则,您可以创建一个新的记录存储页面并将其指定给指定的房间。
只需打开已经创建的房间记录,并在营业时间存储页面下注册新创建的记录存储页面。
如果您想利用继承原则,甚至可以注册多个页面。规则是,先到的优先。例如,如果您在两个页面上定义了星期一的营业时间,则列出第一的页面的营业时间被采用。
关闭日也会继承。但是,在这里覆盖没有意义。
为了更好地了解为房间做出的预订,您还可以为房间预订指定一个存储页面。
为此,在预订存储页面下注册指定的存储页面,然后您就可以开始了。未来的预订将存储在该页面下,但也会考虑插件存储页面下的预订,因此您不必担心旧的预订。
清理旧预订
有一个清理命令,可以与typo3的命令行界面或调度程序一起使用来清理旧预订。请注意,这里不考虑插件配置的回顾性周数。您指定从现在开始要保留的周数。
转到调度程序->添加任务
- 从类中选择Extbase CommandController Task
- 根据您的需要指定频率(每周一次就足够了)
- 从CommandController Command列表中选择预订清理:cleanupBookings
- 保存任务**重要!否则,将不会出现参数的表单元素
- 在周数参数字段中指定要保留的周数。0(零)或空表示删除当前周之前的所有预订