วิธีการปรับเปลี่ยนค่าการแสดงผลในหน้าแสดงบอร์ด ใน phpbb

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
Ittichai_chupol
PHP VIP Members
PHP VIP Members
Posts: 5410
Joined: 19/09/2018 10:33 am

วิธีการปรับเปลี่ยนค่าการแสดงผลในหน้าแสดงบอร์ด ใน phpbb

Post by Ittichai_chupol »

ในการใช้งานเว็บบอร์ด phpbb สิ่งที่ได้พบเป็นสิ่งเเรกเมื่อเข้ามาใช้งานนั้น ก็หน้าหลัก โดยในหน้าหลักของ เว็บบอร์ด phpbb จะมีการแสดงบอร์ดที่สมาชิกเข้าไปใช้งานได้อยู่และจะมีรายชื่อของ กระทู้ กับ ผู้โพสต์ ล่าสุดเอาไว้ ในสมาชิกได้เห็น โดยในส่วนนี้ก็คือการแสดงผลโดย html แล้ว ก็จตะมีส่วนที่ เป็น php สำหรับการดึงข้อมูลมาใช้งาน ซึ่งในกรณีปกติ ผู้พัฒนาจะต้องปรับแก้ไข ก็จะต้องเข้าไปแก้ไขในไฟล์เหล่านี้ เพื่อปรับผลลัพธ์ที่แสดงให้เป็นแบบที่ต้องการ แต่ทั้งนี้ใน phpbb นั้นก็มีสิ่งที่เรียกว่า Event มาช่วยเพิ่มความสะดวกให้กับผู้พัฒนา แต่ Event ของ phpbb ก็มีอยู่มากมาย แต่ Event สำหรับการปรับเปลี่ยนหน้าบอร์ดนั้นก็คือ Event ที่มีชื่อว่า
display_forums_modify_template_vars


โดยการจะใช้งาน Event display_forums_modify_template_vars นั้นมีขั้นตอนดังนี้

1.เรียกใช้งาน Event

Code: Select all


static public function getSubscribedEvents() {
        return array(
            'core.display_forums_modify_template_vars' => 'display_forums_modify_template_vars', 
    }

2.จากนั้นมาดูก่อนว่าใน Event display_forums_modify_template_vars มีค่าอะไรบาง เพื่อจะปรับเปลี่ยนได้ตามสิ่งที่ต้องการ

Code: Select all

 public function display_forums_modify_template_vars($event) {
        if ($this->config['m_anonymous_post_enabled']) {
            global $auth;
            $data_name = $event['forum_row'];
            print_r($data_name);
    }

ค่าทั้งหมดที่อยู่ใน $event['forum_row'] ที่สามารถจะนำปรับแก้ไข

Code: Select all

Array
(
    [S_IS_CAT] => 
    [S_NO_CAT] => 
    [S_IS_LINK] => 
    [S_UNREAD_FORUM] => 1
    [S_AUTH_READ] => 1
    [S_LOCKED_FORUM] => 
    [S_LIST_SUBFORUMS] => 1
    [S_SUBFORUMS] => 
    [S_DISPLAY_SUBJECT] => 1
    [S_FEED_ENABLED] => 1
    [FORUM_ID] => 2
    [FORUM_NAME] => Your first forum
    [FORUM_DESC] => Description of your first forum.
    [TOPICS] => 18
    [POSTS] => 106
    [FORUM_IMG_STYLE] => forum_unread
    [FORUM_FOLDER_IMG] => <span class="imageset forum_unread" title="มีหลายโพสต์ที่ยังไม่ได้อ่าน">มีหลายโพสต์ที่ยังไม่ได้อ่าน</span>
    [FORUM_FOLDER_IMG_ALT] => มีหลายโพสต์ที่ยังไม่ได้อ่าน
    [FORUM_IMAGE] => 
    [FORUM_IMAGE_SRC] => 
    [LAST_POST_SUBJECT] => Re: ss
    [LAST_POST_SUBJECT_TRUNCATED] => Re: ss
    [LAST_POST_TIME] => พุธ ธ.ค. 18, 2019 5:56 pm
    [LAST_POSTER] => chompu
    [LAST_POSTER_COLOUR] => 
    [LAST_POSTER_FULL] => <a href="./memberlist.php?mode=viewprofile&amp;u=50" class="username">chompu</a>
    [MODERATORS] => 
    [SUBFORUMS] => 
    [L_SUBFORUM_STR] => 
    [L_MODERATOR_STR] => 
    [U_UNAPPROVED_TOPICS] => 
    [U_UNAPPROVED_POSTS] => 
    [U_VIEWFORUM] => ./viewforum.php?f=2
    [U_LAST_POSTER] => ./memberlist.php?mode=viewprofile&amp;u=50
    [U_LAST_POST] => ./viewtopic.php?f=2&amp;p=974#p974
)

3.โดยตัวอย่างที่จะทำนี้ก็คือ การจะปรับค่า ของชื่อผู้ที่มาโพสต์ล่าสุด

Code: Select all

 public function display_forums_modify_template_vars($event) {
     
            global $auth;
            $data_name = $event['forum_row']; //สร้างตัวแปร เพื่อจะเก็บค่าจาก $event['forum_row'] เพื่อจะได้ปรับแก้ไข
           $data_name['LAST_POSTER_FULL'] = "hello"; // ปรับค่าผู้ที่มาโพสต์ล่าสุด ให้เป็นชื่อว่า hello
           $event['forum_row'] = $data_name; //ส่งค่ากลับไปเพื่อแสดง
            
        }
    }

ผลก่อนการใช้งาน
Selection_999(2320).png
Selection_999(2320).png (27.55 KiB) Viewed 141 times
ผลหลังการใช้งาน
Selection_999(2321).png
Selection_999(2321).png (22.4 KiB) Viewed 141 times
บทความที่เกี่ยวข้อง
การสร้าง Extension ใน phpbb
การสร้าง controller สำหรับ phpbb
Event listenner - เขียน Extension บน phpBB 3.1
ขอให้วันนี้เป็นวันที่ดี

  • Similar Topics
    Replies
    Views
    Last post

Return to “PHP Knowledge”

Who is online

Users browsing this forum: No registered users and 8 guests