此修改針對 ThinkPHP 2.0 版本有效,3.0 版本未測試。
/Thinkphp/Lib/Think/Template/Taglib/TabLibHtml.class.php 的 _list 方法
主要透過 -- 分割多個參數(自動替換為 ,)。註釋有「新增內容」標記處為新增代碼。
// 支援多個欄位傳遞
$array = explode('^', $href[1]);
if (count($array) > 1) {
foreach ($array as $a) {
$temp[] = '{$'.$name.'.'.$a.'|addslashes}';
}
$parseStr .= '<a xhref="javascript:'.$href[0].'('.implode(',',$temp).')">';
} else {
$parseStr .= '<a xhref="javascript:'.$href[0].'({$'.$name.'.'.$href[1].'|addslashes})">';
}
// 轉換 -- 為 , 傳遞多個參數
$property[1] = str_replace('--', ',', $property[1]); // 新增內容
$parseStr .= '{$'.$name.'.'.$property[0].'|'.$property[1].'}';
// ... 另一處新增
$val = str_replace('--', ',', $val); // 新增內容
$parseStr .= ' {$'.$name.'.'.$val.'} ';
<html:list id="checkList" name="user" style="list" checkbox="true" action="true" datasource="list"
show="id:編號,task_title:任務標題:edit,task_type|getTaskType:任務類型,task_category|getTaskCategory=$user['exe_user']--$user['id']:所屬欄目,hope_time|toDate='Y-m-d H#i':期望完成時間,process_rate|printRate:當前進度,exe_user|getUserName:處理人,status|getTaskStatus:狀態"
actionlist="status|printAccept=$user['exe_user']--$user['id'],task_track:跟蹤" />
getTaskCategory 傳遞 3 個參數,順序為:
$user['task_category']$user['exe_user']$user['id']printAccept 傳遞 3 個參數,順序為:
$user['status']$user['exe_user']$user['id']其中 task_category|getTaskCategory=$user['exe_user']--$user['id'] 與 status|printAccept=$user['exe_user']--$user['id'] 為傳遞多個參數的示範。
希望本文對大家的 ThinkPHP 框架程式設計有所幫助。