您好,欢迎来到菜鸟吧源码网(www.cniao8.com)本站只做精品网站源码!
  • 首 页
  • 菜鸟云
  • 公告:本站资源均来源于互联网及会员投稿发布,所有资源仅供学习参考研究使用,请勿商用或其它非法用途,商用请购买正版,否则产生一切后果由用户自行承担!谢谢!

     

    当前位置:主页 > 站长学堂 > discuz教程 >
    Discuz教程:如何让你的门户频道页支持伪静态(二次开发)
    时间:2019-10-31 14:49 作者:菜鸟吧 浏览:收藏 挑错 打印

    基于代码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,
           );
       }

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请给我们来信:admin@cniao8.com,我们尽快处理。

    Discuz! X3.4论坛标题字数突破80的限制解决方法Discuz! X3.4论坛标题字数突破80的限制
    完美解决discuz应用 校验失败,您无法下载此应用方法完美解决discuz应用 校验失败,您无法
    Discuz论坛如何禁止游客查看用户个人资料页,阻止访问其他会员用户信息?Discuz论坛如何禁止游客查看用户个人资