JQuery Fullcalendar Yii2 拡張 JQuery (http://arshaw.com/fullcalendar/ より) バージョン 4.0.2 ライセンス MIT
JQuery ドキュメント: http://arshaw.com/fullcalendar/docs/ Yii2 拡張機能 ([email protected] 作成)
小さなサンプルはここにあります: http://yii2fullcalendar.beeye.org
パッケージは packagegist.org に登録されていますので、コードを 1 行追加するだけで実行できます。
次の行をcomposer.jsonのrequireセクションに追加します。
"philippfrenzel/yii2fullcalendar" : " * " ,
または実行します:
$ php composer.phar require philippfrenzel/yii2fullcalendar "*"
そして、次のプラグインがグローバルにインストールされていることを確認してください。
php comboser.phar global require "fxp/composer-asset-plugin:~1.0"
2019 年 4 月 17 日 ライブラリを最新の 4.0.2 安定バージョンに更新しました 2017 年 1 月 19 日、非標準フィールドを含めるように更新しました 2014 年 11 月 29 日 ライブラリの最新バージョン 2.2.3 に更新しました
クイックスタートは次のようになります。
$ events = array ();
//Testing
$ Event = new yii2fullcalendar models Event ();
$ Event -> id = 1 ;
$ Event -> title = ' Testing ' ;
$ Event -> start = date ( ' Y-m-dTH:i:sZ ' );
$ Event -> nonstandard = [
' field1 ' => ' Something I want to be included in object #1 ' ,
' field2 ' => ' Something I want to be included in object #2 ' ,
];
$ events [] = $ Event ;
$ Event = new yii2fullcalendar models Event ();
$ Event -> id = 2 ;
$ Event -> title = ' Testing ' ;
$ Event -> start = date ( ' Y-m-dTH:i:sZ ' , strtotime ( ' tomorrow 6am ' ));
$ events [] = $ Event ;
?>
<?= yii2fullcalendar yii2fullcalendar:: widget ( array (
' events ' => $ events ,
));
これは、詳細ビューや新しいイベントを追加するオプションなどはなく、イベントのみを表示することに注意してください。
イベント フィールドのドキュメントで説明されているように、非標準フィールド配列を介して非標準フィールドを追加できます。これには任意のキーと値のペアを渡すことができます。
したがって、上記のクイック スタートの例を使用すると、 event.nonstandard.field1
およびevent.nonstandard.field2
と同様の表記を使用して、JavaScript でfield1
およびfields2
読み取ることができます。
ajax ローダーを使用したい場合は、次のようになります。
<?= yii2fullcalendar yii2fullcalendar:: 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 yii2fullcalendar models Event ();
$ Event -> id = $ time -> id ;
$ Event -> title = $ time -> categoryAsString ;
$ Event -> start = date ( ' Y-m-dTH:i:sZ ' , strtotime ( $ time -> date_start . ' ' . $ time -> time_start ));
$ Event -> end = date ( ' Y-m-dTH:i:sZ ' , strtotime ( $ time -> date_end . ' ' . $ time -> time_end ));
$ events [] = $ Event ;
}
return $ events ;
}