This plugin has a bug in the way it stores the cookie. I don't know enough about the code to be able to fix it, but I found out what is causing the problem.
If you allow the plugin to show the setting to the user, then some users will have a problem where the page wont properly load (the error message in my previous post)
I'm not sure why it only effects some users, but I noticed that the problem didn't effect me. However, one day, without having made any changes to my forum, the problem started effecting me as well.
But anyways, I tried taking out the part of the code that sets the cookie. After I did that, it started working again (but obviously you can't change the setting).
This is the code I removed, so I guess something in this is causing the problem:
Code:
if ($foruminfo['forumid'] AND $foruminfo['fct_allow_user_set'])
{
// try to get saved state
if ($vbulletin->userinfo['userid'] > 0)
{
// is state saved by user
$fct_state_saved =
array_key_exists("$foruminfo[forumid]", $vbulletin->userinfo['fct_data'])
? true
: false;
// get saved or default value
$filterclosedthreads =
$fct_state_saved
// saved state
? $vbulletin->userinfo['fct_data']["$foruminfo[forumid]"]
// default state
: $foruminfo['fct_hide_by_default'];
unset($fct_state_saved);
}
if (!empty($vbulletin->GPC['closed']))
{
$fct_temp_state =
$vbulletin->GPC['closed'] == 'hide'
? 1
: 0;
if ($fct_temp_state != $filterclosedthreads)
{
global $usercache;
// update saved state
$filterclosedthreads = $fct_temp_state;
if ($vbulletin->userinfo['userid'] > 0)
{
$fct_userid = $vbulletin->userinfo['userid'];
// update cache
if(isset($usercache["$fct_userid"]))
{
$usercache["$fct_userid"]['fct_data']["$foruminfo[forumid]"] =
$filterclosedthreads;
}
// update user profile
$vbulletin->userinfo['fct_data']["$foruminfo[forumid]"] =
$filterclosedthreads;
// init user data manager
$fct_userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
$fct_userdata->set_existing($vbulletin->userinfo);
$fct_userdata->save();
unset($fct_userdata, $fct_userid);
}
}
unset($fct_temp_state);
}
}