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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

主题设置1.01[关键字: 附件,关闭,置顶,天](新加入批量和更新BUG)

[复制链接]
tks999 发表于 2005-9-25 11:51:21 | 显示全部楼层 |阅读模式
最后修改日期: ---
适用版本:2.5SP1
插件名称:主题设置
作  者:tks999(tks000)
数据升级:有
修改文件:topicadmin.php,include/forum.php
修改模板:viewthread.htm
安装难度:简单
最后发表日期:---
插件功能简介:该功能能够实现设置主题关闭时间,置顶时间,删除附件时间,该插件部分代码参考liuqiang的显示置顶
演示或技术支持网站:http://bbs3.15mm.info:100
                            http://dev.freediscuz.net/dev

1.升级数据
  1. ALTER TABLE cdb_threads ADD closeday int(10) DEFAULT 0 NOT NULL;
  2. ALTER TABLE cdb_attachments ADD deleteday int(10) DEFAULT 0 NOT NULL;
  3. ALTER TABLE cdb_threads ADD deleteday int(10) DEFAULT 0 NOT NULL;
  4. ALTER TABLE cdb_threads ADD topday int(10) DEFAULT 0  NOT NULL;
复制代码


2.上传附件到templates/default

3.打开topicadmin.php
查找
  1. } elseif($action == 'digest' && $allowdigest) {
复制代码


上面加入
  1. } elseif($action == 'settings') {
  2.         if(!submitcheck('settingssubmit')) {
  3.                
  4.                 include template('topicadmin_settings');

  5.         } else {
  6.                 if($settingstype == 0) {
  7.                 if($closeday > 0) {
  8.                 $closeday = $timestamp+86400*$closeday;
  9.                 }
  10.                 else {
  11.                 $closeday = 0;
  12.                 }
  13.                 $db->query("UPDATE $table_threads SET closeday='$closeday' WHERE tid='$tid' AND fid='$fid'");
  14.                 }
  15.                 if($settingstype == 1) {
  16.                 if($deleteday > 0) {
  17.                 $deleteday = $timestamp+86400*$deleteday;
  18.                 }
  19.                 else {
  20.                 $deleteday = 0;
  21.                 }
  22.                 $db->query("UPDATE $table_attachments SET deleteday='$deleteday' WHERE tid='$tid'");
  23.                 $db->query("UPDATE $table_threads SET deleteday='$deleteday' WHERE tid='$tid'");
  24.                 }
  25.                 if($settingstype == 2) {
  26.                 if($topday > 0) {
  27.                 $topday = $timestamp+86400*$topday;
  28.                 }
  29.                 else {
  30.                 $topday = 0;
  31.                 }
  32.                 $db->query("UPDATE $table_threads SET topday='$topday' WHERE tid='$tid' AND fid='$fid'");       
  33.                 }

  34.                 modlog();
  35.                 showmessage('admin_succeed', "viewthread.php?tid=$tid&page=$fpage");

  36.         }
复制代码


打开include/forum.php
查找
  1. if(!defined('IN_DISCUZ')) {
  2.         exit('Access Denied');
  3. }
复制代码


下面加入
  1. $query = $db->query("UPDATE $table_threads SET closed='1' where closeday<>'0' AND closeday<'$timestamp'");
  2. $query = $db->query("UPDATE $table_threads SET displayorder='1' where topday<>'0' AND topday<'$timestamp'");
  3. $query = $db->query("SELECT attachment FROM $table_attachments WHERE deleteday<>'0' AND deleteday<'$timestamp'");
  4.                         while($attach = $db->fetch_array($query)) {
  5.                                 @unlink(DISCUZ_ROOT.'./'.$attachdir.'/'.$attach['attachment']);
  6. }
  7. $db->query("DELETE FROM $table_attachments where deleteday<>'0' AND deleteday<'$timestamp'");
  8. $query = $db->query("UPDATE $table_threads SET attachment='0' where deleteday<>'0' AND deleteday<'$timestamp'");
复制代码


打开viewthread.htm
查找
  1. <option value="recount">{lang admin_recount}</option>
复制代码


下面加入

  1. <option value="settings">主题设置</option>
复制代码

[ 本帖最后由 tks999 于 2005-9-26 21:58 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
lu5266 发表于 2005-9-25 11:52:09 | 显示全部楼层
好东西
回复

使用道具 举报

 楼主| tks999 发表于 2005-9-25 11:54:20 | 显示全部楼层
修正附件不会在attachments文件夹删除(请在26-9-05年之前安装的用户更新)
打开include/forum.php
查找
  1. $query = $db->query("UPDATE $table_threads SET closed='1' where closeday<>'0' AND closeday<'$timestamp'");
  2. $query = $db->query("UPDATE $table_threads SET displayorder='1' where topday<>'0' AND topday<'$timestamp'");
  3. $db->query("DELETE FROM $table_attachments where deleteday<>'0' AND deleteday<'$timestamp'");
  4. $query = $db->query("UPDATE $table_threads SET attachment='0' where deleteday<>'0' AND deleteday<'$timestamp'");
复制代码


替换为

  1. $query = $db->query("UPDATE $table_threads SET closed='1' where closeday<>'0' AND closeday<'$timestamp'");
  2. $query = $db->query("UPDATE $table_threads SET displayorder='1' where topday<>'0' AND topday<'$timestamp'");
  3. $query = $db->query("SELECT attachment FROM $table_attachments WHERE deleteday<>'0' AND deleteday<'$timestamp'");
  4.                         while($attach = $db->fetch_array($query)) {
  5.                                 @unlink(DISCUZ_ROOT.'./'.$attachdir.'/'.$attach['attachment']);
  6. }
  7. $db->query("DELETE FROM $table_attachments where deleteday<>'0' AND deleteday<'$timestamp'");
  8. $query = $db->query("UPDATE $table_threads SET attachment='0' where deleteday<>'0' AND deleteday<'$timestamp'");
复制代码

[ 本帖最后由 tks999 于 2005-9-27 06:16 编辑 ]
回复

使用道具 举报

 楼主| tks999 发表于 2005-9-25 11:55:22 | 显示全部楼层

批量功能

打开topicadmin.php
查找
  1. }elseif($operation == 'digest' && $allowdigest){
复制代码


上面加入

  1. }elseif($operation == 'settings'){
  2.                         if($settingstype == 0) {
  3.                         if($closeday > 0) {
  4.                         $closeday = $timestamp+86400*$closeday;
  5.                         }
  6.                         else {
  7.                         $closeday = 0;
  8.                         }
  9.                         $db->query("UPDATE $table_threads SET closeday='$closeday' WHERE tid in($tids) AND fid='$fid'");
  10.                         }
  11.                         if($settingstype == 1) {
  12.                         if($deleteday > 0) {
  13.                         $deleteday = $timestamp+86400*$deleteday;
  14.                         }
  15.                         else {
  16.                         $deleteday = 0;
  17.                         }
  18.                         $db->query("UPDATE $table_attachments SET deleteday='$deleteday' WHERE tid in($tids)");
  19.                         $db->query("UPDATE $table_threads SET deleteday='$deleteday' WHERE tid in($tids)");
  20.                         }
  21.                         if($settingstype == 2) {
  22.                         if($topday > 0) {
  23.                         $topday = $timestamp+86400*$topday;
  24.                         }
  25.                         else {
  26.                         $topday = 0;
  27.                         }
  28.                         $db->query("UPDATE $table_threads SET topday='$topday' WHERE tid in($tids) AND fid='$fid'");      
  29.                         }
  30.                         modlog();
  31.                         showmessage('admin_succeed', "forumdisplay.php?fid=$fid&page=$page");
复制代码


打开topicadmin_moderate
查找
  1. <!--{elseif $operation =='delete'}-->
  2. {lang moderate_delete}
复制代码


上面加入

  1. <!--{elseif $operation =='settings'}-->
  2. 主题设置
复制代码


查找(注意是第2个)
  1. <!--{elseif $operation =='close'}-->
复制代码


上面加入

  1. <!--{elseif $operation =='settings'}-->
  2. <tr>
  3.         <td bgcolor="{ALTBG1}">设置使用的选项:</td>
  4.         <td bgcolor="{ALTBG2}">
  5.         <input type="radio" name="settingstype" value="0">关闭主题 &nbsp;<input type="radio" name="settingstype" value="1">删除附件<input type="radio" name="settingstype" value="2" >主题置顶 &nbsp;</td>

  6. <tr>
  7.         <td bgcolor="{ALTBG1}" width="21%">几天后关闭(如果有选择使用关闭主题):</td>
  8.         <td bgcolor="{ALTBG2}">

  9.         <input type="text" name="closeday" value="0">单位:(天)
  10. </tr>

  11. <tr>
  12.         <td bgcolor="{ALTBG1}" width="21%">几天后删除附件(如果有选择使用删除附件):</td>
  13.         <td bgcolor="{ALTBG2}">

  14.         <input type="text" name="deleteday" value="0">单位:(天)
  15. </tr>


  16. <tr>
  17.         <td bgcolor="{ALTBG1}" width="21%">几天后置顶(如果有选择使用删除主题):</td>
  18.         <td bgcolor="{ALTBG2}">

  19.         <input type="text" name="topday" value="0">单位:(天)
  20. </tr>
复制代码


打开forumdisplay.htm
查找
  1. <input type="radio" name="operation" value="digest">
  2.           {lang moderate_digest}
  3.           <!--{/if}-->
复制代码


下面加入
  1. <input type="radio" name="operation" value="settings">
  2.           主题设置
复制代码

[ 本帖最后由 tks999 于 2005-10-1 11:45 编辑 ]
回复

使用道具 举报

winter0706 发表于 2005-9-25 11:57:29 | 显示全部楼层

删除附件时间是新的

支持啊~
回复

使用道具 举报

Pteranodon 发表于 2005-9-25 12:01:48 | 显示全部楼层
先支持, 期待有新版本我再裝, 嘿 (還好, 我在第1頁時回覆到=0=')
回复

使用道具 举报

 楼主| tks999 发表于 2005-9-25 12:02:04 | 显示全部楼层
原帖由 winter0706 于 2005-9-25 11:57 发表
支持啊~


感谢下。本来我是打算分开发布那个删除附件时间的,后来呢,想了下就干脆合在一起了
回复

使用道具 举报

xjbl 发表于 2005-9-25 12:04:45 | 显示全部楼层
支持....继续关注.
回复

使用道具 举报

 楼主| tks999 发表于 2005-9-25 12:10:24 | 显示全部楼层
批量应该会在不久后发布,现在在测试期间
回复

使用道具 举报

winter0706 发表于 2005-9-25 12:17:27 | 显示全部楼层
代碼有待優化吧~
大概用$s=x?y:z會比較好吧
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 02:59 , Processed in 0.058613 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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