織夢系統(tǒng)有一個extend.func.php文件,我們可以在里面寫上自定義函數(shù)來實(shí)現(xiàn)自己想要的功能,比如今天我們要實(shí)現(xiàn)擴(kuò)展函數(shù)來調(diào)用Dede的任意一個數(shù)據(jù)表的內(nèi)容。
首先修改/include/extend.func.php,里面的把這段代碼加進(jìn)去:
//自定義函數(shù)調(diào)用數(shù)據(jù)表
function table($table, $field, $id)
{
global $dsql;
$primarys = array();
$table = strpos($table,
'#@_') ===
false?(strpos($table,
'dede_') ===
false?
'dede_'.$table:str_replace(
'dede_',
'dede_',$table)):$table;
$dsql -> Execute(
"me",
"SHOW COLUMNS FROM `$table`");
while ($r = $dsql->GetArray())
{
if($r[
'Key'] ==
'PRI') $primarys[] = $r[
'Field'];
}
if(!empty($primarys))
{
$primary = $primarys[
0];
$result = $dsql -> GetOne(
"SELECT `$field` FROM `$table` WHERE `$primary`= $id");
}
return isset($result[$field])?$result[$field]:$result[$field];
}
然后在我們需要調(diào)用數(shù)據(jù)的地方加上調(diào)用代碼:
{dede:field.字段 function=
'table("要調(diào)用的數(shù)據(jù)表","要調(diào)用的字段",@me)'/}
//內(nèi)容頁,首頁調(diào)用代碼
[field:字段 function=
'table("要調(diào)用的表名","要調(diào)用的字段",@me)'/]
//列表頁頻道頁調(diào)用代碼
舉例說明:
{dede:field.id function=
'table("dede_addonarticle","body",@me)'/}
釋義:調(diào)用id為本文id的文章的body部分。