ส่วนขยาย(Extension) จะทำให้ เว็บบอร์ด phpbb มีประสิทธิภาพ การทำงานที่ดีขึ้น โดยสามารถ ปรับเพิ่มเพิ่มแก้ไข้ ในส่วนต่างๆของ เว็บบอร์ด phpbb ได้ตามอิสระ ซึ่งในขั้นตอนพัฒนา ไม่จำเป้นที่จะต้องเข้าไปยุ่งเกี่ยว Code เดิมที่มีอยู่(แต่อาจจะมีบางครั่งที่ต้องเข้าไปแก้ไข้ เพิ่มเติม) นั้นก็ช่วยเราไม่ต้องกังวลกับการผิดพลาดที่อาจจะเกิดขึ้นได้เพราะหาก Code ของ เว็บบอร์ด phpbb เกิดความผิดพลาดก้อาจจะกระทบต่อการทำงานส่วนอื่นๆ ด้วย โดยการสร้าง Extension นั้นก็มีวิธีการพัฒนาที่ไม่ซับซ่อนมาก เพียงแต่จะมีเพียงการทำงานที่จะต้องเป็นไปตามที่เราต้องการเท่านั้น ที่จะยากนิดหน่อย
- ใน Extension นั้นเราจะทำการสร้างส่วนการใช้งานขึ้นให้กับ phpbb ใหม่เลย หรืออาจะทำเพียงการปรับข้อมูลเฉพาะบางส่วน ของข้อมูลที่มีอยู่ก็ได้ โดยการปรับข้อมูลบางส่วนนั้น จะทำได้ง่ายกว่าเนื่องจากใน phpbb จะมีส่วนที่ที่เรียกว่า Event อยู่ซึ่งเป็นส่วนที่จะเก็บข้อมูลของส่วนต่างๆที่เป็นพื้ยนฐานการทำงานของ phpbb อยู่เเล้วโดยจะลดการเขียนโคดลงมาได้อยากมาก โดยเฉพาะการปรับเปลี่ยนข้อมูลเพียงเล็กๆน้อยๆ ดังตัวอย่างที่ทำต่อจากนี้ ก็คือการใช้งานเพื่อปรับแก้ไขข้อมูลชื่อผู้โพสต์ ก่อนส่งไปทำการแจ้งเตือน ในกรณีที่มีการแก้ไขของการ Qoute ใน phpbb
1.Event ที่จะใช้งานนั้น คือ core.modify_submit_notification_data
-- โดย Event นี้จะเป็น Event ที่ให้ผู้พัฒนา สามารถเป็นแก้ไข notification data ที่จะส่งไปทำการบันทึกลงในฐานข้อมูล แล้วจะแสดงไปยังส่วนของ เมนูเเจ้งเตือน
2.จากนั้นนำมากสร้างเป็นฟังชั่น ดังนี้
โค้ด: เลือกทั้งหมด
public function modify_submit_notification_data($event) {
}
3.สร้างตัวแปร เพื่อที่จะรับค่า notification data ชุดเดิมที่มีอยู่ก่อนหน้า
4.ปรับแก้ไขข้อมูล โดยการสส่งค่าไปแทนค่าเดิมที่มีอยู่เดิม ซึ่งเดินที่ $event['notification_data'] จะมีรูปแบบเป็น Array ดังนั้นการแทนค่าจะถึงเรียกออกมาในรูปแบบ Array ก่อนการแทนค่านั้นๆ$quote = $event['notification_data'];
โค้ด: เลือกทั้งหมด
$quote['post_username'] = "test" ;
โค้ด: เลือกทั้งหมด
$event['notification_data'] = $quote;
โคดที่ใช้งานจริงทั้งหมด
โค้ด: เลือกทั้งหมด
public function modify_submit_notification_data($event) {
$quote = $event['notification_data'];
if ($event['mode'] == 'edit') { //กรณ๊ที่เป็นการแก้ไขโพสต์
$quote['poster_id'] = ANONYMOUS;
$quote['post_username'] = "test" ;
$event['notification_data'] = $quote;
}
}
}