
11-12-2007, 04:07 AM
|
 |
|
|
Join Date: Sep 2007
Location: ON, Canada
Posts: 108
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
|
Quote:
Originally Posted by Kalina
I achieved what you're looking for by editing the "Main Doublepost Prevent Engine" plugin. You can replace all the code in it with the following.
PHP 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\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);
$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']); } } }
|
Thank you SO much Kalina for solving my problem. Just tried your method and it works perfect!
My double posts now show up as:
MarcGSR added 1 Minutes and 2 Seconds later...
But still no one has answer if there is a way to time stamp them like this:
--------------- Added 17 Oct 2007 at 7:17pm ---------------
???
|