GuavaCZ Calendar 使用教程

GuavaCZ Calendar 使用教程

calendar calendar 项目地址: https://gitcode.com/gh_mirrors/calendar67/calendar

1. 项目介绍

GuavaCZ Calendar 是一个开源项目,它为 Filament PHP 提供了对 vkurko/calendar 的支持。vkurko/calendar 是一个免费且开源的 FullCalendar 替代品,通过 GuavaCZ Calendar,开发者可以轻松地在 Filament PHP 面板中集成日历功能。

2. 项目快速启动

首先,确保您的项目中已经安装了 Composer。然后通过以下命令安装 GuavaCZ Calendar:

composer require guava/calendar

安装完成后,发布包的资产:

php artisan filament:assets

确保您有一个自定义的 Filament 主题,并在您的主题的 tailwind.config.js 文件中的 content 属性中添加以下内容:

content: [
  //...
  './vendor/guava/calendar/resources/**/*.blade.php',
],

这样做可以确保 CSS 正确构建。

接下来,创建一个自定义小部件并扩展 CalendarWidget 类。使用 Artisan 命令或手动创建一个空类并扩展 CalendarWidget

php artisan make:filament-widget

小部件类应该看起来像这样:

use Guava\Calendar\Widgets\CalendarWidget;

class MyCalendarWidget extends CalendarWidget
{
}

将小部件添加到任何 Filament 页面,例如您的 Dashboard。

3. 应用案例和最佳实践

创建日历小部件

首先,您需要创建一个自定义小部件并扩展 CalendarWidget 类。确保从生成的类中移除 view 属性。

use Guava\Calendar\Widgets\CalendarWidget;

class MyCalendarWidget extends CalendarWidget
{
}

自定义日历视图

默认情况下,显示的是 dayGridMonth 视图。您可以通过在小部件类中覆盖 calendarView 属性来自定义视图:

protected string $calendarView = 'resourceTimeGridWeek';

所有可用的视图都列在日历文档中。

添加事件

默认情况下,日历是空的。要添加事件,请简单地覆盖 getEvents 方法:

use Illuminate\Support\Collection;
use Guava\Calendar(ValueObjects\CalendarEvent;

public function getEvents(array $fetchInfo = []): Collection|array
{
    return [
        // 链式对象化变体
        CalendarEvent::make()
            ->title('我的第一个事件')
            ->start(today())
            ->end(today()),
        // 数组变体
        [
            'title' => '我的第二个事件',
            'start' => today()->addDays(3),
            'end' => today()->addDays(3),
        ],
        // 实现了 `Eventable` 接口的 Eloquent 模型
        MyEvent::find(1),
    ];
}

创建事件

如示例所示,创建事件有多种方式。至少需要一个包含 titlestartend 属性的数组对象。

CalendarEvent::make()
    ->title('我的事件')
    ->start(today())
    ->end(today()->addDays(3))
    ->allDay()
    ->backgroundColor('#ff0000')
    ->textColor('#ffffff')
    ->styles([
        'color: red' => true,
        'background-color' => '#ffff00',
        'font-size: 12px',
    ])
    ->classNames([
        'class-1',
        'class-2' => true,
    ]);

4. 典型生态项目

目前,GuavaCZ Calendar 项目作为 Filament PHP 的一个扩展存在,它依赖于 Filament 和 vkurko/calendar。开发者可以在此基础上构建更多针对特定业务需求的日历相关功能,例如任务调度、资源管理等。通过贡献代码和反馈,社区可以一起努力,使这个项目更加完善和强大。

calendar calendar 项目地址: https://gitcode.com/gh_mirrors/calendar67/calendar

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙娉果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值