The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Prevent Doubleposting Details »» | |||||||||||||||||||||||||
When a User posts into a thread where he already has the lastpost, no new post will be added. The lastpost of him will be edited and the new text is put after his first message.
This will be done until the old post is older than 24 hours (you can change this timespan yourself) Nothing more to say about that, it's the quite same as my vb3.0 version. This Mod should run with 3.6 as well ** Please make sure you ENABLE this product after you install it - it is disabled by default. ** For vb 3.8 there are two alternative updates ; https://vborg.vbsupport.ru/showthread.php?t=203705 https://vborg.vbsupport.ru/showthread.php?t=204177 Show Your Support
|
Благодарность от: | ||
inphoenix |
Comments |
#1032
|
|||
|
|||
Please tell me how to install this, I am new to VB.
|
#1033
|
|||
|
|||
Download the product.
Login to your ACP. Go to Plugins and Products > Manage Products > Scroll to the bottom & click Add/Import Product > File the file on your computer and import it. |
#1034
|
|||
|
|||
Thank you so much!
|
#1035
|
||||
|
||||
Dont forget to enable it afterwards .....
|
#1036
|
||||
|
||||
|
#1037
|
|||
|
|||
Works on 3.6.11
What about making it so that admins, super mods and mods are exempt? |
#1038
|
||||
|
||||
There is already an option for that.
|
#1039
|
|||
|
|||
It says
Code:
!can_moderate() |
#1040
|
||||
|
||||
The code means that it will bypass anybody with moderation rights, so that is moderators, supermoderators and admins.
I have that code on my site too and it works nice. |
#1041
|
|||
|
|||
I have a problem with this hack. I have I have long been installed.
I've added a new forum where guests can write something. if a hospitable now writes something and abschickt, comes the following errors: Code:
Fatal error: Call to undefined function can_administer() in /www/htdocs/XXX/includes/functions_newpost.php(585) : eval()'d code(9) : eval()'d code on line 1 so sieht das plug-in aus: Code:
// ########### Xenon's prevent doublepost modification #########
$vbulletin->GPC['xen_isdoublepost'] = false;
// parse custom conditions
$custcond = true;
if (trim($vbulletin->options['xen_dp_custcond']) != '')
{
eval('$custcond = ((' . $vbulletin->options['xen_dp_custcond'] . ') ? true : false);');
}
// at first check if there is at least the possibility to be a doublepost
if ($custcond AND $type != 'thread'
AND $dp_threadinfo['lastpost'] > TIMENOW - $vbulletin->options['xen_dp_timespan'] * 60
AND $dp_threadinfo['lastposter'] == $vbulletin->userinfo['username']
AND $dataman->fetch_field('attach') == 0)
{
// we are here, so we may have a doublepost -> do more exact checkings
$doublepost = $vbulletin->db->query_first("
SELECT post.*
FROM " . TABLE_PREFIX . "post AS post
LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog ON(deletionlog.primaryid = post.postid AND type = 'post')
WHERE post.threadid = $threadinfo[threadid]
AND post.dateline > " . (TIMENOW - $vbulletin->options['xen_dp_timespan'] * 60) . "
AND post.visible = 1 AND deletionlog.primaryid IS NULL
AND post.postid <> $post[postid]
ORDER BY post.dateline DESC
LIMIT 1
");
if ($doublepost['userid'] == $vbulletin->userinfo['userid'] AND $doublepost['attach'] == 0)
{
// we truely have a doublepost, now check if the merged post still fits the rules!
$dpdataman =& datamanager_init('Post', $vbulletin, ERRTYPE_ARRAY, 'threadpost');
$dpdataman->set_existing($doublepost);
$doublepost['message'] = $doublepost['pagetext'] . "\n" . $vbulletin->options['xen_dp_spacer'] . "\n" . $post['message'];
// set info
$dpdataman->set_info('preview', $post['preview']);
$dpdataman->set_info('parseurl', $post['parseurl']);
$dpdataman->set_info('posthash', $post['posthash']);
$dpdataman->set_info('forum', $foruminfo);
$dpdataman->set_info('thread', $dp_threadinfo);
// set options
$dpdataman->setr('showsignature', $post['signature']);
$dpdataman->setr('allowsmilie', $post['enablesmilies']);
// set data
$dpdataman->setr('pagetext', $doublepost['message']);
$dpdataman->setr('iconid', $post['iconid']);
$dpdataman->pre_save();
if (!$dpdataman->errors)
{
// merged post is ok, so actually do the merging by editing old post
$vbulletin->GPC['xen_isdoublepost'] = true;
if ($vbulletin->options['xen_dp_bumpthread'])
{
// bump thread, so change the post's dateline
$doublepost['dateline'] = TIMENOW;
$dpdataman->setr('dateline', $doublepost['dateline']);
}
$dpdataman->save();
// as we have edited an old post, we can now delete the new created post
$postman =& datamanager_init('Post', $vbulletin, ERRTYPE_SILENT, 'threadpost');
$postman->set_existing($post);
$postman->delete($foruminfo['countposts'], $threadinfo['threadid'], $removaltype = true, array('userid' => $vbulletin->userinfo['userid'], 'username' => $vbulletin->userinfo['username'], 'reason' => $vbulletin->options['xen_dp_editedby'], 'keepattachments' => false), false);
unset($postman);
$doublepost['oldmessage'] = $post['message'];
$post = $doublepost;
$id = $post['postid'];
//now add edited by message
if ($vbulletin->options['xen_dp_editedby'] != '')
{
$vbulletin->db->query_write("
REPLACE INTO " . TABLE_PREFIX . "editlog (postid, userid, username, dateline, reason)
VALUES ($post[postid], " . $vbulletin->userinfo['userid'] . ", '" . addslashes($vbulletin->userinfo['username']) . "', " . TIMENOW . ", '" . addslashes($vbulletin->options['xen_dp_editedby']) . "')
");
}
// last step update counters
build_thread_counters($post['threadid']);
build_forum_counters($foruminfo['forumid']);
}
}
}
Thanks. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|