PHP code example of understeam / yii2-calendar-widget
1. Go to this page and download the library: Download understeam/yii2-calendar-widget library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
understeam / yii2-calendar-widget example snippets
namespace app\models;
use understeam\calendar\ItemInterface;
use understeam\calendar\ActiveRecordItemTrait;
class Event extends \yii\db\ActiveRecord implements ItemInterface
{
use ActiveRecordItemTrait;
}
'components' => [
'calendar' => [
'class' => 'understeam\calendar\ActiveRecordCalendar', // Имя класса календаря
'modelClass' => 'app\models\Event', // Имя класса модели
'dateAttribute' => 'date', // Атрибут модели, в котором хранится дата (тип в БД timestamp или datetime)
'dateRange' => [time() + 86400, time() + 2592000] // период, в который будет доступно событие onClick
// Так же в dateRange можно передать функцию, которая должна вернуть нужный массив в случае если нужны динамические вычисления
// 'dateRange' => ['app\models\User', 'getCalendarRange'],
'filter' => [ // Фильтр ActiveQuery, который будет применён. Возможно указывать callable для фильтрации
'status' => 1,
],
// Пример
// 'filter' => function ($query, $startTime, $endTime) {
// return $query->andWhere(['userId' => Yii::$app->user->id]);
// },
// Или так
// 'filter' => ['app\models\User', 'filterCalendarQuery'],
],
],
public function actions() {
return [
'calendar' => [
'class' => 'understeam\calendar\CalendarAction',
'calendar' => 'calendar', // ID компонента календаря (да, можно подключать несколько)
'usePjax' => true, // Использовать ли pjax для ajax загрузки страниц
'widgetOptions' => [ // Опции виджета (см. CalendarWidget)
'clientOptions' => [ // Опции JS плагина виджета
'onClick' => new JsExpression('showPopup'), // JS функция, которая будет выполнена при клике на доступное время
'onFutureClick' => new JsExpression('buyPlan'),
'onPastClick' => new JsExpression('showError'),
// Все эти функции принимают 2 параметра: date и time
// Для тестирования можно использовать следующий код:
// 'onClick' => new JsExpression("function(d,t){alert([d,t].join(' '))}")
],
],
],
];
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.