|
本著將開放進行到底的方針,X5 這次玩個大的,其實也不算太大......
這次講一講設置項,寫過 Discuz! X 后臺的開發者估計都熟悉 showsetting 這個函數。沒錯,是輸出后臺表單設置項的函數,他可以根據參數輸出 radio、checkbox、textarea、file......(不一一列舉了)等等類型的設置項。但是有一件事你想過沒有,這么多的設置項依然不滿足你的需求,為啥,見下面2個圖:
1.jpg (35.32 KB, 下載次數: 4)
下載附件
2024-11-5 09:49 上傳
是的,配色需要顯示下顏色,甚至直接可以顯示多個內容的設置。
是的,在 X5 里你的夢想實現了!
X5 中你可以自定義自己的設置項,我們稱呼為設置項組件。
要寫一個設置項組件插件,你需要在插件目錄 admin/component/ 目錄下添加文件。文件名為 component_xxxx.php 格式,內容如下:
按照前幾天講的內容,x5 新規范!命名空間~~懂!?
- <?php
- namespace sample\admin;
- if(!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
- class component_test {
- var $name = '自定義顏色';
復制代碼
show(&$var, &$extra) 方法是編輯時需要展示的內容,你只需要把自定義的 HTML 內容寫在這里,用下面的方法就可以顯示為自定義的設置項組件了
- showcomponent('測試1', 'abc1', 'yellow', 'sample:component_test');
復制代碼
對于復雜的設置項,我們還支持進行序列和反序列處理,比如剛才圖中的多個 <input>
- // 數據提交入口后進行打包
- function serialize($params, &$value) {
- ...
- }
- // 數據重新編輯前進行解包
- function unserialize($params, &$value) {
- ...
- }
復制代碼 但這時就需要在輸入提交入庫前用 serializecomponent() 打包序列化一下。
然后~~沒了,要不要去試一把先?
|
|