找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 184|回复: 0

[cms教程] 织梦dede让频道自动跳转到第一个子栏目

[复制链接]

该用户从未签到

发表于 2021-9-22 09:10:34 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
平时做网站的时候,难免遇上一些特殊情况,默认的CMS是无法实现的,这时就需要改程序,就比如说,让频道自动跳转到第一个子栏目,当我还对DEDECMS不熟悉的时候,采用了一个最笨的方法,用JS去跳转,这对优化***不好。但是反正客户不懂,效果能实现就OK了。
        今天我就来说说用如果通过修改源码来简单实现,其实DEDECMS在数据库表@#_arctype中,是否为频道,是用ispart这个字段去保存的,它有3个值(0]-1,1),对应的网站后台的 频道封面、最终栏目、外部连接。
        所以我们只需要在程序中对ispart进行一个简单的判断,就OK。废话不多说了,
         
        打开/include/helpers/channelunit.helper.php 打开下面的代码  GetOneTypeUrlA函数
       
       
               
                       
                               
                                       
/**
*  获取某栏目的url
*
* @param     array  $typeinfos  栏目信息
* @return    string
*/
function GetOneTypeUrlA($typeinfos)
{
        global $dsql;
        if($typeinfos['ispart',==1) {
                $typeinfos = $dsql->GetOne('select * from idea_arctype where reid='.$typeinfos['id',.'
            ORDER BY sortrank');
        }
    return GetTypeUrl($typeinfos['id',,MfTypedir($typeinfos['typedir',)]
$typeinfos['isdefault',,$typeinfos['defaultname',,
    $typeinfos['ispart',,$typeinfos['namerule2',,
$typeinfos['moresite',,$typeinfos['siteurl',,$typeinfos['sitepath',);
}
                               
                       
               
       
就这样OK了~! 但是这样频道封面就没有用了,其实我们还可以去给ispart增加一个其它的值,比如“2”来代表需要跳转到第一个子栏目的,把程序中的$typeinfos['ispart',==1改成$typeinfos['ispart',==2就OK了。
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-10-10 19:22

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表