织梦dedecms添加一个函数来实现任意字段调用

2017-08-26dedecms教程
203

1、修改方法:
 
打开 include/extend.func.php 文件,如果没有这个文件就自己建立一个,在 ?> 之前添加如下代码:
 
function table($table, $field, $id)
{
    global $dsql;
    $primarys = array();
    $table = strpos($table, '#@_') === false?(strpos($table, 'wmd_') ===false?''.$table:str_replace('wmd_','',$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]:'';   
}
2、使用方法
 
利用自定义函数对标签进行扩展
如:
 
{wmd:标记 function='table("要调用的表名","要调用的字段",@me)'/}
这里的“标记”就是要调用的表的主键的值,常见的就是id和aid、mid、uid之类的
 
标签底层模板内
 
[field:字段 function=table(“要调用的表名","要调用的字段",@me)/]
举例
 
例如arclist标签底层模板字段是没有body字段的,就是说不能用arclist把文章内容调用出来的,当然这种需求很少,但不是没有,现在我们就可以这样使用
 
{wmd:arclist row='10' titlelen='24'}
[field:id function=table('addonarticle','body',@me)/]
{/wmd:arclist}
 
还有很多作用,如type标签调用栏目简介,等等,自己去挖掘吧。
The End

相关推荐

Dedecms织梦CMS如何添加自定义函数
我们在使用dedecms时候,需要拓展函数,那么这个函数需要写在哪个文件中呢?一般来说,需要写在:include/extend.func.php中,当然也可以写在其他公共文件中方便调用,以下是几个自定义函数示例...
2025-10-05 dedecms教程
80

织梦发布文档时候字数被限制了如何修改?
织梦发布文档时候字数被限制了如何修改,下面以文章发布为例,跟版网小编教你如何修改: 程序文件 dede/article_add.php dede/article_edit.php 修改代码 这里都是被进行了截取,我们只需要将截取字符改长一点就可以 $title= cn_substrR($title,$cfg_title_ma...
2025-07-05 dedecms教程
86

dedecms怎么做判断?怎么在一个标签中输入另外一个标签?
我们在使用织梦DedeCMS系统程序开发网站中,经常遇到需要对文章标题进行字数限制,通常做法是在a标签中加入一个title属性,让鼠标放上去的时候显示完整标题。但是标题被剪裁掉一些字符而不完整,下面跟版网的小编就为你推荐另外几种标题调用方式,如进行标题...
2025-07-05 dedecms教程
69

dedecms怎样设置给图片添加水印
dedecms怎样设置给图片添加水印,具体步骤为: 一、进入系统基本参数中的附件设置,启用是否使用图片水印选项; 二、在图像水印设置中选择文字或图片水印类型,文字水印可调整字体、颜色、透明度及位置,图片水印则需上传png格式的半透明logo,并合理设置大...
2025-07-01 dedecms教程
147

dedecms织梦列表页字段怎么做判断
用到dedecms时候,有时候需要对文章列表、arclist输出时候的字段做判断显示,比如缩略图没有则不显示,有的时候就显示图片,并且固定尺寸,这个要怎么操作呢? 关于列表字段内自定义字段的调用方法,有数据则显示无数据则不显示(备注:limit=3,1意思是从第4...
2025-07-01 dedecms教程
68

织梦内容页使用if判断某个字段是否为空
我们在使用织梦dedecms时候,如何使用if判断某个字段是否为空呢?我们以文章页自定义字段website为例:使用if语句判断website网址是否为空,如果有显示website并加上网址,如果没有就不显示。 {wmd:field.website runphp='yes'}if(@me'') {@me = 'a href="'...
2025-06-21 dedecms教程
171