พัฒนา Joomla! 1.5 Module ตอนที่ 1
แก้ไขล่าสุด ใน วันพฤหัสบดีที่ 30 กันยายน 2553 เวลา 22:45 น. เขียนโดย ประสิทธิ์ เก็บทรัพย์ วันเสาร์ที่ 26 กันยายน 2552 เวลา 09:47 น.
วันนี้ขอนำเสนอบทความตามความเรียกร้องของสมาชิกครับ เป็นบทความง่ายๆ ในการพัฒนา Module บน Joomla! 1.5 ขอย้ำว่าการพัฒนา Module เป็นสิ่งที่ง่ายที่สุดสำหรับการพัฒนางานบน Joomla! 1.5 สำหรับมือใหม่หากท่านยังไม่รู้จัก Module ก็ขอบอกว่าบันเป็นโปรแกรมเล็กที่ถูกเรียกใช้งานบน Module Postion บนเทมเพลตของ Joomla! ซึ่งผู้ดูแล Web site สามารถย้ายตำแหน่งของมันได้จากการสั่งงานทาง Backend ปกติ Module จะมีสิ่งที่ต้องกำหนดหรือเรียกว่า parameters ซึ่งขึ้นอยู่กับการออกแบบ
ประเภทของ Module
- Standalone Module เป็น Module ที่ทำงานโดยอิสระโดยจะใช้ข้อมูลจากภายนอกผ่านทาง IFRAME หรือ WEB SERVICE เช่น Module สำหรับพยากรณ์อากาศ หรือแสดงราคาน้ำมัน
- Module และ Component ทำงานด้วยกัน โดยตัว Module จะใช้ข้อมูลจาก Database ของ Component เช่น Module สำหรับแสดงรายการ post ล่าสุดบน Web Board เป็นต้น
ขั้นตอนของการพัฒนา Module
สำหรับขั้นตอนในการพัฒนาก็ง่ายๆ นะครับ ผู้เขียนขออนุมานว่าคุณมีเครื่่องที่ติดตั้ง Joomla! 1.5 พร้อม Editor ดีๆซักตัว เช่น PHP-Eclipse หรือ PHP Designer เป็นต้นนะครับ เอาเป็นว่าเรามาเริ่มที่จุดเน้นๆ ของเราเลยนะครับ
ขั้นตอนแรกก็คือการสร้างไฟล์ XML สำหรับการติดตั้ง Module ครับ เป็นขั้นตอนที่จำเป็นมาก เนื่องจากเราต้องทำการ Config ตำแหน่งของ Module จึงจะสามารถดูผลกา่รทำงานของมันได้ ดังนั้นเราจึงต้องทำให้ Joomla! รู้จัก Module ของเรา โดยต้่องทำการติดตั้ง Module ก่อน
หลังจากเราได้ทำการติดตั้งตัว Module แล้วเราก็เข้าไปที่ Folder ของตัว Module แล้วก็ทำการพัฒนาจากตรงนั้นเลยครับ
สร้าง XML สำหรับการติดตั้ง
สำหรับ Joomla! 1.5 ตัวติดตั้งของมันจะทำการตรวจสอบจากไฟล์ XML เองว่า Extensions ที่เราทำการติดตั้งเป็น Component หรือ Module หรือ อื่นๆ และเราสามารถตั้งชื่ออะไรก็ได้นะครับ ไม่จำเป็นต้องตั้งชื่อตาม Module พูดถึงชื่อ Componenet ลืมบอกไปครับว่าตัว Module ของเราต้องมีชื่อนะครับ และจะต้องไม่ซ้ำกับของท่านอื่นๆ เช่นเราใช้ชื่อ stockprice สำหรับ module ของเรา Joomla จะกำหนด Folder /modules/mod_stockprice เป็นที่เก็บ Module ของเรา สำหรับกรณีของ Module ด้าน Frontend แต่ในกรณีกลับกันถ้าเป็น Backend Component สำหรับใช้งานโดย Admin เป็นต้นมันจะอยู่ที่ /administrator/modules/mod_stockprice ครับ
จะเห็นได้ว่าถ้าเราใช้ชื่อ module เช่นนี้จะมีโอกาสซ้ำได้ ทางออกที่ดีคือใช้ตัว prefix เช่น jnt นำหน้าอย่างกรณีสร้างโดยทีมงาน Joomlant เป็นต้นตัว module ของเราจะกลายเป็น mod_jnt_stockprice เป็นต้น สำหรับตัว Folder ก็จะเป็น /modules/mod_jnt_stockprice ครับ และไฟล์ที่ Joomla! จะมองหาเพื่อ run ตัว module คือ jnt_stockprice.php ครับ ข้อกำหนดก็มีแค่นี้ ที่เหลืออิสระเป็นของเราครับ เราอาจจะใช้การพัฒนาตามรูปแบบ MVC เพื่อใช้ประโยชน์จากคุณสมบัติ Template Override ของ Joomla! ก็ได้
ดังนั้นในขั้นตอนนี้เราต้องทำการสร้างไฟล์สองไฟล์ครับ คือ .xml และ .php ในที่นี้ผู้เขียนทำการสร้างสองไฟล์คือ mod_jnt_stockprice.php และ mod_jnt_stockprice.xml หลังจากนั้นก็ทำการ zip ไฟล์ทั้งสองนี้เป็นชื่อ mod_jnt_stockprice_j15_0.1.zip อันนี้ก็ตั้งชื่อได้อิสระครับ ให้สื่อหน่อยก็ดีครับ แล้วก็ตัว zip ไม่จำเป็นต้องเป็น zip protocol อย่างเดียวนะครับ Joomla! รองรับหลายๆ protocol เช่น .tgz .tar.gz เป็นต้น

ในรูปแรก จะเป็นโครงสร้างไฟล์สำหรับการติดตั้งครั้งแรกครับ คุณจะกำหนดแค่สองไฟล์ก่อนก็ได้ แต่ผู้เขียนเพิ่มไฟล์ index.html ซึ่งใช้เพื่อป้องกันการ list ไฟล์ใน ตัว folder ในส่วนของ folder ชื่อ tmpl นั้นจะเป็นตัวเก็บ layout file สำหรับใช้ในการแสดงผล ซึ่งประกอบไปด้วยสองไฟล์คือ default.php และ index.html สำหรับ index.html นี้ก็ copy มาจาก folder ของ Joomla! ได้เลยครับ
ทีนี้ขั้นตอนต่อไปเรามาดูไฟล์ xml สำหรับใช้ในการติดตั้งเบื่้้องต้นกันก่อนครับ ซึ่งจะมีส่วนสำคัญก็คือชื่อของ tag <filename module...> ครับเป็นตัวระบุชื่อ module จริงๆ ในส่วน name จะเป็นแค่ title ของ module ครับ

ในส่วนของไฟล์นี้ให้กำหนด Encoding เป็น UTF-8 นะครับ ขออธิบายคร่าวๆ ดังนี้ครับ
บรรทัดที่ 2 ระบุประเภทของไฟล์ว่าเป็น module และอยู่ในส่วนของ frontend ครับ เป็นค่่า defaulัt ครับไม่กำหนดก็ถือว่าเป็น frontend
บรรทัดที่ 3 อันนี้จะเป็นชื่อ text ใช้เป็นชื่อสำหรับแสดงให้ผู้ใช้งานเห็นครับ ซึ่งเขาสามารถแก้ได้ใน config ของ module อีกที
บรรทัดที่ 12 เป็น tag ระบุ file ที่จะใช้ใน module ของเราครับ โดยเราสามารถระบุเป็นไฟล์และ folder ได้
บรรทัดที่ 13 ตัวนี้สำคัญครับสำหรับ programming เป็นการกำหนดชื่อไฟล์ที่ Joomla! จะเรียกขึ้นมา run และเป็นชื่่อของ module folder ด้วย
บรรทัดที่ 15 นี่คือการระบุ folder ซึ่งใน Joomla! 1.5 เราระบุแค่ี folder ตัว Joomla! จะ copy ตัว folder และไฟล์ใน folder ให้เราเอง แต่ใน 1.0 เราต้องระบุทั้งหมด
บรรทัดที่ 17-21 เป็นส่วนของ Module Parameter ครับ
บรรทัดที่ 18 เรากำหนด parameter เป็นแบบ input text ตัว label จะแสดงให้ผู้ใช้เห็นหน้า textbox ในขณะที่ description จะแสดงเป็น tooltip
หลังจากนั้นทำการ Zip ไฟล์ใน folder ทั้งหมดแล้วก็ทำการติดตั้งในฝั่ง Backend หากทำการติดตั้งได้ เราก็สามารถเข้าไปกำหนดค่า module position ที่ต้องการแสดงผล module และเราจะเห็นค่า parameter ต่างๆ ที่สามารถกำหนดได้ รวมทั้ง parameter ที่เรากำหนดขึ้นมา ลองแก้ไขค่าและบันทึก และเรียกดูใหม่ว่าทำงานได้ถูกต้องหรือไม่

ครับ ในตอนนี้ก็ลองทดลองดูแค่นี้ก่อนครับ ทำการติดตั้ง และกำหนดค่า parameters ต่างๆ ดูก่อน ใน พัฒนา Joomla! 1.5 Module ตอนที่ 2 เราจะมาดูในส่วนของ code กันครับ
| พัฒนาระบบลงทะเบียน Online ตอนที่ 4< ย้อนกลับ | ถัดไป >พัฒนา Joomla! 1.5 Module ตอนที่ 2 |
|---|


