- เว็บบอร์ด
phpbb นั้นเป็บเว็บบอร์ดที่มี
code และ ฟั่งชั่น ตางๆ ที่สนับสนุนการใช้งาน ในส่วนต่างๆของเว็บ มาให้เป้นพื้นฐาน ตั้งแต่แรกติดตั้งอยู่ นั้นจึงทำให้ผุ้พัฒนา ไม่ต้องเสียเวลากับการที่จะต้องสร้าง ส่วนต่างขึ้นมาเองทั้งหมด เพียงแค่ปรับปรุง หรือ เสริมเพียงเเค่บางส่วนเข้าไปเท่านั้น ก็ทำให้เว็บบอร์ด สามารถทำงาน ตามที่เราต้องการ โดยวิธีการที่เราจะทำให้เว็บบอร์ด phpbb สามารถทำในส่วนที่ไม่ได้มีมากับตอนติดตั้งครั่งแรกนั้น คือการส่ร้าง ส่วนขยาย(Extension)
ส่วนขยาย(Extension) จะทำให้ เว็บบอร์ด phpbb มีประสิทธิภาพ การทำงานที่ดีขึ้น โดยสามารถ ปรับเพิ่มเพิ่มแก้ไข้ ในส่วนต่างๆของ เว็บบอร์ด phpbb ได้ตามอิสระ ซึ่งในขั้นตอนพัฒนา ไม่จำเป้นที่จะต้องเข้าไปยุ่งเกี่ยว Code เดิมที่มีอยู่(แต่อาจจะมีบางครั่งที่ต้องเข้าไปแก้ไข้ เพิ่มเติม) นั้นก็ช่วยเราไม่ต้องกังวลกับการผิดพลาดที่อาจจะเกิดขึ้นได้เพราะหาก Code ของ เว็บบอร์ด phpbb เกิดความผิดพลาดก้อาจจะกระทบต่อการทำงานส่วนอื่นๆ ด้วย โดยการสร้าง Extension นั้นก็มีวิธีการพัฒนาที่ไม่ซับซ่อนมาก เพียงแต่จะมีเพียงการทำงานที่จะต้องเป็นไปตามที่เราต้องการเท่านั้น ที่จะยากนิดหน่อย
- ซึ่งทั้งนี้ การที่จะพัฒนา Extension เพื่อนำมาใช้งานนั้นบางครั่งอาจจะต้องคำนึกถึงการ Query Sql ข้อมูลจากฐานข้อมูลเพื่อนำมาใช้พัฒนา Extension ด้วยว่า Query Sql ในแต่ละครั่งนั้น ควรจะไม่ทำให้เพื่อภาระต้องผลการประมมวลผลลัพธ์ ของ phpbb พื้นฐานที่มากเกินไป โดยเฉพาะการ Query Sql ข้อมูลแบบวนลูปตามจำนวนโพสต์
วันนี้ผมจงจะแนะนำ Event ที่ช่วยให้สามารถดึงข้อมูลโพสต์ โดยที่ไม่ต้องวนรับค่า post_id หลายๆครับ
โดย Event ที่ใช้คือ
viewtopic_modify_post_data
โดย Event viewtopic_modify_post_data สามารถดึงค่า post_id ของ topic ได้จากวิธีการเขียนโคด ดังนี้
โค้ด: เลือกทั้งหมด
sql = ' SELECT *
FROM ' . $this->table_prefix . 'm_like' . $numlike . '
WHERE post_id IN ' . ' (' . implode(',', $event['post_list']) . ')' . ' AND staus_like = 1';
$result = $this->db->sql_query($sql);
โดย $event['post_list'] จะดึง post_id เฉาพะที่มีการแสดงในหน้านั้นๆ
ตัวอย่าง คือ ถ้า topic ที่ต้องการมี จำนวนโพสต์ 200 โพสต์ แล้วแบ่งหน้าไว้ที่ 10 โพสต์ต่อหน้า $event['post_list'] จะดึง post_id แค่ 10 โพสต์ที่แสดงหน้านั้นๆ
และจะมีการ Query Sql เพียงแค่ครั่งเดียวเท่านั้น
ตัวอย่างผม การ Query Sql
โค้ด: เลือกทั้งหมด
SELECT * FROM phpbb_m_like2 WHERE post_id IN (68,69) AND staus_like = 1
จากตัวอย่างโพสต์ที่แสดงเพียง 2 โพสต์ต่อหน้า
หรือถ้าหากต้องการต้องดึงข้อมูล user_id ก็สามารถทำได้จาก Event viewtopic_modify_post_data ได้เช่นกัน ดังนี้
โค้ด: เลือกทั้งหมด
$user_id_s = array_keys($event['user_cache']);
แล้วนำตัวแปร $user_id_s ไปใช้ Query Sql ได้ดังนี้ครับ
โค้ด: เลือกทั้งหมด
$sql = ' SELECT *
FROM ' . $this->table_prefix . 'm_like' . $numlike . '
WHERE post_id IN ' . ' (' . implode(',', $event['post_list']) . ')' . ' AND staus_like = 1';
$result = $this->db->sql_query($sql);
ทั้งนี้สามารถดู Event phpbb อื่นๆได้จาก
ที่นี้
- เว็บบอร์ด [url=https://www.mindphp.com/บทความ/24-cms-php/157-phpbb-คืออะไร.html]phpbb[/url] นั้นเป็บเว็บบอร์ดที่มี [url=https://www.mindphp.com/คู่มือ/73-คืออะไร/3674-code-โค้ด-และ-ภาษาทางด้านคอมพิวเตอร์-คืออะไร.html]code[/url] และ ฟั่งชั่น ตางๆ ที่สนับสนุนการใช้งาน ในส่วนต่างๆของเว็บ มาให้เป้นพื้นฐาน ตั้งแต่แรกติดตั้งอยู่ นั้นจึงทำให้ผุ้พัฒนา ไม่ต้องเสียเวลากับการที่จะต้องสร้าง ส่วนต่างขึ้นมาเองทั้งหมด เพียงแค่ปรับปรุง หรือ เสริมเพียงเเค่บางส่วนเข้าไปเท่านั้น ก็ทำให้เว็บบอร์ด สามารถทำงาน ตามที่เราต้องการ โดยวิธีการที่เราจะทำให้เว็บบอร์ด phpbb สามารถทำในส่วนที่ไม่ได้มีมากับตอนติดตั้งครั่งแรกนั้น คือการส่ร้าง ส่วนขยาย(Extension)
[url=https://www.mindphp.com/บทความ/32-phpbb/3211-extension-phpbb.html]ส่วนขยาย(Extension)[/url] จะทำให้ เว็บบอร์ด phpbb มีประสิทธิภาพ การทำงานที่ดีขึ้น โดยสามารถ ปรับเพิ่มเพิ่มแก้ไข้ ในส่วนต่างๆของ เว็บบอร์ด phpbb ได้ตามอิสระ ซึ่งในขั้นตอนพัฒนา ไม่จำเป้นที่จะต้องเข้าไปยุ่งเกี่ยว Code เดิมที่มีอยู่(แต่อาจจะมีบางครั่งที่ต้องเข้าไปแก้ไข้ เพิ่มเติม) นั้นก็ช่วยเราไม่ต้องกังวลกับการผิดพลาดที่อาจจะเกิดขึ้นได้เพราะหาก Code ของ เว็บบอร์ด phpbb เกิดความผิดพลาดก้อาจจะกระทบต่อการทำงานส่วนอื่นๆ ด้วย โดยการสร้าง Extension นั้นก็มีวิธีการพัฒนาที่ไม่ซับซ่อนมาก เพียงแต่จะมีเพียงการทำงานที่จะต้องเป็นไปตามที่เราต้องการเท่านั้น ที่จะยากนิดหน่อย
- ซึ่งทั้งนี้ การที่จะพัฒนา Extension เพื่อนำมาใช้งานนั้นบางครั่งอาจจะต้องคำนึกถึงการ Query Sql ข้อมูลจากฐานข้อมูลเพื่อนำมาใช้พัฒนา Extension ด้วยว่า Query Sql ในแต่ละครั่งนั้น ควรจะไม่ทำให้เพื่อภาระต้องผลการประมมวลผลลัพธ์ ของ phpbb พื้นฐานที่มากเกินไป โดยเฉพาะการ Query Sql ข้อมูลแบบวนลูปตามจำนวนโพสต์
วันนี้ผมจงจะแนะนำ Event ที่ช่วยให้สามารถดึงข้อมูลโพสต์ โดยที่ไม่ต้องวนรับค่า post_id หลายๆครับ
โดย Event ที่ใช้คือ [quote]viewtopic_modify_post_data[/quote]
โดย Event viewtopic_modify_post_data สามารถดึงค่า post_id ของ topic ได้จากวิธีการเขียนโคด ดังนี้
[code]
sql = ' SELECT *
FROM ' . $this->table_prefix . 'm_like' . $numlike . '
WHERE post_id IN ' . ' (' . implode(',', $event['post_list']) . ')' . ' AND staus_like = 1';
$result = $this->db->sql_query($sql);
[/code]
โดย $event['post_list'] จะดึง post_id เฉาพะที่มีการแสดงในหน้านั้นๆ
ตัวอย่าง คือ ถ้า topic ที่ต้องการมี จำนวนโพสต์ 200 โพสต์ แล้วแบ่งหน้าไว้ที่ 10 โพสต์ต่อหน้า $event['post_list'] จะดึง post_id แค่ 10 โพสต์ที่แสดงหน้านั้นๆ
และจะมีการ Query Sql เพียงแค่ครั่งเดียวเท่านั้น
ตัวอย่างผม การ Query Sql
[code]SELECT * FROM phpbb_m_like2 WHERE post_id IN (68,69) AND staus_like = 1[/code]
จากตัวอย่างโพสต์ที่แสดงเพียง 2 โพสต์ต่อหน้า
[attachment=0]Selection_999(1926).png[/attachment]
หรือถ้าหากต้องการต้องดึงข้อมูล user_id ก็สามารถทำได้จาก Event viewtopic_modify_post_data ได้เช่นกัน ดังนี้
[code] $user_id_s = array_keys($event['user_cache']);[/code]
แล้วนำตัวแปร $user_id_s ไปใช้ Query Sql ได้ดังนี้ครับ
[code] $sql = ' SELECT *
FROM ' . $this->table_prefix . 'm_like' . $numlike . '
WHERE post_id IN ' . ' (' . implode(',', $event['post_list']) . ')' . ' AND staus_like = 1';
$result = $this->db->sql_query($sql);
[/code]
ทั้งนี้สามารถดู Event phpbb อื่นๆได้จาก [url=https://wiki.phpbb.com/Event_List]ที่นี้[/url]