destoon中自定義欄位的前臺顯示,及修改相關屬性
在destoon中模組的自定義欄位儲存在destonn_fields這個表中
自定義欄位的前臺顯示使用的是fields_html這個函式在fields.func.php檔案中,這個函式的定義如下,
function fields_html($left = `<td class="tl">`, $right = `<td>`, $values = array(), $fd = array()) { extract($GLOBALS, EXTR_SKIP); if($fd) $FD = $fd; $html = ``; foreach($FD as $k=>$v) { if(!$v[`display`]) continue; if(!defined(`DT_ADMIN`) && !$v[`front`]) continue; $html .= fields_show($k, $left, $right, $values, $fd); } return $html; }
這個函式不是使用$left與right這兩個變數中包含的html包住我們自定義的欄位,這樣就顯示非常的不和諧,很不好自定義介面,
這個函式中使用的了一個$FD的變數,這個變數是一個全域性變數,在使用者中心顯示編輯介面時,變數的初始公是在my.inc.php中
if (in_array($action, array(`add`, `edit`))) { $FD = cache_read(`fields-` . substr($table, strlen($DT_PRE)) . `.php`); if ($FD) require DT_ROOT . `/include/fields.func.php`; isset($post_fields) or $post_fields = array(); $CP = $MOD[`cat_property`]; if ($CP) require DT_ROOT . `/include/property.func.php`; isset($post_ppt) or $post_ppt = array(); }
$FD是從快取中讀取的,其中的形式如下,
<?php defined(`IN_DESTOON`) or exit(`Access Denied`); return array( 19 => array(`itemid` => `19`, `tb` => `dingzhi_40`, `name` => `qidian`, `title` => `起點`, `note` => ``, `type` => `int`, `length` => `10`, `html` => `area`, `default_value` => ``, `option_value` => ``, `width` => `120`, `height` => `90`, `input_limit` => ``, `addition` => ``, `display` => `1`, `front` => `1`, `listorder` => `0`,), 20 => array(`itemid` => `20`, `tb` => `dingzhi_40`, `name` => `zhongdian`, `title` => `終點`, `note` => ``, `type` => `int`, `length` => `10`, `html` => `area`, `default_value` => ``, `option_value` => ``, `width` => `120`, `height` => `90`, `input_limit` => ``, `addition` => ``, `display` => `1`, `front` => `1`, `listorder` => `0`,), 21 => array(`itemid` => `21`, `tb` => `dingzhi_40`, `name` => `shuojihao`, `title` => `手機號`, `note` => ``, `type` => `varchar`, `length` => `15`, `html` => `text`, `default_value` => ``, `option_value` => ``, `width` => `120`, `height` => `90`, `input_limit` => ``, `addition` => `size="30"`, `display` => `1`, `front` => `1`, `listorder` => `0`,), 22 => array(`itemid` => `22`, `tb` => `dingzhi_40`, `name` => `shixiao`, `title` => `時效`, `note` => ``, `type` => `varchar`, `length` => `255`, `html` => `radio`, `default_value` => ``, `option_value` => `1|1天內*2|2天內*3|3天內*4|4天內*5|5天內*6|6天內*7|7天內*`, `width` => `120`, `height` => `90`, `input_limit` => ``, `addition` => ``, `display` => `1`, `front` => `1`, `listorder` => `0`,),); ?>
如果我們需要對欄位的顯示名稱進行更改,那麼就需要傳入整個array才能達到目的,個人覺得有點麻煩了
個人覺得如果要修改某個欄位的相關特性時,只需要傳入特定屬性就可以了,因此我對函式做了一點改變,因為我只需要改變title就可以,所以沒有對這個函式做太大的改動
{php $mycust=array(“qidian”=>”發車起點:”);}
{if $FD}{fields_html3(`<li><p>–name–:</p><span>–control–</span></li>`,$item, $mycust)}{/if}
function fields_html3($template, $values = array(), $mycust = array()) { extract($GLOBALS, EXTR_SKIP); // if($fd) $FD = $fd;這裡的本意是用我們自定義的欄位來替換從快取中讀取的欄位,但是這樣的就有點麻煩, // print_r($FD); $html = ``; foreach ($FD as $k => &$v) { if (!$v[`display`]) continue; if (!defined(`DT_ADMIN`) && !$v[`front`]) continue; $v["temphtml"] = fields_show2($k, $values ); $title = $v["title"]; if(isset($mycust[$v["name"]])) $title = $mycust[$v[`name`]]; $temp = str_replace("--name--", $title,$template); $temp = str_replace("--control--", $v["temphtml"],$temp); $html.=$temp." "; } return $html; }
相關文章
- ReactNative自定義元件及屬性React元件
- CSS自定義屬性 —— 別說你懂CSS相對單位CSS
- React Native 自定義元件及屬性React Native元件
- DB2 修改表列相關屬性DB2
- Mac自定義觸控欄 Touch Bar的顯示教程Mac
- Dynamics 365 何時使用實體欄位顯示相關聯項
- python獲取、修改mysql資料庫欄位屬性PythonMySql資料庫
- Request 增加自定義欄位的方式
- 自定義View:Paint的常用屬性介紹及使用ViewAI
- Scala的類、屬性、物件欄位物件
- ES 筆記十三:多欄位特性及 Mapping 中配置自定義 Analyzer筆記APP
- Android 通知欄顯示自定義通知時設定更高的高度Android
- 修改環境變數顯示當前登陸使用者的相關資訊變數
- 多型關聯自定義的型別欄位的處理多型型別
- SpringBoot入門(二):日誌及自定義屬性Spring Boot
- data-* 自定義屬性
- CSS 自定義屬性指北CSS
- C#屬性與欄位C#
- odoo欄位屬性列舉Odoo
- PhpCms自定義欄位的使用說明PHP
- django admin中增加自定義超連結欄位Django
- 帶你深入理解Android中的自定義屬性!!!Android
- 自定義元件-純資料欄位元件
- MySQL8 根據某屬性查詢欄位排名由自定義變數到rank()的變動MySql變數
- 新建模型的時候,是否顯示欄位中的條件顯示如何使用?模型
- 初識css自定義屬性CSS
- CSS 自定義屬性(變數)CSS變數
- 給Product新增自定義屬性
- 共有的表單欄位屬性
- VueJs中動態更改svg的相關屬性VueJSSVG
- 【朝花夕拾】Android自定義View篇之(四)自定義View的三種實現方式及自定義屬性詳解AndroidView
- 4. 自定義控制元件(4) --- 自定義屬性控制元件
- Android 自定義View:深入理解自定義屬性(七)AndroidView
- 【譯】CSS 自定義屬性的策略指南CSS
- Kotlin——中級篇(二): 屬性與欄位詳解Kotlin
- MUI DtPicker 顯示自定義日期UI
- Easy UI Combobox顯示拼接欄位UI
- laravel model自定義軟刪除欄位Laravel
- IDEA專案欄顯示/關閉類中的方法Idea