ส่วนขยาย(Extension) จะทำให้ เว็บบอร์ด phpbb มีประสิทธิภาพ การทำงานที่ดีขึ้น โดยสามารถ ปรับเพิ่มเพิ่มแก้ไข้ ในส่วนต่างๆของ เว็บบอร์ด phpbb ได้ตามอิสระ ซึ่งในขั้นตอนพัฒนา ไม่จำเป้นที่จะต้องเข้าไปยุ่งเกี่ยว Code เดิมที่มีอยู่(แต่อาจจะมีบางครั่งที่ต้องเข้าไปแก้ไข้ เพิ่มเติม) นั้นก็ช่วยเราไม่ต้องกังวลกับการผิดพลาดที่อาจจะเกิดขึ้นได้เพราะหาก Code ของ เว็บบอร์ด phpbb เกิดความผิดพลาดก้อาจจะกระทบต่อการทำงานส่วนอื่นๆ ด้วย โดยการสร้าง Extension นั้นก็มีวิธีการพัฒนาที่ไม่ซับซ่อนมาก เพียงแต่จะมีเพียงการทำงานที่จะต้องเป็นไปตามที่เราต้องการเท่านั้น ที่จะยากนิดหน่อย
และนอกจากนี้ ในการสร้าง พัฒนา ส่วนขยาย(Extension) นั้นยังมีการนำภาษาคอมพิวเตอร์อื่นมาใช้ร่วมกันอีก หลายภาษา ที่นอกจาก php ก็ยังมี hrml css javascript ajax
และอื่นๆ ซึ่งบางครั้งก็มีส่วนที่จำเป็นต้องพึงพาอาศัย ภาษา เหล่านี้มาช่วยสำหรับการพัฒนา Extension ให้มีประสิทธิภาพ และลดขั้นตอนการเขียน แนกำ ลงได้
ดังเช่นตัวอย่างนี้ที่กล่าวถึงนี้ คือการ link ใน ajax สำหรับใช้งานร่วมกับ phpbb
ตัวอย่างนี้เป็นการสร้างปุ่มไลค์นะครับ
1.จะต้องมีไฟล์ php ที่มีส่วนการทำงานอยู่แล้วนะครับ เพื่อใช้สำหรับส่งค่าบางตัวไปให้กับ ajax
2.สร้างตัวแปร ส่วนที่จะส่งค่าไปให้กับ ajax
โค้ด: เลือกทั้งหมด
$json_response = new \phpbb\json_response;
$json_response->send(array(
'action_like' => 'add', //กำหนดเงือนไข
'post_id' => $post, //สร้างตัวอแปรเพื่อ ส่งค่า
'topic_id' => $topic,
'user_id' => $this->user->data['user_id'],
'name_like' => $this->user->data['username'],
'limit' => $sum_totel,
'limit_count' => $this->config['button_like_show_limit'],
'count' => $user_count,
'post_user_like' => implode(', ', $name_like),
'url_user' => $this->config['script_path'],
'admin'=> $this->auth->acl_get('m_'),
));
4.จากนั้นสร้างตัวแปรใน ส่วนที่รับค่ามาจาก phpbb
โค้ด: เลือกทั้งหมด
(function ($) {
"use strict";
phpbb.addAjaxCallback('button_like', function (data) {
var name_like = data.post_user_like;
var post_id = data.post_id;
var user_like = data.user_id;
var limit = data.limit;
var sum = limit;
var admin = data.admin;
var topic_id = data.topic_id;
var url_user = data.url_user; //ที่อยู่ของไฟล์
})(jQuery);
โค้ด: เลือกทั้งหมด
if (data.action_like == 'add')
{
//code.............
}
โค้ด: เลือกทั้งหมด
var limit_test_link = '<a id="like_button" href="' + url_user + '/app.php/button_like/all_user_like/' + topic_id + '/' + post_id + '" data-ajax1="true"
data-refresh1="true" role="menuitem">' + limit + '</a>';
โค้ด: เลือกทั้งหมด
$("#like_name" + post_id).append('<span class="limit' + post_id + ' color_limit">' + limit_test_link + '</span>');
โค้ด: เลือกทั้งหมด
$('[data-ajax1]').each(function () {
var $this = $(this);
var ajax1 = $this.attr('data-ajax1');
var filter1 = $this.attr('data-filter1');
if (ajax1 !== 'false') {
var fn = (ajax1 !== 'true') ? ajax1 : null;
filter1 = (filter1 !== undefined) ? phpbb.getFunctionByName(filter1) : null;
phpbb.ajaxify({
selector: this,
refresh: $this.attr('data-refresh') !== undefined,
filter: filter1,
callback: fn
});
}
});