I quickly edited the code to make it work with 3.6
Code:
if (preg_match('#\[quote=("|"|\'|)(.*)\\1\](<br>|<br />|\r\n|\n|\r)??(.*)(<br>|<br />|\r\n|\n|\r)??\[/quote\]#esiU',$post['message']))
{
preg_match_all('#\[quote=("|"|\'|)(.*)\\1\]#esiU',$post['message'],$quotematch);
$quotecount = count($quotematch[0]);
$tempcount = 0;
$quotearray = '';
while ($tempcount < $quotecount)
{
$xquotematch = strtolower($quotematch[0][$tempcount]);
$xquotematch = str_replace('[quote=','',"$xquotematch");
$xquotematch = ereg_replace(';.*]$','',"$xquotematch");
$quoteduserid = $vbulletin->db->query_first("SELECT userid FROM ".TABLE_PREFIX."user WHERE username = '".addslashes(htmlspecialchars_uni($xquotematch))."'");
if (!strstr("$quotearray","x".$quoteduserid['userid'].""))
{
if ($quoteduserid['userid'] > 0)
{
$vbulletin->db->query_write("INSERT INTO ".TABLE_PREFIX."quotedatanew (quoted,quoter,postid,dateline) VALUES ('".$quoteduserid['userid']."','".$vbulletin->userinfo['userid']."','".$post['postid']."','".time()."')");
$quotearray = "".$quotearray.""."x".$quoteduserid['userid']."";
}
}
$tempcount++;
}
}
I also disallowed [ ] ; in usernames..
If your using the prevent doublepost hack, then delete the who quoted me code and replace the preventdoublepost hack with the following..
In plugin Main Doublepost Prevent Engine
Code:
$oldmessage = $post['message'];
// ########### 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 post.dateline > " . (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 threadid = $threadinfo[threadid]
AND post.dateline > " . (TIMENOW - $vbulletin->options['xen_dp_timespan'] * 60) . "
AND visible = 1 AND deletionlog.primaryid IS NULL
AND postid <> $post[postid]
ORDER BY 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']);
}
}
}
if (preg_match('#\[quote=("|"|\'|)(.*)\\1\](<br>|<br />|\r\n|\n|\r)??(.*)(<br>|<br />|\r\n|\n|\r)??\[/quote\]#esiU',$oldmessage))
{
preg_match_all('#\[quote=("|"|\'|)(.*)\\1\]#esiU',$oldmessage,$quotematch);
$quotecount = count($quotematch[0]);
$tempcount = 0;
$quotearray = '';
while ($tempcount < $quotecount)
{
$xquotematch = strtolower($quotematch[0][$tempcount]);
$xquotematch = str_replace('[quote=','',"$xquotematch");
$xquotematch = ereg_replace(';.*]$','',"$xquotematch");
$quoteduserid = $vbulletin->db->query_first("SELECT userid FROM ".TABLE_PREFIX."user WHERE username = '".addslashes(htmlspecialchars_uni($xquotematch))."'");
if (!strstr("$quotearray","x".$quoteduserid['userid'].""))
{
if ($quoteduserid['userid'] > 0)
{
$vbulletin->db->query_write("INSERT INTO ".TABLE_PREFIX."quotedatanew (quoted,quoter,postid,dateline) VALUES ('".$quoteduserid['userid']."','".$vbulletin->userinfo['userid']."','".$post['postid']."','".time()."')");
$quotearray = "".$quotearray.""."x".$quoteduserid['userid']."";
}
}
$tempcount++;
}
}
It seems to work for me..
the whoquotedme.php needs to be rewritten and i gota add support so it dosen't display quotes from private forums..
I will do this when i get the time..