ส่วนขยาย(Extension) จะทำให้ เว็บบอร์ด phpbb มีประสิทธิภาพ การทำงานที่ดีขึ้น โดยสามารถ ปรับเพิ่มเพิ่มแก้ไข้ ในส่วนต่างๆของ เว็บบอร์ด phpbb ได้ตามอิสระ ซึ่งในขั้นตอนพัฒนา ไม่จำเป้นที่จะต้องเข้าไปยุ่งเกี่ยว Code เดิมที่มีอยู่(แต่อาจจะมีบางครั่งที่ต้องเข้าไปแก้ไข้ เพิ่มเติม) นั้นก็ช่วยเราไม่ต้องกังวลกับการผิดพลาดที่อาจจะเกิดขึ้นได้เพราะหาก Code ของ เว็บบอร์ด phpbb เกิดความผิดพลาดก้อาจจะกระทบต่อการทำงานส่วนอื่นๆ ด้วย โดยการสร้าง Extension นั้นก็มีวิธีการพัฒนาที่ไม่ซับซ่อนมาก เพียงแต่จะมีเพียงการทำงานที่จะต้องเป็นไปตามที่เราต้องการเท่านั้น ที่จะยากนิดหน่อย
และนอกจากนี้ ในการสร้าง พัฒนา ส่วนขยาย(Extension) นั้นยังมีการนำภาษาคอมพิวเตอร์อื่นมาใช้ร่วมกันอีก หลายภาษา ที่นอกจาก php ก็ยังมี hrml css javascript ajax
เพื่อเพิ่มประสิทธิภาพให้กับการทำงานของ ส่วนขยาย(Extension) ได้ดีและมีประสิทธิภาพเพิ่มมากขึ้นไปอีก แต่ทั้งนี้ในการติดตั้ง phpbb ครั่งแรกก็มีสิ่งเหล่านี้ติดมาให้เหมาะสมกับการใช้งานอยู่ เพียงแต่ในบางส่วนเราจะต้องเขียนเพิ่มเข้าไปเองงบางง หรือจะเป็นการนำเอาส่วนที่มีอยู่เเล้วว มาปรับเปลี่ยนให้ทำงานร่วมกับ ส่วนขยาย(Extension) ดังเช่นสิ่งที่จะทำให้ดู ต่อจากนนี้ นั้นก็คือ ปรับเปลี่ยนตำแหน่งของ index อัพโหลดรูปขึ้นมาใหม่
1.สร้างตัวแปร array ขึ้นมาก่อน
โค้ด: เลือกทั้งหมด
var input = [];
โค้ด: เลือกทั้งหมด
$.each($(this).parent().find('input[type="hidden"]'), function (i) { // ใช้ loop เพื่อ แสดงหาค่า
var nameflie = $(this).attr('name'); //หาชื่อของไฟล์รูปที่ถูกเก็บไว้
var res = nameflie.replace('[0]', '[' + index + ']');
var m = res.match(/attachment_data\[(.*)\]\[(.*)\]/); //
var n = m[2]; //เหลือเอาข้อมูลจาก array ชุดที่ 2 เท่านั้น
$(this).attr('name', res);
input[n] = $(this).val(); //เก็บค่าที่ได้ลงในตัวแปร array
});
โค้ด: เลือกทั้งหมด
data_array.push(input);
4.จากนั้นใช้ฟังชั่น phpbb.plupload.update() เพื่อส่งค่าและตรวจสอบค่าของรูปภาพที่มีอยู่ในปัจจุบัน
โค้ด: เลือกทั้งหมด
phpbb.plupload.update(data_array, 'addition', 0, downloadUrl);
5.ค้นหาค่าที่ต้องการก็คือ ชื่อไฟล์ และจำนวนของ index ที่มีอยู่ก่อนหน้านี้ในกระดานกระทู้
โค้ด: เลือกทั้งหมด
var textarea = $('#message', phpbb.plupload.form),
text = textarea.val();
var match = text.match(/\[attachment=(\d*)\](.*?)\[\/attachment\]/g);
6.วนค่าที่มีอยู่ทั้งหมดแล้วปรับเปลี่ยนค่า ตำแหน่งก่อนส่งชุดข้อความใหม่ลงในกระดานกระทู้
โค้ด: เลือกทั้งหมด
$.each(data_array, function (index) {
for (var i = 0; i < match.length; i++) {
var m = String(match[i]).match(/\[attachment=(\d*)\](.*?)\[\/attachment\]/);
if (this.real_filename == m[2]) {
text = text.replace(m[0], '[attachment=' + index + ']' + this.real_filename + '[/attachment]'); //แทนค่า index กับชื่อของไฟล์ เข้าไปใหม่
}
}
});
textarea.val(text);