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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] [HACK]发投票贴时设定允许选择的最大项数

[复制链接]
诺维兹基 发表于 2006-4-20 19:41:38 | 显示全部楼层 |阅读模式
修改文件:misc.php、templates/default/viewthread_poll.htm、templates/default/templates.lang.php、templates/default/messages.lang.php、templates/default/post_newthread.htm、include/newthread.inc.php

难易程度:文件虽然改的多,但是非常简单。

作用:

比如发了一个总项数为8的投票,那么可以填写允许选择的最大项数(如3),那么当投票者选择3个以上(不包括3)选项时提示投票失败。编辑帖子不可以改变项数,我认为这样会影响公平。
21号早修正不填这个项无法投票的错误,谢谢amoshuang提示!
25号早修正最大项数可以比总项数大的bug,感谢inamoto4869提出


步骤:

1.misc.php

查找:

  1. if(!is_array($pollanswers) || count($pollanswers) < 1) {
  2.                 showmessage('thread_poll_invalid');
  3.         }
复制代码


下面加:

  1.         if(count($pollanswers) > $pollarray['maxpollnum'] && !empty($pollarray['multiple'])) {
  2.                 showmessage('thread_poll_toomore');
  3.         }
复制代码


2.templates/default/viewthread_poll.htm

查找:

  1. <!--{if $pollopts['multiple']}-->({lang poll_multiple}
复制代码


后面加:

  1. -{lang poll_max}$pollopts['maxpollnum']{lang poll_xiang}
复制代码


3.templates/default/templates.lang.php

查找:

  1. 'post_poll_allowmultiple' => '多选投票',
复制代码


下面加:

  1.         'post_poll_maxpollchoose' => '允许选择的最大选项数:',
复制代码


查找:

  1. 'poll_multiple' => '多选',
复制代码


下面加:

  1.         'poll_max' => '限选',
  2.         'poll_xiang' => '项',
复制代码


4.templates/default/messages.lang.php

查找:

  1. 'thread_poll_invalid' => '您没有选择投票选项,请返回修改。',
复制代码


下面加:

  1.         'thread_poll_toomore' => '您选择投票选项过多,请返回修改。',
复制代码


5.templates/default/post_newthread.htm

查找:

  1. <input type="checkbox" name="multiplepoll" value="1" <!--{if isset($multiplepoll)}-->checked<!--{/if}-->> {lang post_poll_allowmultiple}
  2.         </span>
复制代码


后面加:

  1. <span class="smalltxt">{lang post_poll_maxpollchoose}<input type="text" name="maxpollchoose" size="2" maxlength="2" value=""></span>
复制代码


把紧接着下面的那个

  1. rows="4"
复制代码


改成

  1. rows="5"
复制代码


6.include/newthread.inc.php

查找

  1. $pollarray['multiple'] = !empty($multiplepoll);
复制代码


下面加:

  1.                 $pollarray['maxpollnum'] = $maxpollchoose<count($polloptions)&&$maxpollchoose?$maxpollchoose:count($polloptions);
复制代码


7.更新缓存,OVER。
===========
21号之前修改的把include/newthread.inc.php原来的

  1. $pollarray['maxpollnum'] = $maxpollchoose;
复制代码


修改成:

  1. $pollarray['maxpollnum'] = $maxpollchoose?$maxpollchoose:count($polloptions);
复制代码

===========
25号10:32之前21号之后的把
  1. $pollarray['maxpollnum'] = $maxpollchoose?$maxpollchoose:count($polloptions);
复制代码

改成
  1. $pollarray['maxpollnum'] = $maxpollchoose<count($polloptions)&&$maxpollchoose?$maxpollchoose:count($polloptions);
复制代码

=================
编辑帖子也可以修改这个值的修改办法在31楼


[ 本帖最后由 诺维兹基 于 2006-4-25 10:58 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

终结者4 发表于 2006-4-20 19:43:53 | 显示全部楼层
不错~~  不过标题需要改一下。呵呵。是发投票贴,不是发贴
回复

使用道具 举报

 楼主| 诺维兹基 发表于 2006-4-20 19:44:20 | 显示全部楼层
谢谢指出
回复

使用道具 举报

Seika 发表于 2006-4-20 19:53:30 | 显示全部楼层
~~~
回复

使用道具 举报

sakurakawaii 发表于 2006-4-20 19:53:34 | 显示全部楼层

 

好东西来了,顶!
回复

使用道具 举报

ndren 发表于 2006-4-20 21:54:09 | 显示全部楼层
嗯,这个比较实用,呵。
回复

使用道具 举报

渡雨 发表于 2006-4-20 21:57:33 | 显示全部楼层
顶一个。
回复

使用道具 举报

piyr11 发表于 2006-4-20 22:07:06 | 显示全部楼层
頂一下
回复

使用道具 举报

jeffreyli 发表于 2006-4-20 22:28:08 | 显示全部楼层
支持,頂!收藏了
回复

使用道具 举报

泡海椒 发表于 2006-4-20 22:30:07 | 显示全部楼层
8错,

顶一个ing
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 21:14 , Processed in 0.044242 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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