วิธีการสร้าง Extension ในส่วนของ User control panel

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

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

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

วิธีการสร้าง Extension ในส่วนของ User control panel

Post by Ittichai_chupol »

ในดการสร้าง Extension ส่วนใหญ่นนั้น จะเป็นการสร้างที่มีจุดควบคุมอยู่ในส่วนของ acp ที่เป็นส่วนที่มีเพียงแค่ผูที่มีสิทธ์จะสามารถเข้าถึงได้เทานั้นและจะใช้ Event ทั้ง ที่เป็น php หรือ html ในการปรับเปลี่ยนข้อมูลผลการแสดง ต่างๆในหน้าการแสดงของเว็บบอร์ด phpbb แต่ทั้งนี้ เว็บบอร์ด phpbb ก็ยังมีส่วนที่เป็นจุดควบคุมการที่อยู่ที่อีกส่วนหนึ่งก็คือส่วนที่สมาชิกทุกๆคนสามารถที่เข้าถึงเพื่อปรับเปลี่ยนการใช้งานได้ นั้นก็คือ ส่วนที่เรียกว่า User control panel โดยการสร้าง Extension เข้ามาในส่วนนี้นั้นก็จะมีขั้นตอนการเขียนสร้างคลายๆกับกับส่วนของ acp แต่จะต่างกันเพียงเล็กน้อย โดยวิธีการเขียนก็มีดังนี้

1.สร้าง โฟลเดอร์ ชื่อว่า ucp
2.สร้าง ไฟล์ php 2 ไฟล์ โดยใช้ชื่อว่า ชื่อExtension_info กับ ชื่อExtension_module

2.1 ตัวอย่างโคด สำหรับไฟล์ ชื่อExtension_info

Code: Select all

<?php

namespace mindphp\m_member_packages\ucp;

if (!defined('IN_PHPBB')) {
    exit;
}

class m_member_package_info {

    function module() {
        return array(
            'filename' => '\mindphp\m_member_packages\ucp\m_member_package_module',
            'title' => 'UCP_M_MEMBER_PACKAGE_TITLE',
            'version' => '1.0.0',
            'modes' => array(
                'm_member_package_ucp' => array('title' => 'UCP_M_MEMBER_PACKAGE_MODES_TITLE', 'auth' => 'ext_mindphp/m_member_packages', 'cat' => array('M_MEMBER_PACKAGE_MOD')),
            ),
        );
    }

}
2.2 ตัวอย่างโคด สำหรับไฟล์ ชื่อExtension_module

Code: Select all

<?php
namespace mindphp\m_member_packages\ucp;
class m_member_package_module {
    var $u_action;
    function main($id, $mode) {
        header('Content-Type: application/json');
        global $db, $user, $auth, $template, $cache, $request;
        global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
        $this->config = $config;
        $this->request = $request;
        $this->db = $db;
        $this->user = $user;
        $this->tpl_name = 'ucp_m_member_package_news';
        $user->add_lang_ext('mindphp/m_member_packages', 'ucp/info_acp_m_member_package');
        $this->page_title = 'ALERT_PRIVATE_MESSAGE';
        add_form_key('mindphp/m_member_packages');
}
3.สร้างไฟล์ html ในโฟลเดอร์ของ template ชื่อว่า ucp_ชื่อExtension
4.เพิ่มโคด ต่อไปนี้ลงใน ไฟล์ที่ใช้สำหรับติดตั้ง Extension ที่อยู่ในโฟลเดอร์ migrations ดังนี้

Code: Select all

            array('module.add', array(
                    'ucp',
                    'UCP_MAIN',
                    array(
                        'module_basename' => '\test\m_member_packages\ucp\m_member_package_module',
                        'auth' => 'ext_test/m_member_packages',
                        'modes' => array('m_member_package_ucp'),
                    ),
                )),
ผลลัพธ์ก่อนการใช้งาน
Selection_999(2349).png
ผลลัพธ์หลังการใช้งาน
Selection_999(2348).png
บทความที่เกี่ยวข้อง
การสร้าง Extension ใน phpbb
การสร้าง controller สำหรับ phpbb
Event listenner - เขียน Extension บน phpBB 3.1
私を傷つけるすべてが終了します。

Return to “PHP Knowledge”

Who is online

Users browsing this forum: No registered users and 3 guests