DEDE搜索结果调用自定义字段

在查找页调用自定义字段,使其可有让用户查找这个自定义字段

找了许多文章和教程,却发现dedecms的标签底层模板字段不包括这个字段呢?这就大大约束了灵活性,但dede也不行能让一切字段都答应调用的,那样就会大大下降体系功率,所以今日共享的是一个比拟完满处理这个疑问的办法,合作dede标签,简直可以说没有什么不能调用的了

首先把上面代码放到 include/extend.func.php 里

运用办法:

function table($table, $field, $id)
{
global $dsql;
$primarys = array();
$table = strpos($table, '#@_') === false?(strpos($table, 'dede_') === false?'cn_'.$table:str_replace('dede_','cn_',$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]:'';
}

运用自定义函数对标签进行扩大
如:
{dede:符号 function=’table(“要调用的表名”,”要调用的字段”,@me)’/}
这里的“符号”就是要调用的表的主键的值,常见的就是id和aid、mid、uid之类的
标签底层模板内
[field:字段 function=table(“要调用的表名”,”要调用的字段”,@me)/]

举例
例如arclist标签底层模板字段是没有body字段的,就是说不能用arclist把文章内容调用出来的,当然这种需要很少,但不是没有,如今咱们就可以这样运用

还有许多效果,如type标签调用节目简介,等等,个人去发掘吧

赞(0) 打赏

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址