DedeCMS在栏目加一个字段实现中英文导航功能

以前在织梦论坛发过这样一个教程的,只是时间过的挺久,自己都忘记了,前几天我做的一个单子又用到需要英文栏目名,只好再次的整理一下了。
今天在群里看到有位朋友需要实现中英文栏目名字的功能(如下图),下面我们就来看看强大的织梦CMS怎么实现吧!
 
 
首先给数据库中的dede_arctype表中增加一个字段,前面的表前缀是你的站点的名,并不一定是dede_
 
 
添加后的效果如上图,具体的添加办法再次就不详述了。其中typenameng就是我增加的字段,名称有点长,当然你也可以改为自己乐意的名称,这个不伤大雅。
再找到dede\templets目录下的catalog_edit.htm
 
找到
 
 
 <tr>
            <td class='bline' height="26" style="padding-left:10px;"><font color='red'>栏目名称:</font></td>
            <td class='bline'><input name="typename" type="text" id="typename" size="30" value="<?php echo $myrow['typename']?>" class="iptxt" /></td>
   </tr>
 
 
下面添加
 
 
<tr>
              <td class='bline' height="26" style="padding-left:10px;">栏目英文名称:</td>
             <td class='bline'><input name="typenameng" type="text" id="typenameng" size="30" value="<?php echo $myrow['typenameng']?>" class="iptxt" /></td>
</tr>
 
 
最后我们在打开 dede\catalog_edit.php
 
 
找到
$upquery = "UPDATE `#分隔符@__arctype` SET
     issend='$issend',
     sortrank='$sortrank',
     typename='$typename',
    typenameng='$typenameng',
     typedir='$typedir',
     isdefault='$isdefault',
     defaultname='$defaultname',
 
 
增加红色的部分,分隔符3个字自行去掉,至此就添加完成了。
 
调用方式 :{dede:field name='typenameng'/}
 
 
想要在channel 中使用,例如
{dede:channel type='son' row='10' typeid='1'}
                    <li><a href='[field:typeurl/]'>[field:typename/][field:typenameng/]</a></li>
 {/dede:channel}
 
则还要修改一个文件,找到include\taglib\channel.lib.php
 
第一处:
if($type=='top')
    {
        $sql = "SELECT id,typename,typenameng,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
          From `#分隔符@__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,typenameng,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
          From `#分隔符@__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,typenameng,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
            FROM `#分隔符@__arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
    }
 
第二处:
 
//如果用子栏目模式,当没有子栏目时显示同级栏目
    if($type=='son' && $reid!=0 && $totalRow==0)
    {
        $sql = "SELECT id,typename,typenameng,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
            FROM `#分隔符@__arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
        $dsql->SetQuery($sql);
      $dsql->Execute();
    }
 
 
增加查询字段就可以在channel中使用了,还有type,channelartlist等标签页是在相应的lib类中添加查询的字段,在此限于篇幅就不错详细的叙述了。
 
//处理同级栏目中,当前栏目的样式。currentstyle中的调用,include\taglib\channel.lib.php 140行 $linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);下面添加
$linkOkstr = str_replace("~typenameeng~",$row['typenameeng'],$linkOkstr);即可。
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

我们在用到织梦dedecms的会员功能时候,注册页面的注册项需要增加,比如想多加一个手机号的字段,需要怎么操作呢?下面我们以增加一个手机号的字段为例子 1、找到网站目录下的/member/templets/reg-new.htm,在合适位置增加一行表单,代码如下: lispan手机
SQL语句中,有统计的函数,我们可以通过在织梦中使用SQL语句统计的方法,在列表页内显示该栏目共有多少篇文章。这样做的好处是,有助于提升用 户体验。比如说我一个文章列表下面有10篇文章,就自动统计出10篇,到20篇的时候自动统计成20篇。这样用户对网站的
大家都知道,Discuz程序在发文章时有个【隐藏】功能,可以限制这个隐藏内容供某些级别的会员查看。 在织梦模板中,做些改动,也是可以实现的。例如:电话号码,下载地址等等。 前提是织梦开启会员功能,已经有了自定义字段。 一、建立文件 ajax_loginsta_c.p
活学活用织梦标字段签的{dede:field name= function= } 使用背景: 为了客户需要,x分类下的文章的作者被我设计成了y分类下的文章的id号,然后再根据y分类文章的id编号查询标题,这个标题正是x分类作者的姓名. 一,修改后台文章列表模板dede\templets\content_lis
先看效果图 一,模板 模板中涉及一个函数.get_url_by_typeid2()在这里的说明,点击查看 http://www.genban.org/news/dedecms-17684.html div class = containermargin-topover-hidden div class = xl12xb12over-hidden !--切换标签-- style type = text/css .s
效果图 加载更多按钮 一,模板上要引入jq文件 script language=JavaScript type=text/javascript src={dede:global.cfg_templets_skin/}/js/jQuery.js/script 二,模板 div class=xl12 xm8 xb8 over-hidden !-- 切换标签 -- style type=text/css .slideTxtBox{