วิธีการ insert ข้อมูลในขั้นตอนติดตั้ง Extension phpbb

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

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

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

วิธีการ insert ข้อมูลในขั้นตอนติดตั้ง Extension phpbb

Post by Ittichai_chupol » 11/02/2020 5:55 pm

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

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

1.เข้าไปในไฟล์ติดตั้ง ของ Extension จากนั้นนำโคดตัวอย่างนี้ไปปรับใช้

Code: Select all

   public function update_data() {
        return array(
            array('custom', array(array($this, 'md_package'))),  // จะเป็น โมดูลที่จะสร้างขึ้นมาเอง md_package คือชื่อโมดูลที่ต้องการ
            array('module.add', array(
                    'acp',
                    'ACP_CAT_DOT_MODS',
                    'ACP_M_MEMBER_PACKAGE_TITLE'
                )),
            array('module.add', array(
                    'acp',
                    'ACP_M_MEMBER_PACKAGE_TITLE',
                    array(
                        'module_basename' => '\test\m_member_packages\acp\m_member_package_module',
                        'modes' => array('topic_m_member_package'),
                    ),
                )),
        );
    }
2.สร้างโมดูล ดังกล่าวข้างต้น ในไฟล์ติดตั้ง ของ Extension จากนั้นนำโคดตัวอย่างนี้ไปปรับใช้

Code: Select all

    public function md_package() {
        global $request, $user;
        $acp_manager_bbcode = new \test\m_member_packages\core\acp_m_member_packages($this->db, $request, $user, $this->phpbb_root_path, $this->php_ext);  //ตำแหน่งที่จักเก็บไฟล์ที่เป็นส่วนการทำงานสำหรับการ เพิ่มข้อมูล
        $acp_manager_bbcode->install_package(); //เรียกใช้งาน ฟังชั่น ที่สร้างมาเพิ่มข้อมูล
    }
3.สร้างโฟลเดอร์ใน Extension โดยใช้ชื่อ ว่า core แล้วสร้างไฟล์ php ตามชื่อที่กำหนดตำแหน่งไว้
PHP Knowledge-1.png
PHP Knowledge-1.png (11.08 KiB) Viewed 112 times

4.โดยในไฟล์ acp_m_member_packages ก็ทำการใส่โคดดังนี้ครับ

Code: Select all

<?php

namespace mindphp\m_member_packages\core;  

class acp_m_member_packages {

    protected $db;/** @var \phpbb\request\request */
    protected $request;/** @var \phpbb\user */
    protected $user;/** @var string */
    protected $phpbb_root_path;/** @var string */
    protected $php_ext;

    public function __construct(\phpbb\db\driver\driver_interface $db, \phpbb\request\request $request, \phpbb\user $user, $phpbb_root_path, $php_ext) {
        $this->db = $db;
        $this->request = $request;
        $this->user = $user;
        $this->phpbb_root_path = $phpbb_root_path;
        $this->php_ext = $php_ext;
    }

    public function install_package() { //ฟังชั่นที่มีการเรียกใช้งานมาจากไฟล์ติดตั้ง
        $sql = "INSERT INTO `phpbb_m_package_data` (`package_id`, `package_name`, `group_id`, `package_price`, `package_date`, `package_date_noti`, `package_starus`) VALUES
        (1, 'ฟรี', 2, '500.00', '30', '10', 0),
        (2, '1 ปี', 2, '500.00', '365', '30', 1),
        (3, '3 ปี', 4, '1200.00', '1095', '40', 1),
        (4, '4 ปี', 4, '1500.00', '1460', '45', 1),
        (5, '5 ปี', 6, '2000.00', '1852', '60', 1);";
       $this->db->sql_query($sql);
    }

}
ผลลัพธ์เมื่อติดตั้ง

Selection_999(2441).png
Selection_999(2441).png (29.4 KiB) Viewed 112 times
บทความที่เกี่ยวข้อง

การสร้าง Extension ใน phpbb
การสร้าง controller สำหรับ phpbb
Event listenner - เขียน Extension บน phpBB 3.1
วิธีการจัดทำการระบบแจ้้งเตือนใน phpbb
私を傷つけるすべてが終了します。

thatsawan
PHP VIP Members
PHP VIP Members
Posts: 21794
Joined: 31/03/2014 10:02 am
Contact:

Re: วิธีการ insert ข้อมูลในขั้นตอนติดตั้ง Extension phpbb

Post by thatsawan » 11/02/2020 6:01 pm

เขียนในไฟล์เดียวกันได้เลย จริงไม่ต้องเเยกออกมา ก็ได้

Code: Select all

 public function md_package() {
  $sql = "INSERT INTO `phpbb_m_package_data` (`package_id`, `package_name`, `group_id`, `package_price`, `package_date`, `package_date_noti`, `package_starus`) VALUES
        (1, 'ฟรี', 2, '500.00', '30', '10', 0),
        (2, '1 ปี', 2, '500.00', '365', '30', 1),
        (3, '3 ปี', 4, '1200.00', '1095', '40', 1),
        (4, '4 ปี', 4, '1500.00', '1460', '45', 1),
        (5, '5 ปี', 6, '2000.00', '1852', '60', 1);";
       $this->db->sql_query($sql);
    }

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “PHP Knowledge”

Who is online

Users browsing this forum: Bing [Bot] and 16 guests