View Single Post
  #30  
Old 08-28-2012, 07:13 PM
S@NL - BlackBik's Avatar
S@NL - BlackBik S@NL - BlackBik is offline
 
Join Date: Jul 2004
Location: Netherlands
Posts: 307
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK, I did some digging.
The plugin "Unvote Option", that shows the link to unvote, is bases on the "$pollinfo['active']" variable that is pulled from the database. The problem is that this variable is only set from 1 (active) to 0 (not active) if you close a poll manually. When the poll is closed because the timeout is reached, this value is NOT changed.
So a lot of polls are closed for voting, because the start time of the poll plus the timeout is reached, but appear still active for this hack.

I've corrected this problem on my board by not checking the active state, but to calculate if the time() is smaller than the timeline plus the timeout.
See this code (red and fat are my changes):

Code:
global $vbulletin;
$polltimeout = $pollinfo['dateline'] + ($pollinfo['timeout'] * 60 * 60 * 24);
$pollactive  = time();

if ($vbulletin->options['bop5uv_en'])
{
  if ($uservoted)
  {
    if (($pollactive <= $polltimeout) OR $vbulletin->options['bop5uv_ifclosed'])
    {
      $pollstatus .= '  <a href="misc.php?do=unvote&amp;t='.$thread['threadid'].'&amp;pollid='.$pollinfo['pollid'].'" id="bop5unvote_link" title="' . $vbphrase['bop5_unvote_title'] . '">(' . $vbphrase['bop5_unvote'] . ')</a>';
    }
  }
}
Explanation:
The $pollinfo['timeout'] is set in days. That's why I convert it to seconds.
$pollactive is the date/time now in Unix timestamp.
$pollinfo['dateline'] is the date/time that the poll is created, also a Unix timestamp.

If you want to use this code, be my guest.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01037 seconds
  • Memory Usage 1,766KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete