老张小站

  1. 欢迎光临

    感谢访问老张的博客!

  • 1
25,702

Discuz! X3.1 帖子页“复制链接”“倒序/正序”“打印”“只看该作者”等链接伪静态化

分类 网站技术/村民张先生 发布于 2014-08-01 02:03
2

7、帖子内容页翻页按钮伪静态化。

打开 source/module/forum/forum_viewthread.php 文件,查找:

} else {
$_GET['viewpid'] = intval($_GET['viewpid']);

在它上面加入:

$multipage_thread = multi_thread($_G['forum_thread']['replies'] + 1, $_G['ppp'], $page, 'thread-'.$_G['tid']);

打开 source/function/function_core 文件,
在 function simplepage($num, $perpage, $curpage, $mpurl) { 前面增加一段(定义multi_thread):

function multi_thread($num, $perpage, $curpage, $mpurl, $maxpages = 0, $page = 10, $autogoto = FALSE, $simple = FALSE, $jsfunc = FALSE) {
return $num > $perpage ? helper_page_thread::multi($num, $perpage, $curpage, $mpurl, $maxpages, $page, $autogoto, $simple, $jsfunc) : '';
}

进入 source/class/helper/ 目录,将 helper_page.php 复制一份命名为 helper_page_thread.php 。并依次修改 helper_page_thread.php 文件中的以下部分:

将 helper_page 修改为 helper_page_thread (共两处,其中文件头注释中的那处无关紧要);
将 $pagevar = 'page='; 修改为 $pagevar = '-'; ;

在 $wml = defined('IN_MOBILE') && IN_MOBILE == 3; 前面新增:

if($_GET['authorid']) {
$url_filter = '-u'.$_GET['authorid'];
} elseif($_GET['ordertype'] == 1 || $_GET['ordertype'] == 2) {
$url_filter = '-o'.$_GET['ordertype'];
} else {
$url_filter = '-1';
}

将 $jsurl = $mpurl.(strpos($mpurl, '{page}') !== false ? '\'.replace(\'{page}\', this.value == 1 ? \'\' : this.value)': $pagevar.'\'+this.value;').'; doane(event);'; 替换为:

$jsurl = substr($mpurl, 0, -1).(strpos($mpurl, '{page}') !== false ? '\'.replace(\'{page}\', this.value == 1 ? \'\' : this.value)': $pagevar.'\'+this.value').'+\''.$url_filter.'.html\'; doane(event);';

在 public static function mpurl($mpurl, $pagevar, $page) { 下新增:

if($_GET['authorid']) {
$url_filter = '-u'.$_GET['authorid'];
} elseif($_GET['ordertype'] == 1 || $_GET['ordertype'] == 2) {
$url_filter = '-o'.$_GET['ordertype'];
} else {
$url_filter = '-1';
}

将 return $mpurl.$separator.$pagevar.$page; 替换为:

return substr($mpurl, 0, -1).$separator.$pagevar.$page.$url_filter.'.html';

打开 forum/viewthread.htm 模板文件,查找: <div class="pgt">$multipage</div> 替换为  <div class="pgt"><!--{if $_GET['highlight'] || $_GET['modthreadkey'] || $_GET['checkrush'] || $_G['forum_thread']['is_archived']}-->$multipage<!--{else}-->$multipage_thread<!--{/if}--></div> 。查找:<div class="pgs mtm mbm cl"> ,将其下方的 $multipage 的替换为: <!--{if $_GET['highlight'] || $_GET['modthreadkey'] || $_GET['checkrush'] || $_G['forum_thread']['is_archived']}-->$multipage<!--{else}-->$multipage_thread<!--{/if}-->

分页: 1 2 3 4 上一页 下一页
欢迎转载分享,转载请注明 来源:大张小站 https://www.zhang.cq.cn/2014437.html
若您喜欢这篇文章,欢迎订阅老张小站以获得最新内容。 / 欢迎交流探讨,请发电子邮件至 mail[at]vdazhang.com 。


已经有 2 条群众意见

  1. weibaishui.com /2015-03-08 15:05

    这个伪静态Apache Web Server规则怎么写呢? 回应

    #1
  2. 张工长weibaishui.com/2015-03-12 21:06

    基本差不多。你比较一下官方默认规则两者的区别就知道了。 回应

    #2

欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截