%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
| Server IP : 14.207.165.8 / Your IP : 216.73.216.26 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/thread-self/root/var/www/html/ppaobm/vendor/edofre/yii2-fullcalendar/ |
Upload File : |
# Yii2 fullcalendar component
[](https://packagist.org/packages/edofre/yii2-fullcalendar)
[](https://packagist.org/packages/edofre/yii2-fullcalendar)
[](https://packagist.org/packages/edofre/yii2-fullcalendar)
[](https://packagist.org/packages/edofre/yii2-fullcalendar)
[](https://packagist.org/packages/edofre/yii2-fullcalendar)
## Installation
The preferred way to install this extension is through [composer](http://getcomposer.org/download/).
To install, either run
```
$ php composer.phar require edofre/yii2-fullcalendar "V1.0.11"
```
or add
```
"edofre/yii2-fullcalendar": "V1.0.11"
```
to the ```require``` section of your `composer.json` file.
## Usage
### Fullcalendar can be created as following, all options are optional, below is just an example of most options
```php
<?= edofre\fullcalendar\Fullcalendar::widget([
'options' => [
'id' => 'calendar',
'language' => 'nl',
],
'clientOptions' => [
'weekNumbers' => true,
'selectable' => true,
'defaultView' => 'agendaWeek',
'eventResize' => new JsExpression("
function(event, delta, revertFunc, jsEvent, ui, view) {
console.log(event);
}
"),
],
'events' => Url::to(['calendar/events', 'id' => $uniqid]),
]);
?>
```
### Events can be added in three ways, PHP array, Javascript array or JSON feed
#### PHP array
```php
<?php
$events = [
new Event([
'title' => 'Appointment #' . rand(1, 999),
'start' => '2016-03-18T14:00:00',
]),
// Everything editable
new Event([
'id' => uniqid(),
'title' => 'Appointment #' . rand(1, 999),
'start' => '2016-03-17T12:30:00',
'end' => '2016-03-17T13:30:00',
'editable' => true,
'startEditable' => true,
'durationEditable' => true,
]),
// No overlap
new Event([
'id' => uniqid(),
'title' => 'Appointment #' . rand(1, 999),
'start' => '2016-03-17T15:30:00',
'end' => '2016-03-17T19:30:00',
'overlap' => false, // Overlap is default true
'editable' => true,
'startEditable' => true,
'durationEditable' => true,
]),
// Only duration editable
new Event([
'id' => uniqid(),
'title' => 'Appointment #' . rand(1, 999),
'start' => '2016-03-16T11:00:00',
'end' => '2016-03-16T11:30:00',
'startEditable' => false,
'durationEditable' => true,
]),
// Only start editable
new Event([
'id' => uniqid(),
'title' => 'Appointment #' . rand(1, 999),
'start' => '2016-03-15T14:00:00',
'end' => '2016-03-15T15:30:00',
'startEditable' => true,
'durationEditable' => false,
]),
];
?>
<?= edofre\fullcalendar\Fullcalendar::widget([
'events' => $events
]);
?>
```
#### Javascript array
```php
<?= edofre\fullcalendar\Fullcalendar::widget([
'events' => new JsExpression('[
{
"id":null,
"title":"Appointment #776",
"allDay":false,
"start":"2016-03-18T14:00:00",
"end":null,
"url":null,
"className":null,
"editable":false,
"startEditable":false,
"durationEditable":false,
"rendering":null,
"overlap":true,
"constraint":null,
"source":null,
"color":null,
"backgroundColor":"grey",
"borderColor":"black",
"textColor":null
},
{
"id":"56e74da126014",
"title":"Appointment #928",
"allDay":false,
"start":"2016-03-17T12:30:00",
"end":"2016-03-17T13:30:00",
"url":null,
"className":null,
"editable":true,
"startEditable":true,
"durationEditable":true,
"rendering":null,
"overlap":true,
"constraint":null,
"source":null,
"color":null,
"backgroundColor":"grey",
"borderColor":"black",
"textColor":null
},
{
"id":"56e74da126050",
"title":"Appointment #197",
"allDay":false,
"start":"2016-03-17T15:30:00",
"end":"2016-03-17T19:30:00",
"url":null,
"className":null,
"editable":true,
"startEditable":true,
"durationEditable":true,
"rendering":null,
"overlap":false,
"constraint":null,
"source":null,
"color":null,
"backgroundColor":"grey",
"borderColor":"black",
"textColor":null
},
{
"id":"56e74da126080",
"title":"Appointment #537",
"allDay":false,
"start":"2016-03-16T11:00:00",
"end":"2016-03-16T11:30:00",
"url":null,
"className":null,
"editable":false,
"startEditable":false,
"durationEditable":true,
"rendering":null,
"overlap":true,
"constraint":null,
"source":null,
"color":null,
"backgroundColor":"grey",
"borderColor":"black",
"textColor":null
},
{
"id":"56e74da1260a7",
"title":"Appointment #465",
"allDay":false,
"start":"2016-03-15T14:00:00",
"end":"2016-03-15T15:30:00",
"url":null,
"className":null,
"editable":false,
"startEditable":true,
"durationEditable":false,
"rendering":null,
"overlap":true,
"constraint":null,
"source":null,
"color":null,
"backgroundColor":"grey",
"borderColor":"black",
"textColor":null
},
]'),
]);
?>
```
#### JSON feed
```php
<?= edofre\fullcalendar\Fullcalendar::widget([
'events' => Url::to(['calendar/events', 'id' => $uniqid]),
]);
?>
```
Your controller action would then return an array as following
```php
/**
* @param $id
* @param $start
* @param $end
* @return array
*/
public function actionEvents($id, $start, $end)
{
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
return [
// minimum
new Event([
'title' => 'Appointment #' . rand(1, 999),
'start' => '2016-03-18T14:00:00',
]),
// Everything editable
new Event([
'id' => uniqid(),
'title' => 'Appointment #' . rand(1, 999),
'start' => '2016-03-17T12:30:00',
'end' => '2016-03-17T13:30:00',
'editable' => true,
'startEditable' => true,
'durationEditable' => true,
]),
// No overlap
new Event([
'id' => uniqid(),
'title' => 'Appointment #' . rand(1, 999),
'start' => '2016-03-17T15:30:00',
'end' => '2016-03-17T19:30:00',
'overlap' => false, // Overlap is default true
'editable' => true,
'startEditable' => true,
'durationEditable' => true,
]),
// Only duration editable
new Event([
'id' => uniqid(),
'title' => 'Appointment #' . rand(1, 999),
'start' => '2016-03-16T11:00:00',
'end' => '2016-03-16T11:30:00',
'startEditable' => false,
'durationEditable' => true,
]),
// Only start editable
new Event([
'id' => uniqid(),
'title' => 'Appointment #' . rand(1, 999),
'start' => '2016-03-15T14:00:00',
'end' => '2016-03-15T15:30:00',
'startEditable' => true,
'durationEditable' => false,
]),
];
}
```
### Callbacks
Callbacks have to be wrapped in a JsExpression() object. For example if you want to use the eventResize you would add the following to the fullcalendar clientOptions
```php
<?= edofre\fullcalendar\Fullcalendar::widget([
'clientOptions' => [
'eventResize' => new JsExpression("
function(event, delta, revertFunc, jsEvent, ui, view) {
console.log(event.id);
console.log(delta);
}
"),
],
]);
?>
```