• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    织梦dedecms首页调用联动类别实现方法
    POST TIME:2018-01-08 21:50

    织梦dedecms首页调用分类信息联动类别(地区,类型等)的方法如下:

    需要注意:这个方法只适用于dedecms V5.5,V5.6,V5.7

    dede模板系统中默认是没有办法调用枚举名(联动菜单名称)的,而只能调用枚举值,为了方便大家在以后制作模板,今天就给大家带来一个自定义的全局函数,有了这个函数,以后在调用联动菜单的时候就非常方便了。
    一、遇到问题描述
    我们知道,联动菜单它是保存到了附加表里,我们在arclist标签中,要调用自定义附加表的字段,只能是通过:
    {dede:arclist row='5' channelid='内容模型ID' addfields='自定义字段'}
    insertext
    {/dede:arclist}
    这种方法来调用,比如以下这个实例:
    {dede:arclist titlelen='60' row='8' channelid='1' addfields='nativeplace'}
    <li><span>[field:nativeplace/]</span><a href="[field:arcurl /]">[field:title /]</a></li>
    {/dede:arclist}
    这个的意思是调用普通文章8条,并调用附加表中的nativeplace字段(注意:该字段是联动类别),但是调用的结果就是枚举值,是数字,不是地区。

    二、解决方法
    1)函数编写

    打开 /include/extend.func.php 文件(这个文件为自定义函数接口文件,若不存在,请自行创建),在最后一行的?>上添加如下代码:
    function Getsysenum($fields){
    global $dsql;
    $row = $dsql->GetOne("select * from dede_sys_enum where evalue = '".$fields."'");
    if(!is_array($row)){
    return "<font color='red'>联动类别不存在</font>";
    }
    else{
    return $row['ename'];
    }
    }

    保存关闭即可!
    2)函数调用

    这个函数的调用非常简单,只需要将“枚举值”传递过来即可,这个缓存组名通常也就是内容模型中的自定义联动菜单字段名:

    function Getsysenum(‘枚举值');
    3)调用实例

    我们来看一下调用的实例代码:
    {dede:arclist titlelen='60' row='8' channelid='1' addfields='nativeplace'}
    <li><span>[field:nativeplace function="Getsysenum(@me)"/]</span><a href="[field:arcurl /]">[field:title /]</a></li>
    {/dede:arclist}

    其中[field:nativeplace function="Getsysenum(@me)"/] 就是将nativeplace字段进行Getsysenum函数处理。

    这样就可以解决这个调用的问题了。

    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!