Extensão JQuery Fullcalendar Yii2 JQuery de: http://arshaw.com/fullcalendar/ Versão 4.0.2 Licença MIT
Documentação JQuery: http://arshaw.com/fullcalendar/docs/ Extensão Yii2 por [email protected]
Uma pequena amostra pode ser encontrada aqui: http://yii2fullcalendar.beeye.org
O pacote está registrado em packagist.org - então você pode apenas adicionar uma linha de código para deixá-lo rodar!
adicione a seguinte linha à sua seção require do compositor.json:
"philippfrenzel/yii2fullcalendar" : " * " ,ou execute:
$ php composer.phar require philippfrenzel/yii2fullcalendar "*"
E certifique-se de ter o seguinte plugin instalado globalmente:
php compositor.phar global requer "fxp/composer-asset-plugin:~1.0"
17-04-2019 Atualizado para a versão estável 4.0.2 mais recente da biblioteca 19-01-2017 Atualizado para incluir campos não padrão 29-11-2014 Atualizado para a versão 2.2.3 mais recente da biblioteca
O início rápido é assim:
$ 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 ,
));Observe que isso apenas visualizará os eventos sem qualquer visualização detalhada ou opção para adicionar um novo evento. etc.
Você pode adicionar campos não padrão por meio do array de campos não padrão, para o qual você pode passar qualquer par chave/valor, conforme descrito na documentação Campos de Evento.
Portanto, usando o exemplo de início rápido acima, você pode ler field1 e fields2 em seu JavaScript usando notação semelhante a event.nonstandard.field1 e event.nonstandard.field2 .
Se você quiser usar o carregador ajax, isso poderia ser assim:
<?= yii2fullcalendar yii2fullcalendar:: widget ([
' options ' => [
' lang ' => ' de ' ,
//... more options to be defined here!
],
' events ' => Url:: to ([ ' /timetrack/default/jsoncalendar ' ])
]);
?>e dentro do seu controlador referenciado, a ação deve ficar assim:
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 ;
}