วิธีการปรับแก้ไขข้อมูลก่อนส่งไปแสดงแจ้งเตือน ของ phpbb

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

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

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

วิธีการปรับแก้ไขข้อมูลก่อนส่งไปแสดงแจ้งเตือน ของ phpbb

Post by Ittichai_chupol » 29/11/2019 5:49 pm

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

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

ดังตัวอย่างนี้ คือการปรับแก้ไขข้อมูลก่อนที่จะมีการส่งไปแจต้งเตือน โดยจะใช้ Event ที่ phpbb พื้นฐานได้สร้างขึ้น โดย Event ที่ใช่มีชื่อว่า notification_manager_add_notifications ซึ่งเป็น Event ที่จะทำงานเมื่อมีการกดโพสต์ แล้วส่วนนี้จะทำงานจัดการข้อมูลต่างๆเพื่อส่งไปสำหรับการแจ้งตามชนิดนั้นๆ

ตัวอย่างการทำงาน

Code: Select all


    public function notification_manager_add_notifications($event) {
      $data = $event['data'];  //สร้างตัวแปรขึ้นมาเพื่อรองรับ ค่า จาก  data ที่ได้มาจาก Event
$post_id = $data['post_id'];
$options = $event['options'];
$notify_users = $event['notify_users']; //สร้างตัวแปรขึ้นมาเพื่อรองรับ ค่า จาก  notify_users ที่ได้มาจาก Event
global $auth;
if ($notify_users) {
    require_once ($this->phpbb_root_path . 'includes/functions_convert.' . $this->php_ext);
    foreach ($notify_users as $user_id => $type) {  //ดึงค่า user_id มาใช้งาน
        $sql = 'SELECT group_id
                                    FROM ' . USER_TABLE . '
                                    WHERE user_id = ' . $user_id;
        $result = $this->db->sql_query($sql);
        $data_res = $this->db->sql_freeresult($result);
        if (($data_res['user_id'] % 2) === 0) {  //ถ้า   user_id หาร 2 ลงตัว
            $post_username = 'kaimook';
        } else {//ถ้า   user_id หาร 2 ไม่ลงตัว
            $post_username = 'pupe';
        }
    }
}
$data['post_username'] = $post_username;  //แทนค่า   post_username ใหม่ ที่ได้มาจากการกำหนดเงือนไข
$event['data'] = $data; //ส่งค่าทั้งหมดไปทำงานในขั้นตอนต่อไป   }


ผลลัพธ์
PHP Knowledge-1.png
- จากภาพจะสักเกตุว่า user_id ของ Username : kon นั้น คือ 64 ซึ่งเป็นเลขที่ 2 หารลงตัว


บทความที่เพิมเติม

การสร้าง Extension ใน phpbb
การสร้าง controller สำหรับ phpbb
Event listenner - เขียน Extension บน phpBB 3.1

Post Reply

Return to “PHP Knowledge”

Users browsing this forum: No registered users and 4 guests