ส่วนขยาย(Extension) จะทำให้ เว็บบอร์ด phpbb มีประสิทธิภาพ การทำงานที่ดีขึ้น โดยสามารถ ปรับเพิ่มเพิ่มแก้ไข้ ในส่วนต่างๆของ เว็บบอร์ด phpbb ได้ตามอิสระ ซึ่งในขั้นตอนพัฒนา ไม่จำเป้นที่จะต้องเข้าไปยุ่งเกี่ยว Code เดิมที่มีอยู่(แต่อาจจะมีบางครั่งที่ต้องเข้าไปแก้ไข้ เพิ่มเติม) นั้นก็ช่วยเราไม่ต้องกังวลกับการผิดพลาดที่อาจจะเกิดขึ้นได้เพราะหาก Code ของ เว็บบอร์ด phpbb เกิดความผิดพลาดก้อาจจะกระทบต่อการทำงานส่วนอื่นๆ ด้วย โดยการสร้าง Extension นั้นก็มีวิธีการพัฒนาที่ไม่ซับซ่อนมาก เพียงแต่จะมีเพียงการทำงานที่จะต้องเป็นไปตามที่เราต้องการเท่านั้น ที่จะยากนิดหน่อย
และสำหรับผู้ที่กำลังจะสร้างพัฒนา extension ที่จะต้องดีงเนื้อหาที่มีการโพสต์ไว้มาแสดงให้เป็นแบบของเราเองนั้น ถ้าเราทำการดึงเนื้อหาของโพสนั้นออกมาเลย บางครั่งจะได้เนื้อหาที่ไม่เหมือนกับโพสต์ที่เรานำมาใช้ เพราะ มันจะมี ส่วนที่เป็น bbcode ติดมาด้วยและทำให้เนื้อหาส่วนนั้นหายไป ในกรณีที่เราดึงมาเเบบตรง ดังนั้นให้การที่เราจะดึงเนื้อหาที่โพสต์มาแสดง จะต้องใช้ฟังชั้นมาช่วยเพราะที่จะแสดงค่าออกมาได้ ดังตัวอย่างงนี้
1.จะต้อง เขียน SQL เพื่อเรียกค่าของโพสต์ที่เราต้องการออกมาก่อน
โค้ด: เลือกทั้งหมด
$sql_ary = array(
'SELECT' => '*',
'FROM' => array(
POSTS_TABLE => 'p',
),
'LEFT_JOIN' => array(
array(
'FROM' => array(USERS_TABLE => 'u'),
'ON' => 'p.poster_id = u.user_id',
),
array(
'FROM' => array(TOPICS_TABLE => 't'),
'ON' => 'p.topic_id = t.topic_id',
)
),
'WHERE' => 'post_id = ' . $post_id,
);
$sql = $this->db->sql_build_query('SELECT', $sql_ary);
$result = $this->db->sql_query($sql);
$row = $this->db->sql_fetchrow($result);
ประกอบด้วย
โค้ด: เลือกทั้งหมด
$row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield']
โค้ด: เลือกทั้งหมด
generate_text_for_display()
โค้ด: เลือกทั้งหมด
$parse_flags = ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
โค้ด: เลือกทั้งหมด
$message = generate_text_for_display($row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, true);
** รวมโคดทั้งหมด
โค้ด: เลือกทั้งหมด
$sql_ary = array(
'SELECT' => '*',
'FROM' => array(
POSTS_TABLE => 'p',
),
'LEFT_JOIN' => array(
array(
'FROM' => array(USERS_TABLE => 'u'),
'ON' => 'p.poster_id = u.user_id',
),
array(
'FROM' => array(TOPICS_TABLE => 't'),
'ON' => 'p.topic_id = t.topic_id',
)
),
'WHERE' => 'post_id = ' . $post_id,
);
$sql = $this->db->sql_build_query('SELECT', $sql_ary);
$result = $this->db->sql_query($sql);
$row = $this->db->sql_fetchrow($result);
// ส่วนที่แสดงข้อความ จาก bbcode
$parse_flags = ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
$message = generate_text_for_display($row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, true);