Forum-Germany |
12-27-2008 06:07 PM |
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
German support forum told me it would be a plug-in to blame the entry point has newpost_complete. and it is true. I have the plug-in system PLG in this place ---> Main Doublepost Prevent Engine<--- and when I turn off plug-in is the problem away. what is flawed? Who can help me?
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']);
}
}
}
Please help me! :o
Thanks. :)
|