Growing Joomla! Community is Our Goal.
พฤหัสบดี 11 มีนาคม 2553
   
Text Size

พัฒนา Joomla! 1.5 Module ตอนที่ 2

( 2 Votes )

ในตอนที่แล้วของการพัฒนา module เรามาถึงตอนที่ทำการติดตั้งและลองกำหนดค่า parameters ต่างๆ สำหรับ mod_jnt_stockprice ของเรานะครับในตอนนี้เราจะมาดูในส่วนของ code ทีั่ทำการแสดงผลกันครับ ซึ่งใน Joomla! ไม่ได้มีข้อกำหนดมากไปกว่าการใช้ชื่อไฟล์ของ module เป็น mod_mymodulename.php หลังจากนั้น Joomla! ให้อิสระเราในการพัฒนาเต็มที่ครับ แต่มีวิธการในการพัฒนาที่เป็นแบบ MVC ซึ่งจะทำให้สามารถใช้งาน Feature ที่ชื่อว่า Template Override ได้ คือผู้ใช้สามารถเปลี่ยนรูปแบบการแสดงผลของเราใน template ที่ใช้งานอยู่ได้โดยไม่กระทบกับ code ของเรา

สำหรับ module ตัวนี้เป็น module สำหรับการแสดงราคาหุ้นจาก settrade.com ครับ แต่มีเงื่อนไขว่าคุณต้องทำการขออนุญาติใช้่งานข้อมูลจาก settrade.com โดยเราต้องระบุ stock code และ ค่าของ Key ที่ได้รับจาก settrade.com ครับ และในคำขอเราต้องระบุด้วยว่าเราจะใช้กับ domain ใด ดังนั้นตัวอย่างตัวนี้ ก็เป็นตัวง่ายๆ โดยการแสดงข้อมูลจะทำผ่าน IFRAME และเป็น module แบบ Standalone ครับ

เรามาดู code กันเลยครับ

 

บรรทัดที่ 2 เป็นการกำหนดเพื่่อป้องกันไม่ให้มีการ run ตัวไฟล์นี้โดยตรง เป็นเหตุผลทางด้านความปลอดภัยครับ เพราะถ้าสามารถ run ตรงได้ค่าตัวแปรจะไม่ถูกกรองโดย Joomla API

บรรทัดที่ 5 เราทำการอ่านค่า parameter ชื่อ stockcode โดยกำหนดค่าเริ่มต้นเป็น JTS

บรรทัดที่ 6-8 ก็เช่นเดียวกันครับ เป็นการอ่านค่า parameters ต่างๆ

บรรทัดที่ 9 เป็นการ load ไฟล์ layout สำหรับการแสดงผล โดยใช้งาน Class JModuleHelper ซึ่งทำให้ Module ของเรารองรับการทำ layout override ดังที่กล่าวมาแล้ว โดย Joomla จะทำการค้นหาไฟล์ layout ใน folder ของ template คือ /templates/<template_name>/html/mod_jnt_stockprice/default.php แทนไฟล์ใน folder ของ module

สำหรับไฟล์ layout ซึ่งค่าโดยปริยายคือ default.php เป็นการแสดงผลล้วนๆ ครับ โดยใช้ค่าที่เราได้จาก parameter มาใช้ในการแสดงผล

ดูในไฟล์ครับ

เมื่่อถึงตอนนี้เราก็ได้ module ง่ายๆ ตัวหนึ่งแล้วครับ โดยผู้เขียนเพิ่ม parameter ชื่อ Key เข้าไปในไฟล์ XML อีกตัวหนึ่ง ตอนที่เราเพิ่มนี้ก็เพิ่มเข้าไปใน Folder ที่เราติดตั้งผ่าน Joomla นะครับ เมื่อทำการทดสอบแล้ว ได้ผลที่พอใจก็ืทำการ Zip ไฟล์ทั้งหมดใหม่ และสามารถแจกจ่ายหรือนำไปติดตั้งใน Site อื่นๆ ได้เลยครับ

นอกจาก Module parameter แล้วในส่วนของ XML เรายังสามารถเพิ่มกลุ่มของ parameters อื่นๆ ได้อีกครับ เช่น Advance Group

สำหรับในตอนหน้าจะพูดถึงการพัฒนา module ที่ใช้ข้อมูลจากฐานข้อมูลของ Joomla! บ้างครับ เพื่อจะได้เห็นแง่มุมของการใช้งาน template override หรือบางทีจะนำเสนอการใช้งาน Web Service ในกา่รอ่านค่าราคาน้ำมันของ ปตท. ในโอกาสต่อไปครับ

JoomlaWatch Stats 1.2.8b_12-dev by Matej Koval
Restore Default Settings