ก่อนอื่นก็ขอออกตัวไว้ก่อนเลยว่า ผมก็ไม่ใช่คนเก่งมาจากไหน และไม่ได้เรียนมาทางด้าน โปรแกรมมิ่ง อาจจะใช้ศัพท์แปลกๆไปบ้าง เพราะใช้วิธีการศึกษาเอาเอง และลองผิดลองถูกเอาเรื่อยๆมา ^_^
วันนี้ก็จะมาเริ่มกันตรงที่ ถ้าเราต้องการสร้าง module ขึ้นมาใช้งานเอง ใน drupal ควรจะเริ่มจากตรงไหน
โดยปรกติแล้วการสร้าง module ใน drupal จะมีไฟล์หลักๆอยู่ไม่กี่ชนิด
- ไฟล์ .info
- ไฟล์ .module
- ไฟล์ .tpl.php
- ไฟล์ .install
เพียงแค่เรามี ไฟล์ .info , .module เราก็สามารถที่จะสร้าง module ง่ายๆขึ้นมาใช้งานได้แล้วครับ
เราจะมาดูโครงสร้างภายในไฟล์ .info กันว่าประกอปไปด้วยอะไรบ้าง?
; $Id$
name = "ชื่อ module ที่จะถูกแสดงในหน้าจัดการ module"
description = "คำอธิบาย module ว่ามันทำงานยังไง"
core = 6.x //ใช้กำหนดว่า module นี้ ใช้ได้กับ drupal version ไหนบ้าง
php = 5.x //ใช้กำหนดว่า module นี้ สามารถ run ได้กับ php version ไหน
package = APP KillThewhat.com //เป็นการสร้าง group ของ module ที่เราเขียนว่าอยู่ในหมวดหมู่ไหน
dependencies[] = "ชื่อ module ที่ require" //บรรทัดนี้จะมีไม่มีก็ได้ครับ เพราะเป็นการบอกว่าก่อนการติดตั้ง module นี้ ต้องมีการ ติดตั้งใช้งาน module ไหนก่อน
เอาล่ะเรามาลองสร้าง module สักตัวง่ายๆกันก่อนครับ โดยเราจะตั้งชื่อว่า first_module
ให้เราไปสร้าง folder “first_module” ไว้ที่ sites>all>modules
หลังจากนั้นให้เราสร้างไฟล์ .info และ .module โดยให้ทั้งสองไฟล์นั้นมีชื่อเดียวกับชื่อ folder ครับ เราจะด้ไฟล์
“first_module.info” และ “first_module.module” มาสองตัว
เรามาดูกันว่าภายใน file “first_module.info” เราจะกำหนดค่าอะไรลงไปกันบ้างสำหรับ module ตัวแรกของเรานี้!
; $Id$
name = "First Module"
description = "First Module From Killthewhat.com"
core = 6.x
php = 5.x
package = APP Killthewhat.com
โดยให้ใน file “first_module.module” ยังคงเป็นไฟล์ว่างๆ เอาไว้หลังจากนั้นให้เรา save ทั้งสอง ไฟล์ แล้วเปิด browser ขึ้นมาครับ
แล้วเข้าไปที่เมนู Home > Administrator > Site building > Modules เราก็จะพบว่ามีรายชื่อ module ตัวใหม่เพิ่มเข้ามาในระบบของเรา ชื่อว่า First Module ดังรูปข้างล่าง
เพียงเท่านนี้เราก็เริ่มที่จะสร้าง module ต่างๆขึ้นใช้เองได้แล้วนะครับ
ตอนหน้า ผมจะมาสอนการเขียน function การทำงานของ block เพิ่มในโมดูล นี้อีกทีครับ วันนี้ขอหนีไปทำงานต่อก่อนครับ