織夢系統有一個extend.func.php文件,我們可以在里面寫上自定義函數來實現自己想要的功能,比如今天我們要實現擴展函數來調用Dede的任意一個數據表的內容。

首先修改/include/extend.func.php,里面的把這段代碼加進去:
//自定義函數調用數據表
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];
}
然后在我們需要調用數據的地方加上調用代碼:
{dede:field.字段 function='table("要調用的數據表","要調用的字段",@me)'/} //內容頁,首頁調用代碼
[field:字段 function='table("要調用的表名","要調用的字段",@me)'/] //列表頁頻道頁調用代碼
舉例說明:
{dede:field.id function='table("dede_addonarticle","body",@me)'/}
釋義:調用id為本文id的文章的body部分。