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; }
相關文章
- 織夢後臺新增自定義欄位樣式修改
- C# 自定義屬性在propertyGrid控制元件中顯示C#控制元件
- 利用 alter 語句修改欄位屬性
- CSS自定義屬性 —— 別說你懂CSS相對單位CSS
- Mac自定義觸控欄 Touch Bar的顯示教程Mac
- DB2 修改表列相關屬性DB2
- 快速修改所有資料夾的顯示屬性(轉)
- 修改環境變數顯示當前登陸使用者的相關資訊變數
- 11g中關於表新增欄位default屬性研究
- C#中的屬性和欄位的區別C#
- android中自定義屬性重複定義Android
- Request 增加自定義欄位的方式
- python獲取、修改mysql資料庫欄位屬性PythonMySql資料庫
- 自定義View:Paint的常用屬性介紹及使用ViewAI
- HIBERNATE的對映---資料庫表中欄位和對應持久化類中屬性都是自定義型別的?資料庫持久化型別
- Scala的類、屬性、物件欄位物件
- 自定義View:自定義屬性(自定義按鈕實現)View
- 多型關聯自定義的型別欄位的處理多型型別
- CSS 自定義屬性指北CSS
- data-* 自定義屬性
- Android自定義屬性Android
- odoo欄位屬性列舉Odoo
- C#屬性與欄位C#
- sql查詢當前使用者所有表、欄位及相關注釋資訊SQL
- PhpCms自定義欄位的使用說明PHP
- Android 通知欄顯示自定義通知時設定更高的高度Android
- 自定義來電顯示
- background相關屬性
- 新建模型的時候,是否顯示欄位中的條件顯示如何使用?模型
- Android自定義控制元件——自定義屬性Android控制元件
- django admin中增加自定義超連結欄位Django
- 初識css自定義屬性CSS
- CSS 自定義屬性(變數)CSS變數
- 屬性動畫:如何自定義View動畫View
- easyui tree自定義屬性用法UI
- CSS自定義屬性Expression(轉)CSSExpress
- 共有的表單欄位屬性
- MySQL8 根據某屬性查詢欄位排名由自定義變數到rank()的變動MySql變數