Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] [HACK]版块主题排序(发表主题的时间或者发表回复时间)For D4

[复制链接]
freddy 发表于 2005-12-14 12:55:03 | 显示全部楼层 |阅读模式
//===============================================
//插件名称:版块主题排序(发表主题的时间或者发表回复时间)
//适用版本:D4
//插件原作者:wangdi1900
//修改For D4:Freddy(因小小猪要求而修改,如有版权纠纷请尽快联系我,我会在第一时间删除)
//修改文件:admin/forums.inc.php  forumdisplay.php
//修改语言包:admincp.lang.php
//数据库升级:有
//安装难易:极易
//演示:http://www.51happy365.com/bbs看新闻区就知了!admin的回复日期和第一贴的日期!!!
技术支持:https://discuz.dismall.com
//===============================================
功能介绍:
帖子排序
可以在后台设置单个版块
选择按照主题显示是按照发布主题的时间进行排序或者是按照回复时间进行排序
//===============================================


1,升级数据库

  1. ALTER TABLE `cdb_forums` ADD `px` SMALLINT( 2 ) UNSIGNED DEFAULT '0' NOT NULL ;
复制代码


2,修改admin/forums.inc.php

找到

  1. showsetting('forums_edit_blog', 'allowblognew', $forum['allowblog'], 'radio');
复制代码


下面插入

  1. //-------------------------------------------
  2.                         showsetting('forums_px', 'pxnew', $forum['px'], 'radio');
  3. //-------------------------------------------
复制代码


找到

  1. styleid='$styleidnew'
复制代码


后面加入

  1. , px='$pxnew'
复制代码


3,修改forumdisplay.php

找到

  1.         $query = $db->query("SELECT $dotadd1 t.* FROM {$tablepre}threads t $dotadd2
  2.                 WHERE t.fid='$fid' $filteradd AND $displayorderadd
  3.                 ORDER BY t.displayorder DESC, t.$orderby $ascdesc
  4.                 LIMIT ".($filter == 'digest' || $filter == 'type' ? $start_limit : $start_limit - $stickycount).", $tpp");
复制代码


替换

  1. //--------------------------------------版块主题排序(发表主题的时间或者发表回复时间)
  2. //--------------------------------------原程序语句注释开始
  3. /*        $query = $db->query("SELECT $dotadd1 t.* FROM {$tablepre}threads t $dotadd2
  4.                 WHERE t.fid='$fid' $filteradd AND $displayorderadd
  5.                 ORDER BY t.displayorder DESC, t.$orderby $ascdesc
  6.                 LIMIT ".($filter == 'digest' || $filter == 'type' ? $start_limit : $start_limit - $stickycount).", $tpp");*/
  7. //--------------------------------------原程序语句注释结束
  8. //--------------------------------------新程序语句开始
  9. if($forum['px']==0) {
  10.         $query = $db->query("SELECT $dotadd1 t.* FROM {$tablepre}threads t $dotadd2
  11.                 WHERE t.fid='$fid' $filteradd  $cateidadd AND $displayorderadd
  12.                 ORDER BY t.displayorder DESC, t.$orderby $ascdesc
  13.                 LIMIT ".($filter == 'digest' || $filter == 'type' ? $start_limit : $start_limit - $stickycount).", $tpp");
  14. }
  15. if($forum['px']==1) {
  16.         $query = $db->query("SELECT $dotadd1 t.* FROM {$tablepre}threads t $dotadd2
  17.                 WHERE t.fid='$fid' $filteradd  $cateidadd AND $displayorderadd
  18.                 ORDER BY t.displayorder DESC, t.dateline $ascdesc
  19.                 LIMIT ".($filter == 'digest' || $filter == 'type' ? $start_limit : $start_limit - $stickycount).", $tpp");
  20. }
  21. //--------------------------------------版块主题排序(发表主题的时间或者发表回复时间)
复制代码


4,修改admincp.lang.php

查找

  1. 'forums_edit_html' => '允许使用 html 代码:',
复制代码


上面插入

  1. //--------------------------
  2.         'forums_px' => '帖子排序:',
  3.         'forums_px_comment' => '注意: 选择“是”将按照发布主题的时间进行排序,选择“否”将按照回复时间进行排序',
  4. //--------------------------
复制代码


5,后台更新缓存+设置。

[ 本帖最后由 freddy 于 2005-12-14 15:46 编辑 ]
amoshuang 发表于 2005-12-14 13:05:44 | 显示全部楼层
占位
回复

使用道具 举报

 楼主| freddy 发表于 2005-12-14 13:06:28 | 显示全部楼层
原帖由 amoshuang 于 2005-12-14 13:05 发表
占位


麻烦把你论坛首页的那个颜色调换发出来好吗?
回复

使用道具 举报

jeffreyli 发表于 2005-12-14 13:07:03 | 显示全部楼层
支持,但如果排序方式會同時顯示新設定值,就更完美
回复

使用道具 举报

 楼主| freddy 发表于 2005-12-14 13:09:11 | 显示全部楼层

回复 #4 jeffreyli 的帖子

有些会员不知道有这功能的。。。如果直接在后台设置好。那看起来不是更方便:)嘻嘻
回复

使用道具 举报

amoshuang 发表于 2005-12-14 13:09:46 | 显示全部楼层

回复 #3 freddy 的帖子

那个是西游集老张的模板,ID是“西游集”
版权是他的,应该属于风格吧
我不是很懂,只是加了一个自定义颜色
回复

使用道具 举报

 楼主| freddy 发表于 2005-12-14 13:10:40 | 显示全部楼层
私下传给我吧。
回复

使用道具 举报

killua_bo 发表于 2005-12-14 13:14:51 | 显示全部楼层
不错!!支持!
回复

使用道具 举报

jeffreyli 发表于 2005-12-14 13:15:53 | 显示全部楼层

回复 #5 freddy 的帖子

我是指假如後台设定了根据回覆显示,前台版块的排序方式便写"最後回覆时间"
假如後台设定了根据发帖显示,前台版块的排序方式便写"最後发表",
这样会员可以更加了解该版块设定哦
回复

使用道具 举报

 楼主| freddy 发表于 2005-12-14 13:50:41 | 显示全部楼层

回复 #9 jeffreyli 的帖子

5555555大哥帮我完善下吧。。。偶这个是根据原FOR D25的这个改的。刚刚试了一小会儿~发现不行
我觉得应该是IF那个判断。如果FORUM[PX]ENABLE话。重定义顺序及默认SELECT。ELSE就原来的。但我发现这样做不行。。后台也更新缓存了。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-24 07:11 , Processed in 0.027975 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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