在查找页调用自定义字段,使其可有让用户查找这个自定义字段
找了许多文章和教程,却发现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标签调用节目简介,等等,个人去发掘吧