平时做网站的时候,难免遇上一些特殊情况,默认的CMS是无法实现的,这时就需要改程序,就比如说,让频道自动跳转到第一个子栏目,当我还对DEDECMS不熟悉的时候,采用了一个最笨的方法,用JS去跳转,这对优化***不好。但是反正客户不懂,效果能实现就OK了。
今天我就来说说用如果通过修改源码来简单实现,其实DEDECMS在数据库表@#_arctype中,是否为频道,是用ispart这个字段去保存的,它有3个值(0,-1,1),对应的网站后台的 频道封面、最终栏目、外部连接。
所以我们只需要在程序中对ispart进行一个简单的判断,就OK。废话不多说了,
打开/include/helpers/channelunit.helper.php 打开下面的代码 GetOneTypeUrlA函数
04 |
* @param array $typeinfos 栏目信息 |
07 |
function GetOneTypeUrlA($typeinfos) |
10 |
if ($typeinfos[ 'ispart' ]==1) { |
11 |
$typeinfos = $dsql->GetOne( 'select * from idea_arctype where reid=' .$typeinfos[ 'id' ].' |
14 |
return GetTypeUrl($typeinfos[ 'id' ],MfTypedir($typeinfos[ 'typedir' ]), |
15 |
$typeinfos[ 'isdefault' ],$typeinfos[ 'defaultname' ], |
16 |
$typeinfos[ 'ispart' ],$typeinfos[ 'namerule2' ], |
17 |
$typeinfos[ 'moresite' ],$typeinfos[ 'siteurl' ],$typeinfos[ 'sitepath' ]); |
|
就这样OK了~! 但是这样频道封面就没有用了,其实我们还可以去给ispart增加一个其它的值,比如“2”来代表需要跳转到第一个子栏目的,把程序中的$typeinfos[‘ispart’]==1改成$typeinfos[‘ispart’]==2就OK了。
本站资源均来源于网络或网友投稿,部分资源未经测试,难免存在BUG,所有资源只限于学习研究,不得商用。如使用本站下载的资源造成任何损失或发生侵权行为,均与本站无关。如不接受本声明请勿下载!本站资源如有侵权,请联系QQ:497149677核实后立即删除!
最客资源网 »
织梦dede让频道自动跳转到第一个子栏目