久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區

標題: X5 中自定義自己的設置項 [打印本頁]

作者: monkeye    時間: 2024-11-5 10:04
標題: X5 中自定義自己的設置項
本著將開放進行到底的方針,X5 這次玩個大的,其實也不算太大......


這次講一講設置項,寫過 Discuz! X 后臺的開發者估計都熟悉 showsetting 這個函數。沒錯,是輸出后臺表單設置項的函數,他可以根據參數輸出 radio、checkbox、textarea、file......(不一一列舉了)等等類型的設置項。但是有一件事你想過沒有,這么多的設置項依然不滿足你的需求,為啥,見下面2個圖:
[attach]32713[/attach]
是的,配色需要顯示下顏色,甚至直接可以顯示多個內容的設置。

是的,在 X5 里你的夢想實現了!

X5 中你可以自定義自己的設置項,我們稱呼為設置項組件。

要寫一個設置項組件插件,你需要在插件目錄 admin/component/ 目錄下添加文件。文件名為 component_xxxx.php 格式,內容如下:


按照前幾天講的內容,x5 新規范!命名空間~~懂!?


  1. <?php

  2. namespace sample\admin;

  3. if(!defined('IN_DISCUZ')) {
  4.     exit('Access Denied');
  5. }

  6. class component_test {
  7.     var $name = '自定義顏色';
復制代碼

show(&$var, &$extra) 方法是編輯時需要展示的內容,你只需要把自定義的 HTML 內容寫在這里,用下面的方法就可以顯示為自定義的設置項組件了
  1. showcomponent('測試1', 'abc1', 'yellow', 'sample:component_test');
復制代碼

對于復雜的設置項,我們還支持進行序列和反序列處理,比如剛才圖中的多個 <input>
  1. // 數據提交入口后進行打包
  2.     function serialize($params, &$value) {
  3.         ...
  4.     }
  5.     // 數據重新編輯前進行解包
  6.     function unserialize($params, &$value) {
  7.         ...
  8.     }
復制代碼
但這時就需要在輸入提交入庫前用 serializecomponent() 打包序列化一下。

然后~~沒了,要不要去試一把先?

作者: 科站網    時間: 2024-11-5 10:06
沙發位已占
作者: 有愛設計    時間: 2024-11-5 10:08
小板凳來了               
作者: 凹凸曼    時間: 2024-11-5 10:08

作者: uu8651    時間: 2024-11-5 15:58
沙發位已占




歡迎光臨 Discuz! 官方交流社區 (http://www.9999xn.com/) Powered by Discuz! W1.0