arckinteractive / events_api
事件的数据模型和API
Requires
- php: >=5.3.3
- ext-curl: *
- ext-json: *
- ext-xml: *
- composer/installers: 1.*
- kigkonsult/icalcreator: v2.22.5
Requires (Dev)
- phpunit/phpunit: ~4.1
This package is not auto-updated.
Last update: 2024-09-09 12:21:40 UTC
README
此插件提供了一个用于构建事件应用程序的数据结构和便捷函数。由于每个项目的需求往往不同,因此它尽可能地通用和可扩展,以作为基础后端。UI和集成应由特定项目的辅助插件执行。
所有函数都接受格式化的日期('Y-m-d')和时间('g:ia')作为参数,以将时区计算降到最低。时区功能可以添加并在客户端计算。
日历
日历是一个具有子类型 'calendar' 的 ElggObject。它由另一个实体包含,通常是用户或组。编辑权限从容器写入访问继承。日历包含事件。事件通过关系链接到日历,这样事件就可以在多个日历上显示。
每个用户和组都有一个“公开”日历。此日历会自动创建,并且非管理员用户无法删除或编辑。所有未明确指定日历的新事件都将添加到“公开”日历。
用户可以创建其他具有自定义可见性/访问设置的日历。此外,公开日历可以包含非公开事件,这些事件仅对具有查看权限的查看者可见。
事件
事件是一个具有子类型 'event' 的 ElggObject。它由另一个实体包含,并通过关系附加到日历。
操作
action('events/edit')
此操作添加/编辑一个事件。
必需输入包括
start_date
STR '2015-01-07' // Y-m-dend_date
STR '2015-01-08' // Y-m-dstart_time
STR '12:00am' // g:iaend_time
STR '1:00am' // g:ia
可选输入包括
guid
INTtitle
STR (默认为elgg_echo('events:edit:title:placeholder')
)description
STRhas_reminders
BOOL 事件是否启用了提醒?reminders
ARR 描述提醒的关联数组,以递增和值为条件
例如。
$reminders = array(
'value' => array(
15,
1,
''
),
'increment' => array(
'minute',
'hour',
''
)
)
描述了会议前15分钟和1小时的提醒。每个数组中的最后一个项被视为模板值。
action('events/move')
此操作移动一个事件
必需输入包括
guid
INT 事件的GUIDday_delta
INT 向前/向后移动事件多少天minute_delta
INT 向前/向后移动事件多少分钟
在验证后,事件被触发:在更改之前 'events_api', 'event:move'
。返回 false 将停止移动。返回 false 的处理程序应提供自己的错误消息。
请注意,这是一个便捷操作,请参阅 \Events\API\Event::move()
以获取等效方法。
action('events/resize')
此操作调整事件的大小(仅更改结束日期/时间)
必需输入包括
guid
INT 事件的GUIDday_delta
INT 向前/向后移动结束点多少天minute_delta
INT 向前/向后移动结束点多少分钟
在验证后,事件被触发:在更改之前 'events_api', 'event:resize'
。返回 false 将停止调整大小。返回 false 的处理程序应提供自己的错误消息。
请注意,这是一个便捷操作,请参阅 \Events\API\Event::resize()
以获取等效方法。
提醒
提醒以元数据形式存储在事件中,作为事件发生前多少秒通知用户的秒数差。在每日的cron任务和插件激活时,一个脚本会确定即将到来的提醒并将它们存储为事件上的注释。提醒的发送留给了用户界面,预期的做法是注册分钟cron任务,寻找下一分钟内即将到来的注释——并为任何出现的事件发送提醒。在每次遍历时删除提醒注释。
安装/测试
如果从GitHub下载
# install dependencies (without dev)
composer install --no-dev
# install dependencies (including dev) composer install # run tests vendor/bin/phpunit