Quote:
Originally Posted by BirdOPrey5
very cool. Great idea to put a notice with new edit link in it... Solves the issue I was having with quick edit permissions and looks great on your forum. :up:
|
Thanks!
Quote:
Originally Posted by Paul M
It isnt removed, thats just the permission check. The delete code is way further down.
|
Ah, I thought I had disabled the ability to delete it, but I hadn't seen the code at the bottom. I see it now;
PHP Code:
// ############################### start delete post ###############################
if ($_POST['do'] == 'deletepost')
{
$vbulletin->input->clean_array_gpc('p', array(
'deletepost' => TYPE_STR,
'reason' => TYPE_STR,
'keepattachments' => TYPE_BOOL,
));
($hook = vBulletinHook::fetch_hook('editpost_delete_start')) ? eval($hook) : false;
if (!can_moderate($threadinfo['forumid'], 'candeleteposts'))
{ // Keep attachments for non moderator deletes (post owner)
$vbulletin->GPC['keepattachments'] = true;
}
if ($vbulletin->GPC['deletepost'] != '')
{
//get first post in thread
$getfirst = $db->query_first_slave("
SELECT postid, dateline
FROM " . TABLE_PREFIX . "post
WHERE threadid = $postinfo[threadid]
ORDER BY dateline
LIMIT 1
");
if ($getfirst['postid'] == $postinfo['postid'])
{
// delete thread
if ($forumperms & $vbulletin->bf_ugp_forumpermissions['candeletethread'] OR can_moderate($threadinfo['forumid'], 'canmanagethreads'))
{
if ($vbulletin->GPC['deletepost'] == 'remove' AND can_moderate($threadinfo['forumid'], 'canremoveposts'))
{
$removaltype = true;
}
else
{
$removaltype = false;
}
$threadman =& datamanager_init('Thread', $vbulletin, ERRTYPE_STANDARD, 'threadpost');
$threadman->set_existing($threadinfo);
$threadman->delete($foruminfo['countposts'], $removaltype, array('userid' => $vbulletin->userinfo['userid'], 'username' => $vbulletin->userinfo['username'], 'reason' => $vbulletin->GPC['reason'], 'keepattachments' => $vbulletin->GPC['keepattachments']));
unset($threadman);
if ($foruminfo['lastthreadid'] != $threadinfo['threadid'])
{
// just decrement the reply and thread counter for the forum
$forumdm =& datamanager_init('Forum', $vbulletin, ERRTYPE_SILENT);
$forumdm->set_existing($foruminfo);
$forumdm->set('threadcount', 'threadcount - 1', false);
$forumdm->set('replycount', 'replycount - 1', false);
$forumdm->save();
unset($forumdm);
}
else
{
// this thread is the one being displayed as the thread with the last post...
// so get a new thread to display.
build_forum_counters($threadinfo['forumid']);
}
($hook = vBulletinHook::fetch_hook('editpost_delete_complete')) ? eval($hook) : false;
$vbulletin->url = 'forumdisplay.php?' . $vbulletin->session->vars['sessionurl'] . "f=$threadinfo[forumid]";
eval(print_standard_redirect('redirect_deletethread'));
}
else
{
print_no_permission();
}
}
else
{
//delete just this post
if ($vbulletin->GPC['deletepost'] == 'remove' AND can_moderate($threadinfo['forumid'], 'canremoveposts'))
{
$removaltype = true;
}
else
{
$removaltype = false;
}
$postman =& datamanager_init('Post', $vbulletin, ERRTYPE_SILENT, 'threadpost');
$postman->set_existing($postinfo);
$postman->delete($foruminfo['countposts'], $threadinfo['threadid'], $removaltype, array('userid' => $vbulletin->userinfo['userid'], 'username' => $vbulletin->userinfo['username'], 'reason' => $vbulletin->GPC['reason'], 'keepattachments' => $vbulletin->GPC['keepattachments']));
unset($postman);
build_thread_counters($threadinfo['threadid']);
if ($foruminfo['lastthreadid'] != $threadinfo['threadid'])
{
// just decrement the reply counter
$forumdm =& datamanager_init('Forum', $vbulletin, ERRTYPE_SILENT);
$forumdm->set_existing($foruminfo);
$forumdm->set('replycount', 'replycount - 1', false);
$forumdm->save();
unset($forumdm);
}
else
{
// this thread is the one being displayed as the thread with the last post...
// need to get the lastpost datestamp and lastposter name from the thread.
build_forum_counters($threadinfo['forumid']);
}
($hook = vBulletinHook::fetch_hook('editpost_delete_complete')) ? eval($hook) : false;
$url = unhtmlspecialchars($vbulletin->url);
if (preg_match('/\?([^#]*)(#.*)?$/s', $url, $match))
{
parse_str($match[1], $parts);
if ($parts['postid'] == $postinfo['postid'] OR $parts['p'] == $postinfo['postid'])
{
// we've deleted the post that we came into this thread from
// blank the redirect as it will be set below
$vbulletin->url = '';
}
}
else if ($removaltype OR !can_moderate($threadinfo['forumid'], 'candeleteposts'))
{
// hard deleted or not moderating -> redirect back to the thread
$vbulletin->url = '';
}
if (!stristr($vbulletin->url, 'showthread.php')) // no referring url?
{
$vbulletin->url = 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . 't=' . $threadinfo['threadid'];
}
eval(print_standard_redirect('redirect_deletepost'));
}
}
else
{
($hook = vBulletinHook::fetch_hook('editpost_delete_complete')) ? eval($hook) : false;
$vbulletin->url = 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . "p=$postinfo[postid]#post$postinfo[postid]";
eval(print_standard_redirect('redirect_nodelete'));
}
}
Is it ok to just delete that then?