悟途网移动版

DEDECMS

悟途网 > CMS > DEDECMS > 正文

DEDECMS如何实现截取栏目名称的后两字方法

2016-01-15 23:23 悟途网 T

DEDECMS如何实现截取栏目名称的后两字方法

相信dedecms截取文章标题的长度,大家都会。

在这我说说如何截取栏目名称的前几个字和后几个字

一、如截取栏目名称的前两字,请用 [field:typename  function="cn_substr('@me',3)"/]这种格式

二、截取栏目名称的后两字:

例子:DEDECMS一级栏目下有子栏目分别是:DEDECMS建站、DEDECMS功能、DEDECMS管理、DEDECMS技术。

我想在首页导航显示分别为: 建站 | 功能 | 管理  | 技术

 1、如果是dede的gbk源码,采用[field:typename function='substr(@me,-4)'/]这种格式

 2、如果是dede的utf8源码,采用1方法达不到我们上面所说的效果,我们不妨换一种思维考虑来解决这个问题(网上找不到解决的办法才这 么干的),给每个栏目加一个副栏目名称,副栏目名称位置填写:建站 、功能 、 管理 、技术

下面开始:

(1)、进入phpmyadmin找到dede_arctype表,新增字段副栏目名称shorttname,

DEDECMS如何实现截取栏目名称的后两字方法

(2)打开\dede\templets目录,编辑catalog_add.htm

查找‘栏目名称’,复制栏目名称....,新增副栏目名称,注意这里的name和id名称要改成刚才在数据库里新加的字段(shorttname);

DEDECMS如何实现截取栏目名称的后两字方法

同样编辑catalog_edit.htm,步骤同上,

DEDECMS如何实现截取栏目名称的后两字方法

 效果:

DEDECMS如何实现截取栏目名称的后两字方法

(3)、打开\dede,编辑catalog_add.php

在68行,查找$queryTemplate = "INSERT在后面添加 ,'$shorttname'添加后的代码为:

DEDECMS如何实现截取栏目名称的后两字方法

在227行查找$in_query,在后面添加,'$shorttname'添加后的代码为:

DEDECMS如何实现截取栏目名称的后两字方法


编辑catalog_edit.php  38行

$upquery = "UPDATE `dede_arctype` SET

issend='$issend',

sortrank='$sortrank'

。。。

在后面添加,`shorttname`='$shorttname',添加后为

DEDECMS如何实现截取栏目名称的后两字方法

(4)、让channel标签支持副栏目循环输出

编辑\include\taglib,channel.lib.php查找 if($type=='top'),增加shorttname字段 更改后为

DEDECMS如何实现截取栏目名称的后两字方法

109行: 查找 if($type=='son' && $reid!=0 && $totalRow==0) ,增加shorttname字段  更改后为 

DEDECMS如何实现截取栏目名称的后两字方法

(5)、前台调用

{dede:channel type='son' row='8' }

[field:shorttname /]

{/dede:channel}