mtangoo/yii2-fullcalendar

Yii2 fullcalendar 小部件

安装次数: 126

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 0

公开问题: 0

类型:yii2-extension

v1.0.0 2022-08-24 11:06 UTC

This package is auto-updated.

Last update: 2024-09-24 15:51:56 UTC


README

JQuery Fullcalendar Yii2 扩展 Jquery 来自: http://arshaw.com/fullcalendar/ 版本 2.1.1 许可证 MIT

JQuery 文档: http://arshaw.com/fullcalendar/docs/ 这是一个由 philipp@frenzel.net 开发的 Yii2 扩展的分支

安装

尽管该软件已在 packagist.org 注册,但您只需添加一行代码即可运行!

在您的 composer.json 的 require 部分添加以下行

  "mtangoo/yii2-fullcalendar":"*",

或运行

  composer require mtangoo/yii2-fullcalendar,

用法

快速入门看起来像这样

use hosannahighertech\calendar\Calendar;
use hosannahighertech\calendar\models\Event;

  $events = [];
  //Testing
  $items = [
    [
      'id' => 1,
      'title' => 'Event 1',
      'start' => date('Y-m-d\TH:i:s\Z'),
      'nonstandard' => [
      'field1' => 'Something I want to be included in object #1',
      'field2' => 'Something I want to be included in object #2',
      ]
    ],
    [
      'id' => 1,
      'title' => 'Event 2',
      'start' => date('Y-m-d\TH:i:s\Z',strtotime('tomorrow 6am')),
    ]
  ];

  foreach($items as $item){
    $events[] = new Event($item);
  }

  ?>

  <?= Calendar::widget(['events'=> $events]) ?>

注意,这只会显示事件,没有详细视图或添加新事件的选项等。

非标准字段

您可以通过非标准字段数组添加非标准字段,您可以传递任何键/值对,如 事件字段 文档中所述。

因此,使用上面的快速入门示例,您可以使用类似 event.nonstandard.field1event.nonstandard.field2 的表示法在 JavaScript 中读取 field1fields2

AJAX 用法

如果您想使用 AJAX 加载器,这可能看起来像这样

20171023 ajaxEvents 被替换为事件 - 请查阅 fullcalendar io 文档以获取详细信息

<?= Calendar::widget([
      'options' => [
        'lang' => 'de',
        //... more options to be defined here!
      ],
      'events' => Url::to(['/timetrack/default/jsoncalendar'])
    ]);
?>

并且,在您引用的控制器中,操作应如下所示

public function actionJsoncalendar($start=NULL,$end=NULL,$_=NULL){

    \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;

    $times = \app\modules\timetrack\models\Timetable::find()->where(array('category'=>\app\modules\timetrack\models\Timetable::CAT_TIMETRACK))->all();

    $events = array();

    foreach ($times AS $time){
      //Testing
      $Event = new Event();
      $Event->id = $time->id;
      $Event->title = $time->categoryAsString;
      $Event->start = date('Y-m-d\TH:i:s\Z',strtotime($time->date_start.' '.$time->time_start));
      $Event->end = date('Y-m-d\TH:i:s\Z',strtotime($time->date_end.' '.$time->time_end));
      $events[] = $Event;
    }

    return $events;
  }