discuz的外掛程式使用

2021-09-19 23:57:17 字數 3946 閱讀 2487

discuz在不同版本中獲取url引數

2.0 $_g['gp_uid']

2.5 $_get['uid']

外掛程式都能實現那些功能?

使用者功能:

頁面顯示嵌入點

前台功能入口

選單選項模組

管理功能:

後台管理功能入口

資料功能:

論壇主題資料處理模

外掛程式開發三種狀態

檔案/config/config_global.php

變數$_config['plugindeveler'] = 狀態

狀態null:不開啟外掛程式開發模式,不開啟嵌入點

1:開啟外掛程式開發預設,不開啟嵌入點

2:開啟外掛程式開發模式,開啟嵌入點

如何設計乙個新外掛程式

後台-》應用-》外掛程式-》設計新外掛程式-》新增乙個外掛程式

自定義模組

後台-》應用-》外掛程式-》選擇外掛程式-》模組(新增乙個外掛程式的模組)

自定義變數

選定外掛程式-》設計-》變數 ,按情況操作後,會出現左側樹形選單中

嵌入點型別

1、頁面嵌入點

作用:修改頁面顯示

頁面嵌入點分為三種型別

1、全域性頁面嵌入點(一般以global作為字首,出現在公共模板上)

執行位置:公共模板頁面

2、普通頁面嵌入點(一般以模組名作為字首,例如:forum,出現在模組頁面上)

執行位置:普通模組模板頁面

3、輸出前置頁面嵌入點

執行位置:模組與模板間,處理資料

頁面嵌入點類的命名規則

全域性頁面嵌入點類(必須)

class plugin_外掛程式識別符號{}

普通嵌入點類

class plugin_外掛程式識別符號_入口檔名{}

(例如:forum.php?mod=viewthread&tid=1)

頁面嵌入點方法命名規則

全域性頁面嵌入點方法

function global_任意(){}

輸出前置頁面嵌入點方法(模組名就是mod後面的引數)

function 模組名_任意_output(){}

普通頁面嵌入點方法

function 模組名_任意(){}

2、資訊提示嵌入點

作用:修改showmessage()

3、廣告嵌入點

作用:處理廣告位資料

4、功能嵌入點

作用:處理主題,帖子,頭像資料等

案例:建立乙個頁面外掛程式類後台-》應用-》外掛程式-》模組-》模組型別選擇【頁面嵌入-普通版】-》***.class.php

進入外掛程式的目錄新建乙個***.class.php檔案

<?php 

//全域性嵌入點類(plugin_識別符號)

class plugin_ppctest

}//普通嵌入點類(plugin_識別符號_檔名),必須繼承全域性嵌入點類

//例如:forum.php?mod=viewthread&tid=1,檔名就是forum

class plugin_ppctest_forum extends plugin_ppctest

//普通嵌入點方法取名,模組名打頭,後面任意

//function 模組名_任意(){}

//例如下面的index模組的status_extra方法

function index_status_extra()

}

頁面嵌入點的兩種返回值型別字串型別

示例:[string global_login_extra]

作用:普通資料顯示

陣列型別:列表資料顯示(後面的那個/0是陣列的索引值)

示例:[array forumdisplay_thread_subject/0]

作用:列表資料顯示

外掛程式模板的定義規則

用法:include template(外掛程式識別符號:模組目錄名/模組名稱)

示例:include template('ppctest:forum/baidu');

對應外掛程式目錄/ppctest/template/forum/baidu.htm

注意:在上面外掛程式模板中,3.2的版本,直接在方法中include template可以輸出至前端頁面了,而這之前的版本,需要配合標籤,在include 進來的模板頁面使用html**,然後return $變數名出去,到前端使用

公共嵌入點方法名:

common()

宣告位置:

公共嵌入點類

呼叫位置:

所有嵌入點

引數使用:

//全域性嵌入點類(plugin_識別符號)

class plugin_ppctest

}class plugin_ppctest_forum extends plugin_ppctest

}

資訊嵌入點使用方法名:

模組名_任意名稱_message()

宣告位置:

指令碼嵌入點類

呼叫位置:

當前指令碼提示使用者資訊時

引數使用:

方法引數

//例如,在forum.php檔案中加入如下一段**

showmessage('info:這是一段提示資訊','index.php');

//在嵌入類中寫入如下**

class plugin_ppctest_forum extends plugin_ppctest

}

瀏覽器瀏覽forum.php就出現如下效果,說明可以自定義一些message的效果

array

( [param] => array

([0] => info:這是一段提示資訊

[1] => index.php

[2] => array()

[3] => array()

[4] => 0))

廣告嵌入點使用方法名:

ad_廣告嵌入點名稱()

宣告位置:

全域性嵌入點類,指令碼嵌入點類

呼叫位置:

對應的廣告位

引數使用:

方法引數

//下面用全域性嵌入點類說明

//全域性嵌入點類(plugin_識別符號)

class plugin_ppctest

文字解析嵌入點使用方法名:

discuzcode()

宣告位置:

全域性嵌入點類

呼叫位置:

主題文字解析時

引數使用:

$_g['discuzcodemessage'],方法引數

//全域性嵌入點類(plugin_識別符號)

class plugin_ppctest

}

主題刪除嵌入點使用方法名:

deletethread()

宣告位置:

全域性嵌入點類

呼叫位置:

主題被刪除前,後時

引數使用:

$_g['deletethreadtids'],方法引數

discuz外掛程式開發

首先請修改global裡的配載檔案 config plugindeveloper 2 然後應用中心,點選設計外掛程式 模組選擇管理中心即可在應用裡面顯示鏈結 開發資料參考 discuz外掛程式開發首先要明白乙個嵌入點機制其實就是hook,頁面嵌入 指令碼格式 全域性嵌入點類 必須存在 class p...

DISCUZ 外掛程式機制

1 參考 2 由第一點中的官方提供的參考庫可以基本可以了解怎麼去開發乙個外掛程式。這裡簡述幾點重要的 一 配置檔案中config global.php中加上 config plugindeveloper 1 就可以在後台 應用 外掛程式 中設計新外掛程式。將上述變數中的值設定成為2,就可以看disc...

Discuz 應用外掛程式使用遊客快速註冊成為會員

站長 自discuz x2.5正式發布之後,該版本就以平台化 模組化 社交化 移動化等特點廣受站長好評。尤其是跟隨discuz x2.5一起發布的discuz 應用中心,更是源源不斷的為社群輸送精良裝備,強化 運營 截止8月份,discuz 應用有超過3600名第三方開發者與開發團隊加入,有超過18...