PDA

View Full Version : Disable Doubleclick to close/lock thread


tommythejoat
11-19-2012, 08:30 PM
I cannot find a control to disable the feature that locks a thread (or unlocks a locked thread) by double clicking on the thread icon. Is there some way to do that? I seem to have done it accidentally a couple of times now and my moderators are getting annoyed with me.

I don't actually recall locking the threads, but the admin log says it is me. :o

ForceHSS
11-20-2012, 12:44 AM
mod tools should be at the end of the topic. Not sure if this is what you are after

tommythejoat
02-18-2014, 01:56 PM
My moderators are once again complaining about this feature.

If you are not familiar with the feature, a moderator can lock or unlock a thread by double clicking on the status icon. This can be done accidentally and one might not notice the change in status icon.

I have searched through all the options and settings without spotting this feature.

I have searched the templates and cannot find an action on the icons. I suspect it is somewhere in the JavaScript or perhaps in the PHP code. I have not searched either of those.

Seven Skins
02-18-2014, 09:30 PM
You can edit ajax.php file and that will disable this function.

Look for this piece of code and comment out the code in between the curly brackets.


From this...
if ($_POST['do'] == 'updatethreadopen')
{
blah blah
}


To this...
if ($_POST['do'] == 'updatethreadopen')
{/*
blah blah
*/}

ozzy47
02-18-2014, 09:55 PM
That will work, but if you want to do it via a plugin, so you will be safe from upgrades, you can add a plugin.

ACP --> Plugins & Products --> Add New Plugin

Product: vBulletin
Hook Location: ajax_start
Title: Disable Double Click to Close/Lock Thread
Execution Order: 5
Plugin PHP Code:
if ($_POST['do'] == 'updatethreadopen')
{
$vbulletin->input->clean_array_gpc('p', array(
'threadid' => TYPE_UINT,
'open' => TYPE_BOOL,
));
if ($threadinfo['open'] == 10)
{ // thread redirect
exit;
}
//load the existing open status to return if no permission
$open = $threadinfo['open'];
// changed perms to disable doubleclick
if (
can_moderate($threadinfo['forumid'], 'canopenclose_not') // user is moderator
OR
(
$threadinfo['postuserid'] == $vbulletin->userinfo['userid'] // user is thread first poster
AND
($forumperms = fetch_permissions($threadinfo['forumid'])) AND ($forumperms & $vbulletin->bf_ugp_forumpermissions['canopenclose_not']) // user has permission to open / close own threads
)
)
{
$open = $vbulletin->GPC['open'];

$threaddata =& datamanager_init('Thread', $vbulletin, ERRTYPE_SILENT, 'threadpost');
$threaddata->set_existing($threadinfo);
$threaddata->set('open', $open); // note: mod logging will occur automatically
if (!$threaddata->save())
{
// didn't change anything
$open = !$open;
}
}

$xml = new vB_AJAX_XML_Builder($vbulletin, 'text/xml');
$xml->add_tag('status', $open ? 'open' : 'closed');
$xml->print_xml();
}


This way you will be safe from overwriting it during upgrades, and if you ever run Suspect File Versions the file will not show up in the list as containing unexpected contents. :)

TerminatioN
10-23-2014, 10:08 PM
That will work, but if you want to do it via a plugin, so you will be safe from upgrades, you can add a plugin.

ACP --> Plugins & Products --> Add New Plugin

Product: vBulletin
Hook Location: ajax_start
Title: Disable Double Click to Close/Lock Thread
Execution Order: 5
Plugin PHP Code:
if ($_POST['do'] == 'updatethreadopen')
{
$vbulletin->input->clean_array_gpc('p', array(
'threadid' => TYPE_UINT,
'open' => TYPE_BOOL,
));
if ($threadinfo['open'] == 10)
{ // thread redirect
exit;
}
//load the existing open status to return if no permission
$open = $threadinfo['open'];
// changed perms to disable doubleclick
if (
can_moderate($threadinfo['forumid'], 'canopenclose_not') // user is moderator
OR
(
$threadinfo['postuserid'] == $vbulletin->userinfo['userid'] // user is thread first poster
AND
($forumperms = fetch_permissions($threadinfo['forumid'])) AND ($forumperms & $vbulletin->bf_ugp_forumpermissions['canopenclose_not']) // user has permission to open / close own threads
)
)
{
$open = $vbulletin->GPC['open'];

$threaddata =& datamanager_init('Thread', $vbulletin, ERRTYPE_SILENT, 'threadpost');
$threaddata->set_existing($threadinfo);
$threaddata->set('open', $open); // note: mod logging will occur automatically
if (!$threaddata->save())
{
// didn't change anything
$open = !$open;
}
}

$xml = new vB_AJAX_XML_Builder($vbulletin, 'text/xml');
$xml->add_tag('status', $open ? 'open' : 'closed');
$xml->print_xml();
}


This way you will be safe from overwriting it during upgrades, and if you ever run Suspect File Versions the file will not show up in the list as containing unexpected contents. :)

Thanks so much! Been looking for something like this. Works great on 4.2.2