เนื้อหานี้เรามาดูการตั้งค่า ที่มักใช้งานบ่อย โดยเฉพาะภาษาไทย
รวมถึง plugin การแสดงต่างๆ ทบทวนตอนที่แล้วที่
การสร้างปฏิทินกิจกรรม ด้วย fullcalendar อัพเดทปี 2020 ตอนที่ 1 http://niik.in/973
https://www.ninenik.com/content.php?arti_id=973 via @ninenik
การตั้งค่าปฏิทินกิจกรรม fullcalendar
ใน fullcalendar เวอร์ชั่นปัจจุบัน มีการแยกส่วนต่างๆ ออกเป็น package หรือส่วนย่อย ทำให้เวลา
เราต้องการใช้งาน จำเป็นจะต้องเรียกใช้ไฟล์นั้นๆ รวมถึง css ไฟล์ด้วย โค้ดด้านล่าง เป็นส่วนปรับ
เพิ่มเติมจากตอนที่ 1 เราจะมีการใช้ plugin หลัก รวมถึงการกำหนดการแสดงเป็นภาษาไทย ด้วย
ไฟลด์ โค้ดตัวอย่าง
<?php $fullcalendar_path = "fullcalendar-4.4.2/packages/"; ?> <!DOCTYPE html> <html lang='en'> <head> <meta charset='utf-8' /> <link href='<?=$fullcalendar_path?>/core/main.css' rel='stylesheet' /> <link href='<?=$fullcalendar_path?>/daygrid/main.css' rel='stylesheet' /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css"> <!-- ส่วนที่เพิ่มเข้ามาใหม่--> <link href='<?=$fullcalendar_path?>/timegrid/main.css' rel='stylesheet' /> <link href='<?=$fullcalendar_path?>/list/main.css' rel='stylesheet' /> <script src='<?=$fullcalendar_path?>/core/main.js'></script> <script src='<?=$fullcalendar_path?>/daygrid/main.js'></script> <!-- ส่วนที่เพิ่มเข้ามาใหม่--> <script src='<?=$fullcalendar_path?>/core/locales/th.js'></script> <script src='<?=$fullcalendar_path?>/timegrid/main.js'></script> <script src='<?=$fullcalendar_path?>/interaction/main.js'></script> <script src='<?=$fullcalendar_path?>/list/main.js'></script> <style type="text/css"> #calendar{ width: 800px;margin: auto; } </style> </head> <body> <div id='calendar'></div> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha256-4+XzXVhsDmqanXGHaHvgh1gMQKX40OUvDEBTu8JcmNs=" crossorigin="anonymous"></script> <script type="text/javascript"> $(function(){ // กำหนด element ที่จะแสดงปฏิทิน var calendarEl = $("#calendar")[0]; // กำหนดการตั้งค่า var calendar = new FullCalendar.Calendar(calendarEl, { plugins: [ 'interaction','dayGrid', 'timeGrid', 'list' ], // plugin ที่เราจะใช้งาน defaultView: 'dayGridMonth', // ค้าเริ่มร้นเมื่อโหลดแสดงปฏิทิน header: { left: 'prev,next today', center: 'title', right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth' }, eventLimit: true, // allow "more" link when too many events locale: 'th', // กำหนดให้แสดงภาษาไทย firstDay: 0, // กำหนดวันแรกในปฏิทินเป็นวันอาทิตย์ 0 เป็นวันจันทร์ 1 showNonCurrentDates: false, // แสดงที่ของเดือนอื่นหรือไม่ eventTimeFormat: { // รูปแบบการแสดงของเวลา เช่น '14:30' hour: '2-digit', minute: '2-digit', meridiem: false } }); // แสดงปฏิทิน calendar.render(); }); </script> </body> </html>
ส่วนที่เพิ่มเข้ามา
ส่วนที่เพิ่มเข้ามาสำหรับ css style และ javascript
<!-- ส่วนที่เพิ่มเข้ามาใหม่--> <link href='<?=$fullcalendar_path?>/timegrid/main.css' rel='stylesheet' /> <link href='<?=$fullcalendar_path?>/list/main.css' rel='stylesheet' /> <!-- ส่วนที่เพิ่มเข้ามาใหม่--> <script src='<?=$fullcalendar_path?>/core/locales/th.js'></script> <script src='<?=$fullcalendar_path?>/timegrid/main.js'></script> <script src='<?=$fullcalendar_path?>/interaction/main.js'></script> <script src='<?=$fullcalendar_path?>/list/main.js'></script>
ทั้งสองส่วน เป็นส่วนที่ใช้สำหรับจัดการ plugin เพิ่มเติม ที่เราเรียกใช้งาน
ต่อด้วยรูปแแบบการตั้งค่า ต่างๆ ไม่ว่าจะเป็น การกำหนดภาษา การกำหนด plugin ที่จะใช้งาน
plugins: [ 'interaction','dayGrid', 'timeGrid', 'list' ], // plugin ที่เราจะใช้งาน
เนื่องจากตอนนี้ เรายังไม่มีข้อมูลของ event หรือกิจกรรม ก็จะอาจยังไม่เห็นความแตกต่าง
การกำหนด defaultView เป็นการบอกว่า เราต้องการแสดงรูปแบบเริ่มต้นของปฏิทินเป็นแบบไหน
สังเกตที่ชื่อ ของค่าที่กำหนด 'dayGridMonth' หรือกำหนดเป็นค่าอื่นๆ เช่น dayGridMonth,timeGridWeek,
timeGridDay และ listMonth ตามต้องการ
demo ด้านล่าง จะแสดงตัวอย่าง แบบที่ยังไม่ได้กำหนดค่าใดๆ กับตัวอย่างที่กำหนดค่าตามโค้ดด้านบนแล้ว