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, так что вы можете просто добавить одну строку кода, чтобы он запустился!
добавьте следующую строку в раздел require вашего композитора.json:
"philippfrenzel/yii2fullcalendar" : " * " ,
или запустите:
$ php composer.phar require philippfrenzel/yii2fullcalendar "*"
И убедитесь, что у вас установлен следующий плагин:
Для глобального php композитора.phar требуется «fxp/composer-asset-plugin:~1.0»
17.04.2019 Обновлено до последней версии 4.0.2. Стабильная версия библиотеки. 19.01.2017. Обновлено для включения нестандартных полей. 29.11.2014. Обновлено до последней версии 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 ,
));
Обратите внимание, что при этом будут отображаться только события без какого-либо подробного просмотра или возможности добавления нового события.. и т. д.
Вы можете добавлять нестандартные поля через массив нестандартных полей, для которого вы можете передать любую пару ключ/значение, как описано в документации по полям событий.
Итак, используя приведенный выше пример быстрого запуска, вы можете читать field1
и fields2
в своем JavaScript, используя обозначения, аналогичные event.nonstandard.field1
и event.nonstandard.field2
.
Если вы хотите использовать 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 ;
}