织梦dedecms首页调用联动类别实现方法

织梦教程 强烈建议 2024-06-16 10:32 47 0

  织梦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'}

  

  • [field:nativeplace/][field:title /]
  •   {/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 "联动类别不存在";

      }

      else{

      return $row['ename'];

      }

      }

      保存关闭即可!

      2)函数调用

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

      function Getsysenum(‘枚举值');

      3)调用实例

      我们来看一下调用的实例代码:

      {dede:arclist titlelen='60' row='8' channelid='1' addfields='nativeplace'}

      

  • [field:nativeplace function="Getsysenum(@me)"/][field:title /]
  •   {/dede:arclist}

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

    本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!