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

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

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

ภาพประจำตัวสมาชิก
Ittichai_chupol
PHP VIP Members
PHP VIP Members
โพสต์: 5410
ลงทะเบียนเมื่อ: 19/09/2018 10:33 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย Ittichai_chupol »

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

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

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

โค้ด: เลือกทั้งหมด

   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 จากนั้นนำโคดตัวอย่างนี้ไปปรับใช้

โค้ด: เลือกทั้งหมด

    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 1034 times

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

โค้ด: เลือกทั้งหมด

<?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 1034 times
บทความที่เกี่ยวข้อง

การสร้าง Extension ใน phpbb
การสร้าง controller สำหรับ phpbb
Event listenner - เขียน Extension บน phpBB 3.1
วิธีการจัดทำการระบบแจ้้งเตือนใน phpbb
ขอให้วันนี้เป็นวันที่ดี
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

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

โค้ด: เลือกทั้งหมด

 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);
    }
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 79