มิถุนายน 2008
หมายเหตุ - นี่คือโปรเจ็กต์โอเพนซอร์สที่ Googler เริ่มต้นขึ้นและไม่ใช่ไลบรารีที่รองรับอย่างเป็นทางการ เราขอเชิญทุกคนที่สนใจเข้าร่วมและมีส่วนร่วม :)
บทนำ
คุณเคยต้องการสร้างประสบการณ์การใช้งานปฏิทินที่ปรับแต่งเองในเว็บไซต์โดยใช้ข้อมูล Google ปฏิทิน แต่ไม่แน่ใจว่าจะนำเสนอข้อมูลปฏิทินในรูปแบบภาพอย่างไรใช่ไหม ดูเหมือนว่าจะมีนักพัฒนาแอปจำนวนไม่น้อยที่ประสบกับภาวะกลืนไม่เข้าคายไม่ออกเช่นนี้ แม้ว่า Google Calendar Data API จะเป็น API ของบริการเว็บที่มีประสิทธิภาพเนื่องจากช่วยให้คุณเข้าถึงข้อมูลทั้งหมดใน Google ปฏิทินได้อย่างเต็มที่ แต่ก็ยังคงเป็น API สำหรับอ่าน/เขียนข้อมูลโดยไม่มีการจัดเตรียมการแสดงข้อมูลด้วยภาพ
ในบทความนี้ ผมจะสาธิตไลบรารีตัวอย่างที่ผมเขียนขึ้นเพื่อบรรเทาปัญหานี้ ฉันได้เริ่มโปรเจ็กต์โอเพนซอร์สชื่อ Calendar Visualization (CalVis) ซึ่งมีเป้าหมายที่จะมอบอินเทอร์เฟซผู้ใช้ (UI) ที่ใช้งานง่ายและปรับแต่งได้เพื่อนำเสนอข้อมูลจากบัญชี Google ปฏิทิน CalVis ดึงข้อมูลจากบัญชี Google ปฏิทินโดยตรงผ่าน Google Calendar Data API (หมายเหตุของบรรณาธิการ: ตั้งแต่เวอร์ชัน 3 เป็นต้นไป Google ปฏิทินจะไม่ใช้รูปแบบข้อมูลของ Google อีกต่อไป) โดยใช้ไลบรารีของไคลเอ็นต์ JavaScript ของ Google Data เบื้องหลังเพื่อสื่อสารกับ Google ปฏิทิน และออกแบบมาเพื่อเพิ่มความยืดหยุ่นในการปรับแต่งให้ได้มากที่สุด
CalVis ออกแบบมาเพื่อช่วยให้นักพัฒนาแอปไม่ต้องสร้างประสบการณ์ UI ปฏิทินแบบริชมีเดียขึ้นมาใหม่ นักพัฒนาแอปสามารถใช้เป็นคอนเทนเนอร์เทมเพลตที่ปรับแต่งได้เพื่อซ้อนทับข้อมูล Google ปฏิทิน นักพัฒนาแอปสามารถใช้ CalVis เพื่อแสดงข้อมูลปฏิทินและเพื่อให้การผสานรวมกับเว็บไซต์ของตนเองในระดับที่กำหนดเองได้อย่างลึกซึ้ง ดังที่คุณจะได้ทราบ อินเทอร์เฟซที่สร้างขึ้นบน CalVis สามารถปรับแต่งได้อย่างเต็มที่ผ่าน JavaScript, HTML และ CSS นักพัฒนาแอปจะสามารถติดตั้งใช้งานอินเทอร์เฟซปฏิทินที่ปรับแต่งได้อย่างรวดเร็วและง่ายดาย พร้อมชุดคอมโพเนนต์ควบคุมปฏิทินที่จำเป็นเพื่อแสดงข้อมูลปฏิทิน
การใช้ CalVis
ขั้นตอนต่อไปนี้จะช่วยให้คุณเริ่มต้นใช้งาน CalVis ในการพัฒนาได้
ขั้นตอนที่ 1 - โหลดไลบรารีการแสดงข้อมูลปฏิทิน
ก่อนอื่นคุณต้องใส่โปรแกรมโหลดในไฟล์ HTML โปรแกรมโหลดนี้จะโหลดคลาสหลักของ CalVis แบบไดนามิก รวมถึงไลบรารีที่ขึ้นอยู่กับ CalVis (เช่น ไลบรารีไคลเอ็นต์ JavaScript ของ Google Data)
<script src="//gcal.appspot.com/calvis/calvis.js" type="text/javascript"></script>
ขั้นตอนที่ 2 - ใช้สไตล์ชีต CSS เพื่ออธิบายแอตทริบิวต์สไตล์
ไฟล์ CSS เริ่มต้นจะสร้างรูปลักษณ์เริ่มต้นเหมือนกับตัวอย่างนี้ คุณสามารถดาวน์โหลดไฟล์ CSS นี้และปรับแต่งเพื่อให้มีรูปลักษณ์ที่แตกต่างไปจากเดิมโดยสิ้นเชิง
<link rel="stylesheet" type="text/css" href="//gcal.appspot.com/calvis/default.css" />
ขั้นตอนที่ 3 - วางโครงสร้างภาพของอินเทอร์เฟซปฏิทินด้วย HTML
CalVis มีคอมโพเนนต์ภาพที่กำหนดไว้ล่วงหน้าหลายรายการซึ่งประกอบกันเป็นอินเทอร์เฟซปฏิทิน การจัดโครงสร้างของคอมโพเนนต์อินเทอร์เฟซเหล่านี้จะกำหนดโดยเลย์เอาต์ HTML
คอมโพเนนต์ UI ของ CalVis มีดังนี้
-
การควบคุมการเข้าสู่ระบบ (สำหรับปฏิทินส่วนตัวเท่านั้น)
นี่คือคอมโพเนนต์ HTML ที่มีลิงก์เข้าสู่ระบบ/ออกจากระบบ
-
การควบคุมสถานะ
นี่คือคอมโพเนนต์ HTML ที่ให้ข้อมูลสถานะหรือข้อผิดพลาด
-
การควบคุมการนำทาง
นี่คือคอมโพเนนต์ HTML ที่แสดงผลการนำทางของปฏิทินตามมุมมองปัจจุบัน
-
ตัวควบคุมมุมมอง
นี่คือคอมโพเนนต์ HTML ที่แสดงผลการเลือกมุมมองปฏิทิน โดยในรุ่นนี้จะมีเฉพาะมุมมองเดือนหรือสัปดาห์เท่านั้น
-
เนื้อหาปฏิทิน
นี่คือคอมโพเนนต์ HTML ที่แสดงปฏิทินจริง โดยมีตารางกริดเพื่อกำหนดเซลล์วันที่แต่ละเซลล์
-
การแสดงผลเหตุการณ์
นี่คือคอมโพเนนต์ HTML ที่แสดงรายละเอียดเหตุการณ์เมื่อมีการทริกเกอร์เหตุการณ์ ในรุ่นนี้รองรับเฉพาะทริกเกอร์เหตุการณ์ "คลิก" และ "วางเมาส์"
ตัวอย่างวิธีจัดเรียงคอมโพเนนต์เหล่านี้ด้วยโครงสร้างตาราง HTML พื้นฐาน
<table style="width: 800px;">
<tr>
<td colspan="2" valign="top">
<div style="float: left;" id="loginControlDiv"></div>
<div style="float: right;" id="statusControlDiv"></div>
</td>
</tr>
<tr>
<td valign="top">
<div id="navControlDiv"></div>
</td>
<td valign="top" align="right">
<div id="viewControlDiv"></div>
</td>
</tr>
<tr>
<td colspan="2" valign="top">
<div id="calendarBodyDiv"></div>
</td>
</tr>
<tr>
<td colspan="2" valign="top">
<div id="eventDisplayDiv"></div>
</td>
</tr>
</table>
|
|
ขั้นตอนที่ 4 - เริ่มต้นและกำหนดค่า CalVis ด้วย JavaScript
คุณปรับแต่งลักษณะการทำงานหรือลักษณะที่ปรากฏได้โดยใช้ JavaScript โปรดทราบว่าก่อนที่จะแก้ไขออบเจ็กต์ใน JavaScript ได้ เบราว์เซอร์ต้องโหลดออบเจ็กต์นั้นก่อน ดังนั้นคุณจึงต้องรอจนกว่าไลบรารีที่ขึ้นต่อกันทั้งหมดจะโหลดด้วยโปรแกรมโหลด CalVis ซึ่งทำได้ด้วยเมธอด calvis.ready() เมธอดนี้ใช้วิธีการเรียกกลับที่จะเรียกใช้เมื่อโหลดไลบรารีทั้งหมดแล้วและ CalVis พร้อมใช้งาน
window.onload = function() {
calvis.ready(callback);
}
ภายในฟังก์ชัน Callback คุณจะสร้างอินสแตนซ์ของออบเจ็กต์ calvis.Calendar ตอนนี้คุณต้องกำหนดรหัส CSS ต่างๆ (ซึ่งกำหนดจากเลย์เอาต์ HTML ในขั้นตอนที่ 3) เพื่อแมปกับคอมโพเนนต์ UI ของปฏิทินที่เกี่ยวข้อง
var calId = 'developer-calendar@google.com';
var calendar = new calvis.Calendar();
// set the CSS IDs for various visual components for the calendar container
calendar.setCalendarBody('calendarBodyDiv');
calendar.setStatusControl('statusControlDiv');
calendar.setNavControl('navControlDiv');
calendar.setViewControl('viewControlDiv');
ตอนนี้คุณระบุได้แล้วว่า CalVis ควรดึงข้อมูลจากบัญชี Google ปฏิทินใด วิธีกำหนดปฏิทินสาธารณะ
// set the calenar to pull data from this Google Calendar account calendar.setPublicCalendar(calId);
หากต้องการระบุปฏิทินส่วนตัว คุณต้องระบุคอมโพเนนต์ HTML ที่สอดคล้องกับปุ่มเข้าสู่ระบบด้วย -
// set the calenar to pull data from this Google Calendar account
calendar.setPrivateCalendar(calId);
calendar.setLoginControl('loginControlDiv');
หากต้องการแสดงรายละเอียดกิจกรรม คุณต้องระบุเมธอด Callback เพื่อให้เมื่อมีการทริกเกอร์ข้อมูลกิจกรรมในปฏิทิน (ไม่ว่าจะด้วยเหตุการณ์ "คลิก" หรือ "วางเมาส์เหนือ") ระบบจะเรียกใช้ Callback เพื่อแสดงรายละเอียดกิจกรรม ตัวอย่างการเรียกกลับเพื่อแสดงเหตุการณ์
calendar.setEventCallback('click', displayEvent);
function displayEvent(event) {
var title = event.getTitle().getText();
var date = event.getTimes()[0].getStartTime().getDate();
var content = event.getContent().getText();
var eventHtml = [;
eventHtml.push(date.toString());
eventHtml.push('<br><br>');
eventHtml.push('<b>Event title:</b> ');
eventHtml.push(title);
eventHtml.push('<br>');
eventHtml.push('<br>');
eventHtml.push('<b>Description:</b>');
eventHtml.push('<p style="font-size: 11px;">');
eventHtml.push(content);
eventHtml.push('</p>');
eventHtml.push('<br>');
document.getElementById('eventDisplayDiv').innerHTML = eventHtml.join('');
}
// set the default view to be "month"
calendar.setDefaultView('month');
// display the calendar
calendar.render();
ปรับแต่งการจัดรูปแบบ
หากต้องการปรับแต่งขนาด สี หรือรูปแบบของเซลล์วันที่แต่ละเซลล์ คุณเพียงแค่ต้องแก้ไขแอตทริบิวต์การจัดรูปแบบ CSS ของคลาส CSS ที่กำหนดไว้ล่วงหน้า 2-3 คลาส เช่น คุณสามารถแก้ไขความกว้างและความสูงของเซลล์วันที่แต่ละเซลล์ในมุมมองเดือนได้โดยการลบล้างคลาส CSS เริ่มต้น monthViewCell และ contentCell
สาธิต
การสาธิตนี้แสดงการใช้ CalVis กับการจัดรูปแบบเริ่มต้น
การสาธิตนี้แสดงการใช้ CalVis พร้อมการปรับแต่งเพื่อสร้างแมชอัปด้วย Google Maps และ YouTube API
มีส่วนร่วม
CalVis เป็นโปรเจ็กต์โอเพนซอร์สที่มีซอร์สโค้ดพร้อมให้ดาวน์โหลดผ่าน Subversion ใน Google Code Project Hosting
แหล่งข้อมูล