discuz插件的編寫方法(全網惟一詳細解說)

能夠到這裏來找資料:discuz資料庫php

首先要知道放插件的目錄是啥
緩存

source\pluginui

還要知道如何在後臺開啓插件編寫模式,即在
this

config\config_global.php文件中寫入插件

$_config['plugindeveloper'] = 1;debug

還要清楚插件的惟一標識符code

還要懂discuz的一些遊戲規則:一、全部表都寫一個類,放在table文件夾中,而且名稱和表名一致。全部的這些類都要繼承基類如class table_test_db extends discuz_tablehtm

在調用的時候能夠用C::t()方法。注意t()方法實際的做用是返回所調錶所在操做類後實例化對象,這樣就能夠調用操做該表的類中的方法了,挺繞了!對象

有了這些基礎你就能夠玩插件了。繼承

給出參考

<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
class table_test_db extends discuz_table{
    public function __construct() {
$this->_table = 'test_db';
$this->_pk    = 'id';
parent::__construct();
}
        public function test(){
            echo 'phpchina';
        }
}
<?php
    $data = C::t('#ppctest#test_db')->test();
    debug($data);

作緩存舉例

if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
class table_common_member extends discuz_table_archive
{
public function __construct() {
$this->_table = 'common_member';
$this->_pk    = 'uid';
$this->_pre_cache_key = 'common_member_';
parent::__construct();
}

其中$this->_pre_cache_key = 'common_member_';就是緩存字段


插件寫法拋磚事例:

<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
class table_test_db extends discuz_table{
    public function __construct() {
$this->_table = 'test_db';
$this->_pk    = 'id';
parent::__construct();
}
        public function add_name($name){
           $this->insert(array(
               'name'=>$name,
           ));
        }
}

調用的寫法

<?php
    C::t('#ppctest#test_db')->add_name('phpchina');
相關文章
相關標籤/搜索