DedeCMS织梦模板使用扩展函数调用任意数据表的教程
2023/03/11 12:27 魔司收录网 已浏览147次
织梦系统有一个extend.func.php文件,我们可以在里面写上自定义函数来实现自己想要的功能,比如今天我们要实现扩展函数来调用Dede的任意一个数据表的内容。
首先修改/include/extend.func.php,里面的把这段代码加进去:
//自定义函数调用数据表
01 |
function table($table, $field, $ id ) |
05 |
$table = strpos($table, '#@_' ) === false ?(strpos($table, 'dede_' ) === false ? 'dede_' .$table:str_replace( 'dede_' , 'dede_' ,$table)):$table; |
06 |
$dsql -> Execute( "me" , "SHOW COLUMNS FROM `$table`" ); |
07 |
while ($r = $dsql->GetArray()) |
09 |
if ($r[ 'Key' ] == 'PRI' ) $primarys[] = $r[ 'Field' ]; |
13 |
$primary = $primarys[0]; |
14 |
$result = $dsql -> GetOne( "SELECT `$field` FROM `$table` WHERE `$primary`= $id" ); |
16 |
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部分。