Version: 1.0, by Xenon
Developer Last Online: Oct 2023
Version: 3.5.3
Rating:
Released: 09-19-2005
Last Update: 01-15-2007
Installs: 877
Uses Plugins
No support by the author.
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. **
No sorry I don't know, it's not my adjustment. Somewhere I've seen still another, more like you wanted, I have looked for it but can't find it anymore.
Any Idea how to excluded a ForumID from beeing affected?
Quote:
Additional Condition (experts only)
Here you can add extra conditions, which will be required for a post to be seen as a doublepost. Be carefull, as this code is evaluated without doing any errorchecking, so use it at your own risk! (Examlpe: add !can_moderate() into the box to exclude moderators from doublepost prevention)
It collides at NuWiki if the Articlewriter wants to post a first Comment.
What was needed to be edited then? The original one also worked in 3.6.8. You only changed the "disabled by default" or did you also change other things?
// 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\n[SIZE="1"][COLOR="Silver"]" . $vbulletin->userinfo['username'] . ' added ' . intval((TIMENOW - $doublepost['dateline'])/60) . ' Minutes and ' . ((TIMENOW - $doublepost['dateline']) % 60). ' Seconds later...' . $vbulletin->options['xen_dp_spacer'] . "[/COLOR][/SIZE]\n\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);