zoukankan      html  css  js  c++  java
  • Dedecms中{dede:type}标签支持调用父级栏目名称

    需求:

    我们用{dede:type}标签调用栏目相关内容时,同时需要调用该栏目的父级栏目的名称。

    {dede:type}标签的代码做了一下开发,支持这个调用了。

    开发方法:

    1.打开include/taglib/type.lib.php,找到函数lib_type下的代码:

    $row = $dsql->GetOne("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE id='$typeid' "); //42行

    改为:

    $row = $dsql->GetOne("SELECT id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE id='$typeid' ");
    

    2.找到如下代码:

    $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);

    在其下面添加如下代码:

    $row['parent_name'] = $row['parent_id'] ='';
    if(!empty($row['topid'])){
        row1 = $dsql->GetOne("select typename as parent_name,id as parent_id from `#@__arctype` where id ='".$row['topid']."'");
        $row['parent_name'] = $row1['parent_name'];
        $row['parent_id']   = $row1['parent_id'];
    } else {
        $row['parent_name'] = $row['typename']; //如果时顶级栏目,就显示为该栏目名称
         $row['parent_id']   = $row['id'];
    }
    

    3.前台调用方法:

    <!--如果是内容页模板,可以不用指定typeid,直接调用-->
    {dede:type}[field:parent_name/]{/dede:type}
    {dede:type}[field:parent_id/]{/dede:type}
    <!--在首页或者列表页模板,可指定typeid调用--> 
    {dede:type typeid='1'}[field:parent_name/]{/dede:type}
    {dede:type typeid='1'}[field:parent_id/]{/dede:type}

    附加:

    1.调用当前栏目的名称
    {dede:field name="typename"}  

    2.调用该顶级频道所有子栏目,row代表调用5条
     {dede:channel  type='son'  row='5'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel} 

    3.调用子栏目当前顶级栏目名称
    {dede:channel   type='top'}<a>[field:typename/]</a> {/dede:channel} 

    4.调用指定栏目ID
    {dede:type   typeid='栏目id'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:type} 

  • 相关阅读:
    -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
    map合并,相同键对应的值相加
    oracle截取字符串去掉字段末尾指定长度的字符
    springMVC结合AjaxForm上传文件
    hibernate中指定非外键进行关联
    Maven安装及MyEclipse中使用Maven
    js判断字符串出现的次数
    PL/SQL如何调试sql语句、存储过程
    如何让pl/sql developer记住密码,实现快速登录
    【学亮IT手记】jQuery each()函数用法实例
  • 原文地址:https://www.cnblogs.com/feixiablog/p/10418111.html
Copyright © 2011-2022 走看看