JQuery Fullcalendar Yii2 ملحق JQuery من: http://arshaw.com/fullcalendar/ الإصدار 4.0.2 ترخيص معهد ماساتشوستس للتكنولوجيا
وثائق JQuery: http://arshaw.com/fullcalendar/docs/ ملحق Yii2 بواسطة [email protected]
يمكن العثور على عينة صغيرة هنا: http://yii2fullcalendar.beeye.org
بالرغم من أن الحزمة مسجلة في packagist.org - لذا يمكنك فقط إضافة سطر واحد من التعليمات البرمجية للسماح لها بالعمل!
أضف السطر التالي إلى القسم المطلوب لملف Composer.json الخاص بك:
"philippfrenzel/yii2fullcalendar" : " * " ,
أو تشغيل:
$ php composer.phar require philippfrenzel/yii2fullcalendar "*"
وتأكد من تثبيت المكون الإضافي التالي عالميًا:
يتطلب PHP Composer.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 ;
}