您好,欢迎来到菜鸟吧源码网-本站资源仅供学习与参考,禁止用于商业或违法行为!
  • 首 页
  • 下载APP
  • 公告:菜鸟吧APP于2024.9.15正式上线,请首页右上角进入下载,本站资源均来源于互联网及会员投稿发布,所有资源仅供学习参考研究使用,请勿商用或其它非法用途,商用请购买正版,否则产生一切后果由用户自行承担!谢谢!

     

    当前位置:主页 > 站长学堂 > dede教程 >
    自己动手添加一个函数 实现任意字段调用
    时间:2020-02-27 11:54 作者:菜鸟哥 浏览:收藏 挑错 打印

    是否遇到过想调用某些自定义字段,却发现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}

    还有很多作用,如type标签调用栏目简介,等等,自己去挖掘吧。

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请给我们来信:cainiaovip8@qq.com,我们尽快处理。

    织梦中TAG标签字数长度限制解决方法织梦中TAG标签字数长度限制解决方法
    织梦后台突然打不开或打开后空白的解决方法织梦后台突然打不开或打开后空白的解决
    织梦系统解决后台“DEDECMS安全提示”的方法织梦系统解决后台“DEDECMS安全提示”