开源 PHP 日历库

v0.0.26 2016-11-04 02:18 UTC

README

开源 PHP 日历库。

安装与设置

首先,在您的数据库上运行 SQL 创建语句

sql/create.sked_events.sql
sql/create.sked_event_members.sql
sql/create.sked_event_tags.sql

然后,使用数据连接凭证在您的代码中实例化 Sked

$sked = new \CampusUnion\Sked([
    'data_connection' => [
        'name' => 'PDO',
        'options' => [
            'driver' => 'mysql',
            'host' => 'localhost',
            'dbname' => 'homestead',
            'user' => 'homestead',
            'pass' => 'secret',
        ],
    ],
]);

基本用法

事件表单

echo $sked->form();

将事件保存到数据库

$sked->save(new SkeVent($_POST));

通过迭代指定日期范围来构建自定义日历

foreach ($sked->skeDates('2016-08-05', '2016-09-21')) {
    // do something awesome
}

SkeDate 对象

SkeDate 对象对于在您的日历 UI 中填充特定日期非常有用。

使用 format() 方法打印日期,该方法接受一个格式化字符串作为可选参数(有关 PHP 的 date 函数的格式化选项,请参阅 格式化选项

echo $skeDate->format('j'); // default format is 'Y-m-d' (e.g., 2016-08-05)

然后您可以遍历其事件

foreach ($skeDate->skeVents(/* Optionally pass a user ID to get events for a certain user. */)) {
    // do something awesome
}

SkeVent 对象

SkeVent 对象允许轻松访问和操作事件。

作为属性检索任何数据库字段(请参阅 SQL 查询)

echo $skeVent->label;

使用 time() 方法打印事件时间,该方法接受一个格式化字符串作为可选参数(有关 PHP 的 date 函数的格式化选项,请参阅 格式化选项

echo $skeVent->time('Hi'); // default format is 'g:ia' (e.g., 2:15pm)

SkeVent::time() 接受一个用于时区调整的第二个可选参数。要将事件的时间调整到特定时区,只需传递时区偏移整数即可

echo $skeVent->time(null, -5); // outputs the time adjusted for US Eastern Standard time

更基本的用法

对于即时、非自定义的事件表单,请使用神奇的 skeDoosh() 方法。唯一需要的配置是数据存储的连接参数。从您要显示 HTML 表单的确切位置调用 skeDoosh()

Sked::skeDoosh([
    'data_connector' => [
        'name' => 'PDO',
        'options' => [
            'driver' => 'mysql',
            'host' => 'localhost',
            'dbname' => 'homestead',
            'user' => 'homestead',
            'pass' => 'secret',
        ],
    ],
]);