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

基于代码X3,其它版本源码,请自行验证。 Discuz后台的伪静态配置不包含门户频道页的伪静态配置。应该是考虑到频道页的URL地址变化太多的原因。 下面,我们就来开发源码,加上这个功能。 第一步:加上语言包中的记录: 根目录下:source\language\lang_admin
基于代码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地址切换
  • 根目录00php\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,
        );
    }


至此,大功告成。
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

WordPress目前在最近的版本中为所有需要新窗口打开的链接都自动添加了新的 noopener noreferrer 属性。noopener noreferrer 属性并不是新发布的标准,但 WordPress 4.7.4 版开始的编辑器默认都会添加该属性。新窗口打开超链接的属性 target=_blank 增加 rel=
用discuz搭建的论坛,后台默认地址是 域名加 admin.php,很多站长怕网站被黑客攻击,一般黑客会扫描admin文件,然后破解管理员账户登录后台,所以想修改后台的地址。直接修改 admin.php 名并放到其他文件夹里,访问后台用修改过的路径虽然能访问,但是会出错
已经有织梦UTF的站点,需要进行MIP改造,并且是新建一个MIP站点,实现和主站数据通用的话,可以按照以下操作。 我们得宗旨是,尽量不动主站任何东西,所以在这里我对MIP站点的改造,只在主站进行了一项操作 就是添加一个MIP地址的系统参数。 步骤如下: 进入
一、环境要求: Discuz x3.2 UTF8源码安装,服务器环境满足discuz的安装条件之外, 站点须支持 https,否则mip组件将无法使用(主要是组件的要求) 。 二、安装步骤: 1、 安装官方 x3.2版本。 2、登陆后台,开启手机版 3、安装mip模板,先备份手机版模板文件t
由于多数同学对之前教程看不懂以及修改最新mip官方最新调用js和css,所有简化了教程! 第一步:下载附件一;第二步:将附件中e文件夹上传覆盖根目录(安全期间可提前备份e目录) 第三步:将附件三张图片上传根目录 第四步:打开帝国后台模板管理模板组管理导
ecshop有一个商品的比较功能,在你点击商品旁边的比较链接就可以把商品加入到比较的框架中,很多时候,我们都需要对比较页面的样式进行修改,一是我们的页面更美观。 关于修改比较页面样式的方法: 比较页面的样式没有在在css中,而是在compare.js这个更目录