1、打开 include/extend.func.php
2、在后面加入下面代码
function table($table, $field, $id)
{
global $dsql;
$primarys = array();
$table = strpos($table, '#@_') === false?(strpos($table, 'dede_') === false?'#@__'.$table:str_replace('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]:'';
}
3、使用方法:
利用自定义函数对标签进行扩展
如:
{dede:标记 function='table("要调用的表名","要调用的字段",@me)'/}
这里的“标记”就是要调用的表的主键的值,常见的就是id和aid、mid、uid之类的
标签底层模板内
[field:字段 function=table(“要调用的表名","要调用的字段",@me)/]
{dede:arclist row='10' titlelen='24'}
[field:id function=table('addonarticle','body',@me)/]
{/dede:arclist}
为什么要ID我都不知道,总之加上去可以用了
下面是第二种简单的方法///
打开 include/extend.func.php 这个文件,在文件末尾添加如下代码:
function Search_addfields($id,$result){
global $dsql; // 数据库操作对象,全局对象,织梦已经初始化,可直接使用;
$record = $dsql->GetOne("SELECT * FROM `dede_addon20` where aid='$id'");
$name=$record[$result];
return $name;
}
然后打开 include/arc.searchview.class.php 这个文件,搜索“ //处理一些特殊字段”,在下面添加如下代码: $row["softsize"]=Search_addfields($row["id"],"softsize");
在search.htm中 使用[field:softsize/] 就可以调用出来了