วิธีการปรับเปลี่ยน ชื่อผู้ที่เข้ามาตอบโพสต์ ในส่วนการแจ้งเตือนของ phpbb

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

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

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

วิธีการปรับเปลี่ยน ชื่อผู้ที่เข้ามาตอบโพสต์ ในส่วนการแจ้งเตือนของ phpbb

Postby Ittichai_chupol » 30/09/2019 6:18 pm

- เว็บบอร์ด phpbb นั้นเป็บเว็บบอร์ดที่มี code และ ฟั่งชั่น ตางๆ ที่สนับสนุนการใช้งาน ในส่วนต่างๆของเว็บ มาให้เป้นพื้นฐาน ตั้งแต่แรกติดตั้งอยู่ นั้นจึงทำให้ผุ้พัฒนา ไม่ต้องเสียเวลากับการที่จะต้องสร้าง ส่วนต่างขึ้นมาเองทั้งหมด เพียงแค่ปรับปรุง หรือ เสริมเพียงเเค่บางส่วนเข้าไปเท่านั้น ก็ทำให้เว็บบอร์ด สามารถทำงาน ตามที่เราต้องการ โดยวิธีการที่เราจะทำให้เว็บบอร์ด phpbb สามารถทำในส่วนที่ไม่ได้มีมากับตอนติดตั้งครั่งแรกนั้น คือการส่ร้าง ส่วนขยาย(Extension)

ส่วนขยาย(Extension) จะทำให้ เว็บบอร์ด phpbb มีประสิทธิภาพ การทำงานที่ดีขึ้น โดยสามารถ ปรับเพิ่มเพิ่มแก้ไข้ ในส่วนต่างๆของ เว็บบอร์ด phpbb ได้ตามอิสระ ซึ่งในขั้นตอนพัฒนา ไม่จำเป้นที่จะต้องเข้าไปยุ่งเกี่ยว Code เดิมที่มีอยู่(แต่อาจจะมีบางครั่งที่ต้องเข้าไปแก้ไข้ เพิ่มเติม) นั้นก็ช่วยเราไม่ต้องกังวลกับการผิดพลาดที่อาจจะเกิดขึ้นได้เพราะหาก Code ของ เว็บบอร์ด phpbb เกิดความผิดพลาดก้อาจจะกระทบต่อการทำงานส่วนอื่นๆ ด้วย โดยการสร้าง Extension นั้นก็มีวิธีการพัฒนาที่ไม่ซับซ่อนมาก เพียงแต่จะมีเพียงการทำงานที่จะต้องเป็นไปตามที่เราต้องการเท่านั้น ที่จะยากนิดหน่อย

1.เพิมโคด ลงไปใน services.yml

Code: Select all

   
        notification.type.post:
        class: mindphp\m_anonymous\notification\post
        shared: false
        parent: notification.type.base
        calls:
            - [set_user_loader, ['@user_loader']]
            - [set_config, ['@config']]
        tags:
            - { name: notification.type }



2.สร้างโฟลเดอร์ ขือว่า notification

3.สร้างไฟล์ php ขึ้นมา 2 ไฟล์ในโฟลเดอร์ notification โดยตั้งชื่อว่า manager กับ post

ตัวอย่างโคดที่ปรับแก้ไขแล้ว
Selection_999(2061).png


4.โดยส่วนที่จะปรับแก้ไขในจะอยู่ในฟังชั่น public function get_title() ส่วนจะเป้ฯส่วนที่แสดงผลตอนเเจ้งเตือน

Selection_999(2061).png


5.โดยส่วนที่ปรับแก้ไขในจะอยู่ในส่วนของ $responders

6.โคด ดั้งเดิม ก่อนปรับแก้ไข

Code: Select all

        foreach ($responders as $responder) {
            if ($responder['username']) {
                    $usernames[] = $responder['username'];
            } else {
                $usernames[] = $this->user_loader->get_username($responder['poster_id'], 'no_profile');
            }
        }


7.โคดที่ปรับแก้ไขใหม่

Code: Select all

        foreach ($responders as $responder) {
            if ($responder['username']) {
                if ($moderator_permissions_forum == 1) {
                    if ($responder['username'] != 'ANONYMOUS') {

                        $sql = 'SELECT username FROM `phpbb_m_anonymous` a LEFT JOIN `phpbb_users` u ON (a.user_id = u.user_id) WHERE `anonymous_code` =  "' . $responder['username'] . '" ORDER BY a.user_id LIMIT 1  ';
                        $result = $db->sql_query($sql);
                        $row = $db->sql_fetchrow($result);

                        if ($row['username'] != null) {
                            $usernames[] = $responder['username'] . '(' . $row['username'] . ')';
                        } else {
                            $usernames[] = $responder['username'];
                        }
                    } else {
                        $usernames[] = $responder['username'];
                    }
                } else {
//                    echo $responder['poster_id'];
                    $usernames[] = $responder['username'];
                }
            } else {
                $usernames[] = $this->user_loader->get_username($responder['poster_id'], 'no_profile');
            }
        }

Return to “PHP Knowledge”

Who is online

Users browsing this forum: No registered users and 17 guests