最近访客
百度未收录

如何让Discuz的门户频道支持伪静态?(二次开发教程)

本次开发基于Discuz X3,如果是其他版本的程序,需要各位自己验证一下。

Discuz后台的伪静态设置,不包含门户模块的伪静态设置,应该是考虑到频道页面的URL变化多样性,下面我们就一步一步学习将门户频道支持伪静态。

一、加上语言包中的记录

根目录下:source\\language\\lang_admincp.php ,找到 setting_seo_rewritestatus_portal_article 这一行,大概在1500行左右,搜索一下吧。

在这句代码的下方加入

\'setting_seo_rewritestatus_portal_list\' => \'门户频道页\',

二、后台加上设置项

根目录下:source\\function\\function_admincp.php ,找到rewritedata函数,在if语句的,两个大括号中,加上下面两段程序。

上面一段加上

        if (in_array(\'portal_list\', $_G[\'setting\'][\'rewritestatus\'])) {
            $data[\'search\'][\'portal_list\'] = \"/\" . $_G[\'domain\'][\'pregxprw\'][\'portal\'] . \"\\?mod\\=list&(amp;)?catid\\=(\\d+)(&page\\=(\\d+))?\\\"([^\\>]*)\\>/e\";
            $data[\'replace\'][\'portal_list\'] = \"rewriteoutput(\'portal_list\', 0, \'\\\\1\', \'\\\\3\', \'\\\\5\', \'\\\\6\')\";
        }

下面一段加上

        $data[\'rulesearch\'][\'portal_list\'] = \'list-{catid}-{page}.html\';
        $data[\'rulereplace\'][\'portal_list\'] = \'portal.php?mod=list&catid={catid}&page={page}\';
        $data[\'rulevars\'][\'portal_list\'][\'{catid}\'] = \'([0-9]+)\';
        $data[\'rulevars\'][\'portal_list\'][\'{page}\'] = \'([0-9]+)\';

三、兼容栏目页URL地址设置

找到文件:

根目录\\source\\function\\function_portal.php 下的函数getportalcategoryurl

将这个函数重新写成下面的代码

function getportalcategoryurl($catid) {
    if (empty($catid))
        return \'\';
    loadcache(\'portalcategory\');
    $portalcategory = getglobal(\'cache/portalcategory\');
    if ($portalcategory[$catid]) {
        $url = str_replace(\'&\', \'&\', $portalcategory[$catid][\'caturl\']);
        $url = str_replace(\'&\', \'&\', $url);
        $url = str_replace(\'http://\'.$_SERVER[\'HTTP_HOST\'].\'/\', \'\', $url);
        return $url;
    } else {
        return \'\';
    }
}

四、设置前台页面URL地址切换

根目录:php\\source\\function\\function_core.php 这个文件中找到:函数rewriteoutput

在一串的if … else if中加上一段

elseif ($type == \'portal_list\') {
        list(,,, $id, $page, $extra) = func_get_args();
        $r = array(
            \'{catid}\' => $id,
            \'{page}\' => $page ? $page : 1,
        );
    }

保存后,就完成了本次开发,也给门户页面添加了伪静态功能

温馨提示:本文最后更新于2022/10/20 00:51:06。若文章内容或图片失效,请留言联系站长反馈!
!
也想出现在这里? 联系我们
创意广告
© 版权声明
THE END
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容