DEDE搜索结果调用自定义字段
2011-11-18 10:29
260 查看
是否遇到过想调用某些自定义字段,却发现dedecms的标签底层模板字段不包括这个字段呢?这就大大限制了灵活性,但dede也不可能让所有字段都允许调用的,那样就会大大降低系统效率,所以今天分享的是一个比较完美解决这个问题的方法,配合dede标签,几乎可以说没有什么不能调用的了。
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]:'';
}
先把上面代码放到 include/extend.func.php 里,如果没有这个文件就自己建立一个(放到 ?> 前面哦)
然后我们就可以在模板里任意使用了。
使用方法:
利用自定义函数对标签进行扩展
如:
{dede:标记 function='table("要调用的表名","要调用的字段",@me)'/}
这里的“标记”就是要调用的表的主键的值,常见的就是id和aid、mid、uid之类的
标签底层模板内
[field:字段 function=table(“要调用的表名","要调用的字段",@me)/]
举例
例如arclist标签底层模板字段是没有body字段的,就是说不能用arclist把文章内容调用出来的,当然这种需求很少,但不是没有,现在我们就可以这样使用
{dede:arclist row='10' titlelen='24'}
[field:id function=table('addonarticle','body',@me)/]
{/dede:arclist}
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]:'';
}
先把上面代码放到 include/extend.func.php 里,如果没有这个文件就自己建立一个(放到 ?> 前面哦)
然后我们就可以在模板里任意使用了。
使用方法:
利用自定义函数对标签进行扩展
如:
{dede:标记 function='table("要调用的表名","要调用的字段",@me)'/}
这里的“标记”就是要调用的表的主键的值,常见的就是id和aid、mid、uid之类的
标签底层模板内
[field:字段 function=table(“要调用的表名","要调用的字段",@me)/]
举例
例如arclist标签底层模板字段是没有body字段的,就是说不能用arclist把文章内容调用出来的,当然这种需求很少,但不是没有,现在我们就可以这样使用
{dede:arclist row='10' titlelen='24'}
[field:id function=table('addonarticle','body',@me)/]
{/dede:arclist}
相关文章推荐
- dede 搜索结果 调用 自定义字段
- (已解决)内容模型定义的自定义字段在{dede:arclist}中调用不显示结果
- 让DEDE内容模型自定义字段在搜索结果中显示的办法
- dede在高级搜索页面advancedsearch.php调用自定义字段
- 内容模型自定义字段在{dedearclist}中调用不显示结果
- DedeCMS搜索结果页面调用自定义字段的方法
- DEDE非内容页调用自定义字段使用方法
- Dede系统内容模型自定义字段调用的两种方法
- dedecms搜索页面列表无法调用自定义内容模式字段的解决方法
- dede自定义表单时间字段调用
- dedecms内容模型自定义字段在{dede:arclist}中调用不显示的解决方法
- dede taglist模板中调用自定义字段
- 如何在dede首页和栏目列表页调用自定义字段(list支持调用)
- dede:likearticle 调用自定义字段
- DedeCMS织梦自定义图片字段调用出现{dede:img ..}
- DEDE首页调用自定义字段,商品市场价/优惠价的调用
- dedecmsV5.7如何在搜索的时候调用自定义模板的字段
- dede内容页调用自定义字段方法
- dede 调用自定义字段方法
- Web_PHP_DedeCMS织梦自定义图片字段调用的问题出现{dede:img ..}