专注前端,专注网页设计制作 - (承接网页制作/模板制作/设计) QQ:755150799 织梦模板 | 网页特效 | 网站模板 | 建站教程 | TOP排行榜 | Tag标签 | 联系我们
当前位置: 网站首页 > 建站教程 > dedeCMS教程 > >

织梦dedecms网站栏目增加英文名称及调用方法

时间:2018-10-17来源:学技巧网站制作 作者:学技巧 阅读: 次 【 点评一下

有时候网站需要中英文导航,而又想保留导航的hover中的样式,那么就需要进行织梦栏目的二次开发了。网上搜索了很多方法,基本都是负责人家的方法,残缺不全的。今天我整理,并亲自操作和修改,给大家完整奉献代码。

一、方法步骤:

涉及到文件如下(注意备份):

dede/catalog_add.php 

dede/catalog_edit.php

dede/templets/catalog_add.htm

dede/templets/catalog_edit.htm

二、新加字段 typenameen

后台执行SQL(前缀默认为dede_ 具体前缀根据自己网站修改):

alter table `dede_arctype` add `typenameen` char(100) NOT NULL default '';

(sql执行在后台系统SQL命令行工具里执行即可)

织梦dedecms网站栏目增加英文名称及调用方法

二、打开dede/catalog_add.php 查找:v5.7在第65行。

在65行typename后面增加【typenameen,】,在67行'~typename~'增加【'~typenameen~',】。

4.jpg

添加字段的前后位置不重要,重要的是代码要写规范,注意符号的中英文状态!

三、打开dede/catalog_edit.php 查找:v5.7在第41行。

在typename='$typename',后面增加一行 【typenameen='$typenameen',】。

dedecms织梦网站栏目增加英文名称的方法

四、打开dede/templets/catalog_add.htm 查找:v5.7在252行。

添加:

 


     
     
 
英文名称:

织梦dedecms网站栏目增加英文名称及调用方法

五、打开dede/templets/catalog_edit.htm 查找:v5.7在219行。

 

在219行换行增加:

  


    
    
  
英文名称:
              (栏目模板里用{dede:field.typenameen /}调用)

而在head里调用导航英文标题的时候就是用标签:{dede:field.typenameen /}

后台效果如下:

织梦dedecms网站栏目增加英文名称及调用方法

(最终导航效果如下:)

织梦dedecms网站栏目增加英文名称及调用方法

这个导航调用{dede:field.typenameen /}标签在未修改以下讲解的代码之前会出错的。我这里使用的是~typenameen~,如未修改以下代码,是无法使用的。

下面的步骤很关键:

找到include\taglib\channel.lib.php

78行开始修改添加typenameen

if($type=='top')
    {
        $sql = "SELECT id,typename,typenameen,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
          From `xjq_arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, $line ";
    }
    else if($type=='son')
    {
        if($typeid==0) return '';
        $sql = "SELECT id,typename,typenameen,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
          From `xjq_arctype` WHERE reid='$typeid' And ishidden<>1 order by sortrank asc limit 0, $line ";
    }
    else if($type=='self')
    {
        if($reid==0) return '';
        $sql = "SELECT id,typename,typenameen,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
            FROM `xjq_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
    }

第108行修改添加typenameen:

//如果用子栏目模式,当没有子栏目时显示同级栏目
    if($type=='son' && $reid!=0 && $totalRow==0)
    {
        $sql = "SELECT id,typename,typenameen,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
            FROM `xjq_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
        $dsql->SetQuery($sql);
      $dsql->Execute();
    }

以上修改完之后想调用~typenameen~需要在第140行,也就是在$linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);添加

 $linkOkstr = str_replace("~typenameen~",$row['typenameen'],$linkOkstr);

所以最终的调用代码就是:

{dede:channel type='top' row='8' currentstyle="

下面分享在百度网盘的修改文件,大家对照下吧,网上分享的方法有所残缺。

链接:https://pan.baidu.com/s/1spaIa__YHrtWr12gq8OCTA 

提取码:gtjz

解压密码xuejiqiao1017

分享到:
  • 用微信  “扫一扫”

    将文章分享到朋友圈。

    关注公众号:xue-jiqiao

本文版权归原作者所有,转载请注明原文来源出处,学技巧网站制作感谢您的支持!