My school map prototype
OK อันที่แล้วนี่อ่อนไหวไปหน่อย
คราวนี้ตัดเอางาน "ในหน้าที่" มาให้ดูต่อ
หลังจากเอาข้อมูลดิบออกจาก Smis แล้วก็ทดลองเขียนโปรแกรมตัวต้นแบบ (ซึ่งเป็นหน้าที่ของครูมนตรี ใช่ไหม?) มาให้ดูว่าเอาไปใช้อย่างไร
ออกตัวไว้ก่อนว่าจริง ๆ แล้วคิดจะทำลักษณะของสารสนเทศแบบนี้นานแล้วแต่ว่าจะนำไปใช้ กับอีก project หนึ่ง วันนี้หยิบมันมาปรับใช้เป็นโปรแกรมต้นแบบ ไปพลาง ๆ ก่อน ที่จะให้ดูเป็นโปรแกรมที่เขียนให้เป็น component และโมดูล สำหรับ Joomla 1.5 โดยตัวระบบเขียนในรูปแบบของ MVC (Model View Controllers) framework ถ้ามีโอกาสจะเล่าเรื่อง MVC ให้ฟัง
เริ่มกันเลยครับ
๑. ก่อนอื่น เลยจากคราวที่แล้ว เมื่อเราส่งข้อมูลออกจะมีโฟลเดอร์ที่มีชื่อเป็นตัวเลขหลายหลักภายในจะประกอบด้วย txt ไฟล์จำนวนหนึ่ง เราไม่ต้องทำอะไรมากแค่เพียง zip มันไว้ก่อน เพราะการจะอัปโหลดข้อมูลเข้าทีละไฟล์นี่มันลำบาก แต่ถ้า zip ไว้ อัปโหลดทีเดียวแล้วปล่อยให้เป็นหน้าที่ของ Joomla ในการแตกไฟล์ ตลอดจนนำเข้าข้อมูล โคตรง่ายเลยขอบอก
๒. เก็บภาพส่วน backend ของ Joomla 1.5 สำหรับการอัปโหลดไฟล์ zip ทั้งนี้โดยความช่วยเหลือจาก ไลบรารี่ของ Joomla งานที่ทำส่วนนี้เลยง่ายสุด ๆ ก็แค่อัปโหลดแล้วปล่อยให้ Joomla แตกไฟล์และนำเข้าฐานข้อมูลให้เราอัตโนมัติ๓. เก็บส่วน frontend ที่เขียนขึ้นมาง่าย ๆ กับ query ข้อมูลรหัสประจำตัว ชื่อและนามสกุลของนักเรียนในโรงเรียนบ้านกะเลงเวกทับทิมสยาม
๔. คลิ๊กรายชื่อแต่ละคน ก็จะพบข้อมูลมหาศาลรายบุคคลเพียบ มีราว ๆ ๕๐ ฟิลด์ ขี้เกียจแปลงทุกฟิลด์เลยเอาออกมาให้ดูแค่ array ด้านล่างจะเห็นตัวที่แปลงแล้วคือ ชื่อ - นามสกุล และรหัสประจำตัว
ผ่านขั้นตอนนี้ไปได้ ก็แค่ query ข้อมูลแบบต่าง ๆ ตามต้องการ เช่น อยากรู้จำนวน นักเรียนชายมีกี่คน นักเรียนหญิงมีกี่คน มีคนนำหนักตกเกณฑ์เท่าไหร่ เกินเกณฑ์เท่าไหร่ ก็สุดแล้วแต่ความต้องการ (วันนี้ไม่ได้คุยเรื่องความต้องการ output ) ส่วนข้อมูลครูก็ทำในลักษณะเดียวกัน
เอาภาพโคตรฐานข้อมูลมาให้ดู ไม่รู้จะอะไรนักหนา ๑๖๕ table แต่ละ table ก็จุโคตร field ทั้งนั้น ผ่านมาหลายปีี้ข้อมูลเหล่านี้แทบจะไม่มีประโยชน์ วันนี้ลองเอามันมาใช้ประโยชน์ดูซิ...
แถมอีกภาพ ข้อมูลนักเรียนบน phpMyAdmin
ปิดท้าย...
ภาพที่เห็นเป็นเพียง prototype ตัดจากงานตัวต้นแบบเท่านั้น เพราะยังทำต่อมากไม่ได้ หากขืนมั่วไปแบบผิด ๆ ตามแก้ลำบาก ส่วนข้อมูลที่ยังขาดเหลือเช่นโรงเรียนมัธยมที่ไม่ได้ใช้โปรแกรม SMIS สามารถก็ออกแบบหน้าจอรับข้อมูลไปตรง ๆ คิดว่าคงไม่มีปัญหาอะไร... หรืออาจใช้วิธีดึงข้อมูลจากโปรแกรม BasicSchool ก็ดูเป็นทางเลือกที่ไม่เลยนัก
คราวนี้ตัดเอางาน "ในหน้าที่" มาให้ดูต่อ
หลังจากเอาข้อมูลดิบออกจาก Smis แล้วก็ทดลองเขียนโปรแกรมตัวต้นแบบ (ซึ่งเป็นหน้าที่ของครูมนตรี ใช่ไหม?) มาให้ดูว่าเอาไปใช้อย่างไร
ออกตัวไว้ก่อนว่าจริง ๆ แล้วคิดจะทำลักษณะของสารสนเทศแบบนี้นานแล้วแต่ว่าจะนำไปใช้ กับอีก project หนึ่ง วันนี้หยิบมันมาปรับใช้เป็นโปรแกรมต้นแบบ ไปพลาง ๆ ก่อน ที่จะให้ดูเป็นโปรแกรมที่เขียนให้เป็น component และโมดูล สำหรับ Joomla 1.5 โดยตัวระบบเขียนในรูปแบบของ MVC (Model View Controllers) framework ถ้ามีโอกาสจะเล่าเรื่อง MVC ให้ฟัง
เริ่มกันเลยครับ
๑. ก่อนอื่น เลยจากคราวที่แล้ว เมื่อเราส่งข้อมูลออกจะมีโฟลเดอร์ที่มีชื่อเป็นตัวเลขหลายหลักภายในจะประกอบด้วย txt ไฟล์จำนวนหนึ่ง เราไม่ต้องทำอะไรมากแค่เพียง zip มันไว้ก่อน เพราะการจะอัปโหลดข้อมูลเข้าทีละไฟล์นี่มันลำบาก แต่ถ้า zip ไว้ อัปโหลดทีเดียวแล้วปล่อยให้เป็นหน้าที่ของ Joomla ในการแตกไฟล์ ตลอดจนนำเข้าข้อมูล โคตรง่ายเลยขอบอก
๒. เก็บภาพส่วน backend ของ Joomla 1.5 สำหรับการอัปโหลดไฟล์ zip ทั้งนี้โดยความช่วยเหลือจาก ไลบรารี่ของ Joomla งานที่ทำส่วนนี้เลยง่ายสุด ๆ ก็แค่อัปโหลดแล้วปล่อยให้ Joomla แตกไฟล์และนำเข้าฐานข้อมูลให้เราอัตโนมัติ๓. เก็บส่วน frontend ที่เขียนขึ้นมาง่าย ๆ กับ query ข้อมูลรหัสประจำตัว ชื่อและนามสกุลของนักเรียนในโรงเรียนบ้านกะเลงเวกทับทิมสยาม
๔. คลิ๊กรายชื่อแต่ละคน ก็จะพบข้อมูลมหาศาลรายบุคคลเพียบ มีราว ๆ ๕๐ ฟิลด์ ขี้เกียจแปลงทุกฟิลด์เลยเอาออกมาให้ดูแค่ array ด้านล่างจะเห็นตัวที่แปลงแล้วคือ ชื่อ - นามสกุล และรหัสประจำตัว
ผ่านขั้นตอนนี้ไปได้ ก็แค่ query ข้อมูลแบบต่าง ๆ ตามต้องการ เช่น อยากรู้จำนวน นักเรียนชายมีกี่คน นักเรียนหญิงมีกี่คน มีคนนำหนักตกเกณฑ์เท่าไหร่ เกินเกณฑ์เท่าไหร่ ก็สุดแล้วแต่ความต้องการ (วันนี้ไม่ได้คุยเรื่องความต้องการ output ) ส่วนข้อมูลครูก็ทำในลักษณะเดียวกัน
เอาภาพโคตรฐานข้อมูลมาให้ดู ไม่รู้จะอะไรนักหนา ๑๖๕ table แต่ละ table ก็จุโคตร field ทั้งนั้น ผ่านมาหลายปีี้ข้อมูลเหล่านี้แทบจะไม่มีประโยชน์ วันนี้ลองเอามันมาใช้ประโยชน์ดูซิ...
แถมอีกภาพ ข้อมูลนักเรียนบน phpMyAdmin
ปิดท้าย...
ภาพที่เห็นเป็นเพียง prototype ตัดจากงานตัวต้นแบบเท่านั้น เพราะยังทำต่อมากไม่ได้ หากขืนมั่วไปแบบผิด ๆ ตามแก้ลำบาก ส่วนข้อมูลที่ยังขาดเหลือเช่นโรงเรียนมัธยมที่ไม่ได้ใช้โปรแกรม SMIS สามารถก็ออกแบบหน้าจอรับข้อมูลไปตรง ๆ คิดว่าคงไม่มีปัญหาอะไร... หรืออาจใช้วิธีดึงข้อมูลจากโปรแกรม BasicSchool ก็ดูเป็นทางเลือกที่ไม่เลยนัก
ความคิดเห็น
ตัวอย่าง
$schoolmappath= JPATH_SITE.DS.'tmp'.DS;
if (!is_dir($schoolmappath.'schoolmap')){
JFolder::create($schoolmappath.'schoolmap',0777);
}
$uploaded = JFile::upload($filex['tmp_name'], $schoolmappath.'schoolmap'.DS.$filex['name']);
if(!$uploaded) {
return JText::_('WARNUPLOADFAILURE');
}
อย่างที่เห็นครับ
JFile::upload เป็นการเรียกใช้ฟังก์ชันอัปโหลดของ Joomla
ลองเขียนเป็นโค้ดมาก่อนซิครับผมอาจจะแนะนำได้ถูกจุดมากขึ้น