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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[原创]同一ID可以在限制时间后再次投票[后台设置投票间隔,各版块独立]

[复制链接]
lu5266 发表于 2005-10-31 07:33:30 | 显示全部楼层 |阅读模式
本来是应人而弄的
而rubbishman已经弄好一个了

但是既然写好了
留着也没用
发出来留念也不错

(此贴只是同一个问题的另外的一个解决方法而已).




功能: 现在的投票是 一个ID只能投一票!而这个插件可以后台设置同一ID投票间隔(即同一ID可以再次投票),各版块独立
名称: 同一ID可以在限制时间后再次投票
作者: lu5266
版本: 2.5
升级: cdb_forums
文件: admin/forums.php  templates/default/admincp.lang.php   misc.php    viewthread.php  






第一步:升级数据库

  1. ALTER TABLE `cdb_forums` ADD `limitime` INT( 10 ) DEFAULT '-1' NOT NULL AFTER `replycredits` ;
复制代码



第二步:修改admin/forums.php

查找:

  1. showsetting('forums_edit_replycredits', 'replycreditsnew', $forum['replycredits'], 'text');
复制代码


在下面加上

  1.                         showsetting('forums_edit_limitime', 'limitimenew', $forum['limitime'], 'text');
复制代码


查找:
       
  1. replycredits='".intval($replycreditsnew)."',
复制代码



在后面加上:

  1. limitime='".intval($limitimenew)."',
复制代码





第三步:修改templates/default/admincp.lang.php

查找

  1. 'forums_edit_replycredits_comment' => '会员在本版回复所获得的积分,设置 -1 为按全论坛默认设定',
复制代码


在下面加上


  1.         'forums_edit_limitime' => '投票时间限制:(单位为:小时)',
  2.         'forums_edit_limitime_comment' => '用同一个ID投票时间间隔,设置 -1 为无限期,即:同一个ID只能投票一次',
复制代码


第四步:修改misc.php


查找:


  1.         if(in_array($discuz_user, $pollarray['voters'])) {
  2.                 showmessage('thread_poll_voted');
  3.         }
复制代码


替换为:

  1. //=======================同一ID可以在限制时间后再次投票  start  by lu5266=============
  2.   $query = $db->query("SELECT limitime FROM $table_forums WHERE fid='$fid'");
  3.   $poll_lim = $db->fetch_array($query);
  4.   $limitime=$poll_lim['limitime'];
  5.   foreach ($pollarray['voters'] as $key=> $value) {
  6.      $value=explode(",",$value);
  7.      if($discuz_user==$value[0])
  8.      $polltime=$value[1];
  9.      $pollanother['voters'][]=$value[0];
  10.   }   
  11. if(in_array($discuz_user, $pollanother['voters']) &&  ( $limitime == -1 || $mtime[1]-$polltime< $limitime*60*60 )) {
  12.                   showmessage('thread_poll_voted');
  13.         }
  14. //=======================同一ID可以在限制时间后再次投票  end  by www.5466.ik8.com=========
复制代码



查找:

  1. $pollarray['voters'][] = $discuz_user;
复制代码


替换为:

  1.        
  2.      /*-------------change by lu5266----------------*/
  3.      if( in_array($discuz_user, $pollanother['voters']))
  4.             $pollarray['voters'][] = $discuz_user.','.$timestamp.',1';
  5.      else $pollarray['voters'][] = $discuz_user.','.$timestamp;
  6.     /*-------------change by lu5266----------------*/
复制代码

   
   

第五步:修改viewthread.php


查找:

  1. $allowvote = $allowvote && $discuz_uid && (empty($thread['closed']) || $alloweditpoll) && !in_array($discuz_user, $pollopts['voters']);
复制代码



替换为:


  1.                  //=======================同一ID可以在限制时间后再次投票  start  by lu5266=============
  2.                           $query = $db->query("SELECT limitime FROM $table_forums WHERE fid='$fid'");
  3.               $poll_lim = $db->fetch_array($query);
  4.               $limitime=$poll_lim['limitime'];              
  5.               foreach ($pollopts['voters'] as $key=> $value) {
  6.                 $value=explode(",",$value);
  7.                if($discuz_user==$value[0])
  8.                  $polltime=$value[1];               
  9.                 if($value[2]==NULL)
  10.                    $pollanother['voters'][]=$value[0];            
  11.                }               
  12.             $pollopts['voters']=$pollanother['voters'];
  13.             if(in_array($discuz_user, $pollopts['voters']) && $limitime==-1)   $allowvote=0;
  14.                         else   
  15.             $allowvote = $allowvote && $discuz_uid && (empty($thread['closed']) || $alloweditpoll) && !(in_array($discuz_user, $pollopts['voters']) && ($mtime[1]-$polltime< $limitime*60*60));
  16. //=======================同一ID可以在限制时间后再次投票  end  by www.5466.ik8.com=========
复制代码



第六: 步更新缓存

完成!

[ 本帖最后由 lu5266 于 2005-10-31 07:54 编辑 ]

评分

1

查看全部评分

 楼主| lu5266 发表于 2005-10-31 07:33:46 | 显示全部楼层
反安装方法:


1: 升级反安装数据库代码:

  1. ALTER TABLE `cdb_forums` DROP `limitime` ;
复制代码


2: 用备分文件覆盖.

[ 本帖最后由 lu5266 于 2005-10-31 07:46 编辑 ]
回复

使用道具 举报

 楼主| lu5266 发表于 2005-10-31 07:42:54 | 显示全部楼层
上课去咯.................
回复

使用道具 举报

haohao036 发表于 2005-10-31 08:19:25 | 显示全部楼层
不错。新苦了。。。支持一下。
回复

使用道具 举报

秋舞叶 发表于 2005-10-31 09:49:58 | 显示全部楼层
顶先。。。不知道哪一类投票可以用到此功能
回复

使用道具 举报

 楼主| lu5266 发表于 2005-10-31 12:24:52 | 显示全部楼层
原帖由 haohao036 于 2005-10-31 08:19 发表
不错。新苦了。。。支持一下。

谢了
回复

使用道具 举报

 楼主| lu5266 发表于 2005-10-31 12:26:09 | 显示全部楼层
原帖由 秋舞叶 于 2005-10-31 09:49 发表
顶先。。。不知道哪一类投票可以用到此功能




说实话:
我也不知道


以后用到在找咯

[ 本帖最后由 lu5266 于 2005-10-31 12:27 编辑 ]
回复

使用道具 举报

karl907 发表于 2005-10-31 12:31:39 | 显示全部楼层
辛苦了...老大
回复

使用道具 举报

 楼主| lu5266 发表于 2005-10-31 12:35:52 | 显示全部楼层
原帖由 karl907 于 2005-10-31 12:31 发表
辛苦了...老大

回复

使用道具 举报

 楼主| lu5266 发表于 2005-10-31 12:42:45 | 显示全部楼层
............................................................................
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 08:08 , Processed in 0.238054 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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