Vergleich moderation.php - 1.8.2 - 1.8.19

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 11Zeile 11
define("IN_MYBB", 1);
define('THIS_SCRIPT', 'moderation.php');


define("IN_MYBB", 1);
define('THIS_SCRIPT', 'moderation.php');


$templatelist = 'changeuserbox,loginbox,moderation_delayedmoderation_custommodtool,moderation_delayedmodaction_notes,moderation_delayedmoderation_merge,moderation_delayedmoderation_move';
$templatelist .= ',moderation_delayedmoderation,moderation_deletethread,moderation_deletepoll,moderation_mergeposts_post,moderation_viewthreadnotes';
$templatelist .= ',moderation_move,moderation_threadnotes_modaction,moderation_threadnotes_delayedmodaction,moderation_threadnotes,moderation_getip_modoptions,moderation_getip,moderation_getpmip,moderation_merge';
$templatelist .= ',moderation_split_post,moderation_split,moderation_inline_deletethreads,moderation_inline_movethreads,moderation_inline_deleteposts,moderation_inline_mergeposts,moderation_threadnotes_modaction_error';
$templatelist .= ',moderation_inline_splitposts,forumjump_bit,forumjump_special,forumjump_advanced,forumdisplay_password_wrongpass,forumdisplay_password,moderation_inline_moveposts,moderation_delayedmodaction_error,moderation_purgespammer,moderation_delayedmoderation_date_day,moderation_delayedmoderation_date_month';





$templatelist = "changeuserbox,loginbox,moderation_delayedmoderation_custommodtool,moderation_delayedmodaction_notes,moderation_delayedmoderation_merge,moderation_delayedmoderation_move,moderation_threadnotes";
$templatelist .= ",moderation_delayedmoderation,moderation_deletethread,moderation_deletepoll,moderation_mergeposts_post,moderation_viewthreadnotes,moderation_confirmation,moderation_purgespammer,forumjump_bit";
$templatelist .= ",moderation_move,moderation_threadnotes_modaction,moderation_threadnotes_delayedmodaction,moderation_getip_modoptions,moderation_getip,moderation_getpmip,moderation_getpmip_modal";
$templatelist .= ",moderation_split_post,moderation_inline_deletethreads,moderation_inline_movethreads,moderation_inline_deleteposts,moderation_inline_mergeposts,moderation_threadnotes_modaction_error";
$templatelist .= ",moderation_inline_splitposts,forumjump_special,forumjump_advanced,forumdisplay_password_wrongpass,forumdisplay_password,moderation_inline_moveposts,moderation_delayedmodaction_error";
$templatelist .= ",moderation_delayedmodaction_notes_thread_single,moderation_delayedmodaction_notes_thread_multiple,moderation_delayedmodaction_notes_forum,moderation_delayedmodaction_notes_new_forum";
$templatelist .= ",moderation_delayedmodaction_notes_redirect,moderation_delayedmodaction_notes_merge,moderation_delayedmoderation_thread,moderation_threadnotes_modaction_thread,moderation_getip_modal";
$templatelist .= ",moderation_delayedmoderation_date_day,moderation_delayedmoderation_date_month,moderation_threadnotes_modaction_post,moderation_merge,moderation_split,moderation_threadnotes_modaction_forum";
$templatelist .= ",moderation_delayedmoderation_openclose,moderation_delayedmoderation_softdeleterestore,moderation_delayedmoderation_delete,moderation_delayedmoderation_stick,moderation_delayedmoderation_approve";


require_once "./global.php";
require_once MYBB_ROOT."inc/functions_post.php";


require_once "./global.php";
require_once MYBB_ROOT."inc/functions_post.php";

Zeile 30Zeile 34

$plugins->run_hooks("moderation_start");



$plugins->run_hooks("moderation_start");


$tid = $mybb->get_input('tid', 1);
$pid = $mybb->get_input('pid', 1);
$fid = $mybb->get_input('fid', 1);
$pmid = $mybb->get_input('pmid', 1);


$tid = $mybb->get_input('tid', MyBB::INPUT_INT);
$pid = $mybb->get_input('pid', MyBB::INPUT_INT);
$fid = $mybb->get_input('fid', MyBB::INPUT_INT);
$pmid = $mybb->get_input('pmid', MyBB::INPUT_INT);
$modal = $mybb->get_input('modal', MyBB::INPUT_INT);


if($pid)
{
$post = get_post($pid);
if(!$post)
{


if($pid)
{
$post = get_post($pid);
if(!$post)
{

		error($lang->error_invalidpost);

		error($lang->error_invalidpost, $lang->error);

	}
$tid = $post['tid'];
}

	}
$tid = $post['tid'];
}

Zeile 50Zeile 55
	$thread = get_thread($tid);
if(!$thread)
{

	$thread = get_thread($tid);
if(!$thread)
{

		error($lang->error_invalidthread);

		error($lang->error_invalidthread, $lang->error);

	}
$fid = $thread['fid'];
}

	}
$fid = $thread['fid'];
}

Zeile 67Zeile 72
	$permissions = forum_permissions($fid);
}


	$permissions = forum_permissions($fid);
}


if($pmid && $pmid > 0)

if($pmid > 0)

{

{

	$query = $db->query("
SELECT *
FROM ".TABLE_PREFIX."privatemessages
WHERE pmid='{$pmid}'
");

	$query = $db->simple_select('privatemessages', 'uid, subject, ipaddress, fromid', "pmid = $pmid");






$pm = $db->fetch_array($query);

if(!$pm)
{


$pm = $db->fetch_array($query);

if(!$pm)
{

		error($lang->error_invalidpm);

		error($lang->error_invalidpm, $lang->error);

	}
}


	}
}


Zeile 109Zeile 110
	check_forum_password($forum['fid']);
}


	check_forum_password($forum['fid']);
}


 
$log_multithreads_actions = array("do_multideletethreads", "multiclosethreads", "multiopenthreads", "multiapprovethreads", "multiunapprovethreads", "multirestorethreads", "multisoftdeletethreads","multistickthreads", "multiunstickthreads", "do_multimovethreads");
if(in_array($mybb->input['action'], $log_multithreads_actions))
{
if(!empty($mybb->input['searchid']))
{
$tids = getids($mybb->get_input('searchid'), 'search');
}
else
{
$tids = getids($fid, 'forum');
}

$modlogdata['tids'] = (array)$tids;

unset($tids);
}

$mybb->user['username'] = htmlspecialchars_uni($mybb->user['username']);

eval("\$loginbox = \"".$templates->get("changeuserbox")."\";");

$allowable_moderation_actions = array("getip", "getpmip", "cancel_delayedmoderation", "delayedmoderation", "threadnotes", "purgespammer", "viewthreadnotes");

eval("\$loginbox = \"".$templates->get("changeuserbox")."\";");

$allowable_moderation_actions = array("getip", "getpmip", "cancel_delayedmoderation", "delayedmoderation", "threadnotes", "purgespammer", "viewthreadnotes");

Zeile 132Zeile 151
			error_no_permission();
}


			error_no_permission();
}


		$db->delete_query("delayedmoderation", "did='".$mybb->get_input('did', 1)."'");



		$plugins->run_hooks('moderation_cancel_delayedmoderation');

$db->delete_query("delayedmoderation", "did='".$mybb->get_input('did', MyBB::INPUT_INT)."'");


if($tid == 0)
{
moderation_redirect(get_forum_link($fid), $lang->redirect_delayed_moderation_cancelled);


if($tid == 0)
{
moderation_redirect(get_forum_link($fid), $lang->redirect_delayed_moderation_cancelled);

		}

		}

		else
{
moderation_redirect("moderation.php?action=delayedmoderation&tid={$tid}&my_post_key={$mybb->post_code}", $lang->redirect_delayed_moderation_cancelled);

		else
{
moderation_redirect("moderation.php?action=delayedmoderation&tid={$tid}&my_post_key={$mybb->post_code}", $lang->redirect_delayed_moderation_cancelled);

Zeile 147Zeile 168
	case "delayedmoderation":
// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

	case "delayedmoderation":
// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

 
		
$localized_time_offset = $mybb->user['timezone']*3600 + $mybb->user['dst']*3600;





		if(!$mybb->get_input('date_day', 1))

		if(!$mybb->get_input('date_day', MyBB::INPUT_INT))

		{

		{

			$mybb->input['date_day'] = date('d', TIME_NOW);

			$mybb->input['date_day'] = gmdate('d', TIME_NOW + $localized_time_offset);

		}

		}

		if(!$mybb->get_input('date_month', 1))

		if(!$mybb->get_input('date_month', MyBB::INPUT_INT))

		{

		{

			$mybb->input['date_month'] = date('m', TIME_NOW);

			$mybb->input['date_month'] = gmdate('m', TIME_NOW + $localized_time_offset);

		}

// Assume in-line moderation if TID is not set

		}

// Assume in-line moderation if TID is not set

Zeile 170Zeile 193
			}
else
{

			}
else
{

				$fid = $mybb->get_input('fid', 1);

				$fid = $mybb->get_input('fid', MyBB::INPUT_INT);

				$tids = getids($fid, "forum");
}
if(count($tids) < 1)
{

				$tids = getids($fid, "forum");
}
if(count($tids) < 1)
{

				error($lang->error_inline_nothreadsselected);

				error($lang->error_inline_nothreadsselected, $lang->error);

			}

$mybb->input['tids'] = $tids;

			}

$mybb->input['tids'] = $tids;

Zeile 191Zeile 214
		$errors = array();
$customthreadtools = "";


		$errors = array();
$customthreadtools = "";


		$allowed_types = array('openclosethread', 'softdeleterestorethread', 'deletethread', 'move', 'stick', 'merge', 'removeredirects', 'removesubscriptions', 'approveunapprovethread');

		$allowed_types = array('move', 'merge', 'removeredirects', 'removesubscriptions');





		$mybb->input['type'] = $mybb->get_input('type');

switch($db->type)



















		if(is_moderator($fid, "canopenclosethreads"))
{
$allowed_types[] = "openclosethread";
}

if(is_moderator($fid, "cansoftdeletethreads") || is_moderator($fid, "canrestorethreads"))
{
$allowed_types[] = "softdeleterestorethread";
}

if(is_moderator($fid, "candeletethreads"))
{
$allowed_types[] = "deletethread";
}

if(is_moderator($fid, "canstickunstickthreads"))
{
$allowed_types[] = "stick";
}

if(is_moderator($fid, "canapproveunapprovethreads"))

		{

		{

			case "pgsql":
case "sqlite":
$query = $db->simple_select("modtools", 'tid, name', "(','||forums||',' LIKE '%,$fid,%' OR ','||forums||',' LIKE '%,-1,%' OR forums='') AND type = 't'");
break;
default:
$query = $db->simple_select("modtools", 'tid, name', "(CONCAT(',',forums,',') LIKE '%,$fid,%' OR CONCAT(',',forums,',') LIKE '%,-1,%' OR forums='') AND type = 't'");

			$allowed_types[] = "approveunapprovethread";






		}

		}

		while($tool = $db->fetch_array($query))
{
$allowed_types[] = "modtool_".$tool['tid'];

 




			$tool['name'] = htmlspecialchars_uni($tool['name']);

$checked = "";
if($mybb->input['type'] == "modtool_".$tool['tid'])
{
$checked = "checked=\"checked\"";
}

eval("\$customthreadtools .= \"".$templates->get("moderation_delayedmoderation_custommodtool")."\";");
}

$mybb->input['delayedmoderation'] = $mybb->get_input('delayedmoderation', 2);






















		$mybb->input['type'] = $mybb->get_input('type');

if(is_moderator($fid, "canusecustomtools"))
{
switch($db->type)
{
case "pgsql":
case "sqlite":
$query = $db->simple_select("modtools", 'tid, name, `groups`', "(','||forums||',' LIKE '%,$fid,%' OR ','||forums||',' LIKE '%,-1,%' OR forums='') AND type = 't'");
break;
default:
$query = $db->simple_select("modtools", 'tid, name, `groups`', "(CONCAT(',',forums,',') LIKE '%,$fid,%' OR CONCAT(',',forums,',') LIKE '%,-1,%' OR forums='') AND type = 't'");
}
while($tool = $db->fetch_array($query))
{
if(is_member($tool['groups']))
{
$allowed_types[] = "modtool_".$tool['tid'];

$tool['name'] = htmlspecialchars_uni($tool['name']);

$checked = "";
if($mybb->input['type'] == "modtool_".$tool['tid'])
{
$checked = "checked=\"checked\"";
}

eval("\$customthreadtools .= \"".$templates->get("moderation_delayedmoderation_custommodtool")."\";");
}
}
}

$mybb->input['delayedmoderation'] = $mybb->get_input('delayedmoderation', MyBB::INPUT_ARRAY);


if($mybb->input['action'] == "do_delayedmoderation" && $mybb->request_method == "post")
{


if($mybb->input['action'] == "do_delayedmoderation" && $mybb->request_method == "post")
{

Zeile 237Zeile 291

if($mybb->input['type'] == 'move')
{


if($mybb->input['type'] == 'move')
{

				$newforum = get_forum($fid);










				$newfid = (int)$mybb->input['delayedmoderation']['new_forum'];

// Make sure moderator has permission to move to the new forum
$newperms = forum_permissions($newfid);
if($newperms['canview'] == 0 || !is_moderator($newfid, 'canmovetononmodforum'))
{
$errors[] = $lang->error_movetononmodforum;
}

$newforum = get_forum($newfid);

				if(!$newforum || $newforum['type'] != "f" || $newforum['type'] == "f" && $newforum['linkto'] != '')

				if(!$newforum || $newforum['type'] != "f" || $newforum['type'] == "f" && $newforum['linkto'] != '')

				{

				{

					$errors[] = $lang->error_invalidforum;

					$errors[] = $lang->error_invalidforum;

 
				}

$method = $mybb->input['delayedmoderation']['method'];
if($method != "copy" && $fid == $newfid)
{
$errors[] = $lang->error_movetosameforum;

				}
}


				}
}


Zeile 254Zeile 323
				$errors[] = $lang->error_delayedmoderation_invalid_date_month;
}


				$errors[] = $lang->error_delayedmoderation_invalid_date_month;
}


			if($mybb->input['date_year'] < gmdate('Y', TIME_NOW))

			if($mybb->input['date_year'] < gmdate('Y', TIME_NOW + $localized_time_offset))

			{
$errors[] = $lang->error_delayedmoderation_invalid_date_year;
}


			{
$errors[] = $lang->error_delayedmoderation_invalid_date_year;
}


			$date_time = explode(' ', (string)$mybb->input['date_time']);

			$date_time = explode(' ', $mybb->get_input('date_time'));

			$date_time = explode(':', (string)$date_time[0]);

if(stristr($mybb->input['date_time'], 'pm'))

			$date_time = explode(':', (string)$date_time[0]);

if(stristr($mybb->input['date_time'], 'pm'))

Zeile 271Zeile 340
				}
}


				}
}


			$rundate = mktime((int)$date_time[0], (int)$date_time[1], date('s', TIME_NOW), (int)$mybb->input['date_month'], (int)$mybb->input['date_day'], (int)$mybb->input['date_year']);

			$rundate = gmmktime((int)$date_time[0], (int)$date_time[1], date('s', TIME_NOW), $mybb->get_input('date_month', MyBB::INPUT_INT), $mybb->get_input('date_day', MyBB::INPUT_INT), $mybb->get_input('date_year', MyBB::INPUT_INT)) - $localized_time_offset;


if(!$errors)
{
if(is_array($mybb->input['tids']))
{


if(!$errors)
{
if(is_array($mybb->input['tids']))
{

					$mybb->input['tids'] = implode(',' , $mybb->input['tids']);

					$mybb->input['tids'] = implode(',', $mybb->input['tids']);

				}


				}


				$db->insert_query("delayedmoderation", array(

				$did = $db->insert_query("delayedmoderation", array(

					'type' => $db->escape_string($mybb->input['type']),
'delaydateline' => (int)$rundate,
'uid' => $mybb->user['uid'],
'tids' => $db->escape_string($mybb->input['tids']),
'fid' => $fid,
'dateline' => TIME_NOW,

					'type' => $db->escape_string($mybb->input['type']),
'delaydateline' => (int)$rundate,
'uid' => $mybb->user['uid'],
'tids' => $db->escape_string($mybb->input['tids']),
'fid' => $fid,
'dateline' => TIME_NOW,

					'inputs' => $db->escape_string(serialize($mybb->input['delayedmoderation']))

					'inputs' => $db->escape_string(my_serialize($mybb->input['delayedmoderation']))

				));

				));

 

$plugins->run_hooks('moderation_do_delayedmoderation');


$rundate_format = my_date('relative', $rundate, '', 2);
$lang->redirect_delayed_moderation_thread = $lang->sprintf($lang->redirect_delayed_moderation_thread, $rundate_format);


$rundate_format = my_date('relative', $rundate, '', 2);
$lang->redirect_delayed_moderation_thread = $lang->sprintf($lang->redirect_delayed_moderation_thread, $rundate_format);

Zeile 306Zeile 377
					else
{
moderation_redirect(get_forum_link($fid), $lang->sprintf($lang->redirect_delayed_moderation_forum, $rundate_format));

					else
{
moderation_redirect(get_forum_link($fid), $lang->sprintf($lang->redirect_delayed_moderation_forum, $rundate_format));

					}
}
}
else

					}
}
}
else

			{
$type_selected = array();
foreach($allowed_types as $type)
{
$type_selected[$type] = '';

			{
$type_selected = array();
foreach($allowed_types as $type)
{
$type_selected[$type] = '';

				}

				}

				$type_selected[$mybb->get_input('type')] = "checked=\"checked\"";
$method_selected = array('move' => '', 'redirect' => '', 'copy' => '');
if(isset($mybb->input['delayedmoderation']['method']))
{
$method_selected[$mybb->input['delayedmoderation']['method']] = "checked=\"checked\"";

				$type_selected[$mybb->get_input('type')] = "checked=\"checked\"";
$method_selected = array('move' => '', 'redirect' => '', 'copy' => '');
if(isset($mybb->input['delayedmoderation']['method']))
{
$method_selected[$mybb->input['delayedmoderation']['method']] = "checked=\"checked\"";

				}

				}


foreach(array('redirect_expire', 'new_forum', 'subject', 'threadurl') as $value)
{


foreach(array('redirect_expire', 'new_forum', 'subject', 'threadurl') as $value)
{

Zeile 353Zeile 424
			$mybb->input['delayedmoderation']['threadurl'] = '';

$forumselect = build_forum_jump("", $fid, 1, '', 0, true, '', "delayedmoderation[new_forum]");

			$mybb->input['delayedmoderation']['threadurl'] = '';

$forumselect = build_forum_jump("", $fid, 1, '', 0, true, '', "delayedmoderation[new_forum]");

		}


		}


		if(isset($errors) && count($errors) > 0)
{
$display_errors = inline_error($errors);

		if(isset($errors) && count($errors) > 0)
{
$display_errors = inline_error($errors);

Zeile 461Zeile 532
					");
}
}

					");
}
}

 
		

		while($delayedmod = $db->fetch_array($query))
{

		while($delayedmod = $db->fetch_array($query))
{

			$delayedmod['dateline'] = my_date("jS M Y, G:i", $delayedmod['delaydateline']);


			$delayedmod['dateline'] = my_date("jS M Y, {$mybb->settings['timeformat']}", $delayedmod['delaydateline']);
$delayedmod['username'] = htmlspecialchars_uni($delayedmod['username']);

			$delayedmod['profilelink'] = build_profile_link($delayedmod['username'], $delayedmod['uid']);
$delayedmod['action'] = $actions[$delayedmod['type']];
$info = '';
if(strpos($delayedmod['tids'], ',') === false)

			$delayedmod['profilelink'] = build_profile_link($delayedmod['username'], $delayedmod['uid']);
$delayedmod['action'] = $actions[$delayedmod['type']];
$info = '';
if(strpos($delayedmod['tids'], ',') === false)

			{

			{

				$delayed_thread = get_thread($delayedmod['tids']);

				$delayed_thread = get_thread($delayedmod['tids']);

				$info .= "<strong>{$lang->thread}</strong> <a href=\"".get_thread_link($delayedmod['tids'])."\">".htmlspecialchars_uni($delayed_thread['subject'])."</a><br />";
}
else
{
$info .= "<strong>{$lang->thread}</strong> {$lang->multiple_threads}<br />";
}

if($delayedmod['fname'])
{
$info .= "<strong>{$lang->forum}</strong> <a href=\"".get_forum_link($delayedmod['fid'])."\">".htmlspecialchars_uni($delayedmod['fname'])."</a><br />";
}
$delayedmod['inputs'] = my_unserialize($delayedmod['inputs']);

if($delayedmod['type'] == 'move')
{
$info .= "<strong>{$lang->new_forum}</strong> <a href=\"".get_forum_link($delayedmod['inputs']['new_forum'])."\">".htmlspecialchars_uni($forum_cache[$delayedmod['inputs']['new_forum']]['name'])."</a><br />";
if($delayedmod['inputs']['method'] == "redirect")
{
if((int)$delayedmod['inputs']['redirect_expire'] == 0)
{
$redirect_expire_bit = $lang->redirect_forever;
}
else
{








				$delayed_thread['link'] = get_thread_link($delayed_thread['tid']);
$delayed_thread['subject'] = htmlspecialchars_uni($parser->parse_badwords($delayed_thread['subject']));
eval("\$info .= \"".$templates->get("moderation_delayedmodaction_notes_thread_single")."\";");
}
else
{
eval("\$info .= \"".$templates->get("moderation_delayedmodaction_notes_thread_multiple")."\";");
}

if($delayedmod['fname'])
{
$delayedmod['link'] = get_forum_link($delayedmod['fid']);
$delayedmod['fname'] = htmlspecialchars_uni($delayedmod['fname']);
eval("\$info .= \"".$templates->get("moderation_delayedmodaction_notes_forum")."\";");
}
$delayedmod['inputs'] = my_unserialize($delayedmod['inputs']);

if($delayedmod['type'] == 'move')
{
$delayedmod['link'] = get_forum_link($delayedmod['inputs']['new_forum']);
$delayedmod['name'] = htmlspecialchars_uni($forum_cache[$delayedmod['inputs']['new_forum']]['name']);
eval("\$info .= \"".$templates->get("moderation_delayedmodaction_notes_new_forum")."\";");

if($delayedmod['inputs']['method'] == "redirect")
{
if((int)$delayedmod['inputs']['redirect_expire'] == 0)
{
$redirect_expire_bit = $lang->redirect_forever;
}
else
{

						$redirect_expire_bit = (int)$delayedmod['inputs']['redirect_expire']." {$lang->days}";
}

						$redirect_expire_bit = (int)$delayedmod['inputs']['redirect_expire']." {$lang->days}";
}

					$info .= "<strong>{$lang->leave_redirect_for}</strong> {$redirect_expire_bit}<br />";



eval("\$info .= \"".$templates->get("moderation_delayedmodaction_notes_redirect")."\";");

				}

				}

			}
else if($delayedmod['type'] == 'merge')
{
$info .= "<strong>{$lang->new_subject}</strong> ".htmlspecialchars_uni($delayedmod['inputs']['subject'])."<br />";
$info .= "<strong>{$lang->thread_to_merge_with}</strong> <a href=\"".htmlspecialchars_uni($delayedmod['inputs']['threadurl'])."\">".htmlspecialchars_uni($delayedmod['inputs']['threadurl'])."</a><br />";
}


			}
elseif($delayedmod['type'] == 'merge')
{
$delayedmod['subject'] = htmlspecialchars_uni($delayedmod['inputs']['subject']);
$delayedmod['threadurl'] = htmlspecialchars_uni($delayedmod['inputs']['threadurl']);
eval("\$info .= \"".$templates->get("moderation_delayedmodaction_notes_merge")."\";");
}


eval("\$delayedmods .= \"".$templates->get("moderation_delayedmodaction_notes")."\";");
$trow = alt_trow();
}
if(!$delayedmods)


eval("\$delayedmods .= \"".$templates->get("moderation_delayedmodaction_notes")."\";");
$trow = alt_trow();
}
if(!$delayedmods)

		{

		{

			$cols = 5;
eval("\$delayedmods = \"".$templates->get("moderation_delayedmodaction_error")."\";");
}

$url = '';

			$cols = 5;
eval("\$delayedmods = \"".$templates->get("moderation_delayedmodaction_error")."\";");
}

$url = '';

		if($mybb->get_input('tid', 1))

		if($mybb->get_input('tid', MyBB::INPUT_INT))

		{
$lang->threads = $lang->thread;

		{
$lang->threads = $lang->thread;

			$threads = "<a href=\"".get_thread_link($tid)."\">{$thread['subject']}</a>";




			$thread['link'] = get_thread_link($tid);
$delayedmoderation_subject = $mybb->input['delayedmoderation']['subject'];
$delayedmoderation_threadurl = $mybb->input['delayedmoderation']['threadurl'];
eval("\$threads = \"".$templates->get("moderation_delayedmoderation_thread")."\";");

			eval("\$moderation_delayedmoderation_merge = \"".$templates->get("moderation_delayedmoderation_merge")."\";");
}
else

			eval("\$moderation_delayedmoderation_merge = \"".$templates->get("moderation_delayedmoderation_merge")."\";");
}
else

Zeile 534Zeile 619
			}
if(count($tids) < 1)
{

			}
if(count($tids) < 1)
{

				error($lang->error_inline_nothreadsselected);

				error($lang->error_inline_nothreadsselected, $lang->error);

			}

$threads = $lang->sprintf($lang->threads_selected, count($tids));
$moderation_delayedmoderation_merge = '';
}

			}

$threads = $lang->sprintf($lang->threads_selected, count($tids));
$moderation_delayedmoderation_merge = '';
}

		$mybb->input['redirect_expire'] = $mybb->get_input('redirect_expire');

		$redirect_expire = $mybb->get_input('redirect_expire');

		eval("\$moderation_delayedmoderation_move = \"".$templates->get("moderation_delayedmoderation_move")."\";");

// Generate form elements for date form
$dateday = '';
for($day = 1; $day <= 31; ++$day)

		eval("\$moderation_delayedmoderation_move = \"".$templates->get("moderation_delayedmoderation_move")."\";");

// Generate form elements for date form
$dateday = '';
for($day = 1; $day <= 31; ++$day)

		{

		{

			$selected = '';

			$selected = '';

			if($mybb->get_input('date_day', 1) == $day)

			if($mybb->get_input('date_day', MyBB::INPUT_INT) == $day)

			{
$selected = ' selected="selected"';
}

			{
$selected = ' selected="selected"';
}

Zeile 559Zeile 644
		foreach(array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12') as $month)
{
$datemonth[$month] = '';

		foreach(array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12') as $month)
{
$datemonth[$month] = '';

			if($mybb->get_input('date_month', 1) == (int)$month)

			if($mybb->get_input('date_month', MyBB::INPUT_INT) == (int)$month)

			{
$datemonth[$month] = ' selected="selected"';
}
}


			{
$datemonth[$month] = ' selected="selected"';
}
}






		eval('$datemonth = "'.$templates->get('moderation_delayedmoderation_date_month').'";');


		eval('$datemonth = "'.$templates->get('moderation_delayedmoderation_date_month').'";');


		$dateyear = gmdate('Y', TIME_NOW);
$datetime = gmdate('g:i a', TIME_NOW);































		$dateyear = gmdate('Y', TIME_NOW  + $localized_time_offset);
$datetime = gmdate($mybb->settings['timeformat'], TIME_NOW + $localized_time_offset);

$openclosethread = '';
if(is_moderator($fid, "canopenclosethreads"))
{
eval('$openclosethread = "'.$templates->get('moderation_delayedmoderation_openclose').'";');
}

$softdeleterestorethread = '';
if(is_moderator($fid, "cansoftdeletethreads") || is_moderator($fid, "canrestorethreads"))
{
eval('$softdeleterestorethread = "'.$templates->get('moderation_delayedmoderation_softdeleterestore').'";');
}

$deletethread = '';
if(is_moderator($fid, "candeletethreads"))
{
eval('$deletethread = "'.$templates->get('moderation_delayedmoderation_delete').'";');
}

$stickunstickthread = '';
if(is_moderator($fid, "canstickunstickthreads"))
{
eval('$stickunstickthread = "'.$templates->get('moderation_delayedmoderation_stick').'";');
}

$approveunapprovethread = '';
if(is_moderator($fid, "canapproveunapprovethreads"))
{
eval('$approveunapprovethread = "'.$templates->get('moderation_delayedmoderation_approve').'";');
}


$plugins->run_hooks("moderation_delayedmoderation");



$plugins->run_hooks("moderation_delayedmoderation");


Zeile 584Zeile 699
		if(!is_moderator($fid, "canopenclosethreads"))
{
error_no_permission();

		if(!is_moderator($fid, "canopenclosethreads"))
{
error_no_permission();

 
		}

if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);

		}

if($thread['closed'] == 1)

		}

if($thread['closed'] == 1)

Zeile 614Zeile 734
		if(!is_moderator($fid, "canstickunstickthreads"))
{
error_no_permission();

		if(!is_moderator($fid, "canstickunstickthreads"))
{
error_no_permission();

 
		}

if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);

		}

$plugins->run_hooks("moderation_stick");

if($thread['sticky'] == 1)

		}

$plugins->run_hooks("moderation_stick");

if($thread['sticky'] == 1)

		{

		{

			$stuckunstuck = $lang->unstuck;
$redirect = $lang->redirect_unstickthread;
$moderation->unstick_threads($tid);

			$stuckunstuck = $lang->unstuck;
$redirect = $lang->redirect_unstickthread;
$moderation->unstick_threads($tid);

Zeile 634Zeile 759
		$lang->mod_process = $lang->sprintf($lang->mod_process, $stuckunstuck);

log_moderator_action($modlogdata, $lang->mod_process);

		$lang->mod_process = $lang->sprintf($lang->mod_process, $stuckunstuck);

log_moderator_action($modlogdata, $lang->mod_process);





		moderation_redirect(get_thread_link($thread['tid']), $redirect);
break;

// Remove redirects to a specific thread
case "removeredirects":

		moderation_redirect(get_thread_link($thread['tid']), $redirect);
break;

// Remove redirects to a specific thread
case "removeredirects":





		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

if(!is_moderator($fid, "canmanagethreads"))
{
error_no_permission();

		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

if(!is_moderator($fid, "canmanagethreads"))
{
error_no_permission();

 
		}

if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);

		}

$plugins->run_hooks("moderation_removeredirects");

$moderation->remove_redirects($tid);

		}

$plugins->run_hooks("moderation_removeredirects");

$moderation->remove_redirects($tid);





		log_moderator_action($modlogdata, $lang->redirects_removed);
moderation_redirect(get_thread_link($thread['tid']), $lang->redirect_redirectsremoved);
break;

		log_moderator_action($modlogdata, $lang->redirects_removed);
moderation_redirect(get_thread_link($thread['tid']), $lang->redirect_redirectsremoved);
break;

Zeile 669Zeile 799
				error_no_permission();
}
}

				error_no_permission();
}
}





		$plugins->run_hooks("moderation_deletethread");

eval("\$deletethread = \"".$templates->get("moderation_deletethread")."\";");

		$plugins->run_hooks("moderation_deletethread");

eval("\$deletethread = \"".$templates->get("moderation_deletethread")."\";");

Zeile 683Zeile 813
		verify_post_check($mybb->get_input('my_post_key'));

if(!is_moderator($fid, "candeletethreads"))

		verify_post_check($mybb->get_input('my_post_key'));

if(!is_moderator($fid, "candeletethreads"))

		{
if($permissions['candeletethreads'] != 1 || $mybb->user['uid'] != $thread['uid'])
{
error_no_permission();
}
}

$plugins->run_hooks("moderation_do_deletethread");


		{
if($permissions['candeletethreads'] != 1 || $mybb->user['uid'] != $thread['uid'])
{
error_no_permission();
}
}

$plugins->run_hooks("moderation_do_deletethread");


		// Log the subject of the deleted thread
$modlogdata['thread_subject'] = $thread['subject'];


		// Log the subject of the deleted thread
$modlogdata['thread_subject'] = $thread['subject'];


Zeile 708Zeile 838
	// Delete the poll from a thread confirmation page
case "deletepoll":
add_breadcrumb($lang->nav_deletepoll);

	// Delete the poll from a thread confirmation page
case "deletepoll":
add_breadcrumb($lang->nav_deletepoll);





		if(!is_moderator($fid, "canmanagepolls"))
{
if($permissions['candeletethreads'] != 1 || $mybb->user['uid'] != $thread['uid'])

		if(!is_moderator($fid, "canmanagepolls"))
{
if($permissions['candeletethreads'] != 1 || $mybb->user['uid'] != $thread['uid'])

Zeile 719Zeile 849

$plugins->run_hooks("moderation_deletepoll");



$plugins->run_hooks("moderation_deletepoll");


		$query = $db->simple_select("polls", "*", "tid='$tid'");

		$query = $db->simple_select("polls", "pid", "tid='$tid'");

		$poll = $db->fetch_array($query);
if(!$poll)
{

		$poll = $db->fetch_array($query);
if(!$poll)
{

			error($lang->error_invalidpoll);

			error($lang->error_invalidpoll, $lang->error);

		}

eval("\$deletepoll = \"".$templates->get("moderation_deletepoll")."\";");

		}

eval("\$deletepoll = \"".$templates->get("moderation_deletepoll")."\";");

Zeile 731Zeile 861
		break;

// Delete the actual poll here!

		break;

// Delete the actual poll here!

	case "do_deletepoll":


	case "do_deletepoll":


		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

 

if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);
}


if(!isset($mybb->input['delete']))


if(!isset($mybb->input['delete']))

		{

		{

			error($lang->redirect_pollnotdeleted);
}
if(!is_moderator($fid, "canmanagepolls"))

			error($lang->redirect_pollnotdeleted);
}
if(!is_moderator($fid, "canmanagepolls"))

Zeile 747Zeile 882
				error_no_permission();
}
}

				error_no_permission();
}
}

		$query = $db->simple_select("polls", "*", "tid='$tid'");

		$query = $db->simple_select("polls", "pid", "tid = $tid");

		$poll = $db->fetch_array($query);
if(!$poll)

		$poll = $db->fetch_array($query);
if(!$poll)

		{
error($lang->error_invalidpoll);
}

$plugins->run_hooks("moderation_do_deletepoll");

		{
error($lang->error_invalidpoll, $lang->error);
}

$plugins->run_hooks("moderation_do_deletepoll");


$lang->poll_deleted = $lang->sprintf($lang->poll_deleted, $thread['subject']);
log_moderator_action($modlogdata, $lang->poll_deleted);


$lang->poll_deleted = $lang->sprintf($lang->poll_deleted, $thread['subject']);
log_moderator_action($modlogdata, $lang->poll_deleted);

Zeile 769Zeile 904

// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));





		if(!is_moderator($fid, "canapproveunapprovethreads"))

		if(!is_moderator($fid, "canapproveunapprovethreads"))

		{

		{

			error_no_permission();
}

			error_no_permission();
}

 

if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);
}


		$thread = get_thread($tid);

$plugins->run_hooks("moderation_approvethread");

		$thread = get_thread($tid);

$plugins->run_hooks("moderation_approvethread");

Zeile 796Zeile 937
		{
error_no_permission();
}

		{
error_no_permission();
}

		$thread = get_thread($tid);

$plugins->run_hooks("moderation_unapprovethread");









if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);
}

$thread = get_thread($tid);

$plugins->run_hooks("moderation_unapprovethread");


		$lang->thread_unapproved = $lang->sprintf($lang->thread_unapproved, $thread['subject']);
log_moderator_action($modlogdata, $lang->thread_unapproved);


		$lang->thread_unapproved = $lang->sprintf($lang->thread_unapproved, $thread['subject']);
log_moderator_action($modlogdata, $lang->thread_unapproved);


Zeile 810Zeile 957

// Restore a thread
case "restorethread":


// Restore a thread
case "restorethread":





		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


Zeile 825Zeile 972
		$lang->thread_restored = $lang->sprintf($lang->thread_restored, $thread['subject']);
log_moderator_action($modlogdata, $lang->thread_restored);


		$lang->thread_restored = $lang->sprintf($lang->thread_restored, $thread['subject']);
log_moderator_action($modlogdata, $lang->thread_restored);


		$moderation->restore_threads($tid, $fid);


		$moderation->restore_threads($tid);


		moderation_redirect(get_thread_link($thread['tid']), $lang->redirect_threadrestored);
break;

// Soft delete a thread
case "softdeletethread":

		moderation_redirect(get_thread_link($thread['tid']), $lang->redirect_threadrestored);
break;

// Soft delete a thread
case "softdeletethread":





		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

if(!is_moderator($fid, "cansoftdeletethreads"))

		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

if(!is_moderator($fid, "cansoftdeletethreads"))

		{

		{

			error_no_permission();
}
$thread = get_thread($tid);

			error_no_permission();
}
$thread = get_thread($tid);


$plugins->run_hooks("moderation_softdeletethread");



$plugins->run_hooks("moderation_softdeletethread");


		$lang->thread_soft_deleted = $lang->sprintf($lang->thread_soft_deleted, $thread['subject']);
log_moderator_action($modlogdata, $lang->thread_soft_deleted);

$moderation->soft_delete_threads($tid);

		$lang->thread_soft_deleted = $lang->sprintf($lang->thread_soft_deleted, $thread['subject']);
log_moderator_action($modlogdata, $lang->thread_soft_deleted);

$moderation->soft_delete_threads($tid);





		moderation_redirect(get_thread_link($thread['tid']), $lang->redirect_threadsoftdeleted);
break;


		moderation_redirect(get_thread_link($thread['tid']), $lang->redirect_threadsoftdeleted);
break;


Zeile 858Zeile 1005
		if(!is_moderator($fid, "canmanagethreads"))
{
error_no_permission();

		if(!is_moderator($fid, "canmanagethreads"))
{
error_no_permission();

 
		}

if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);

		}

$plugins->run_hooks("moderation_move");

		}

$plugins->run_hooks("moderation_move");

Zeile 868Zeile 1020
		break;

// Let's get this thing moving!

		break;

// Let's get this thing moving!

	case "do_move":


	case "do_move":


		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


		$moveto = $mybb->get_input('moveto', 1);

		$moveto = $mybb->get_input('moveto', MyBB::INPUT_INT);

		$method = $mybb->get_input('method');

		$method = $mybb->get_input('method');





		if(!is_moderator($fid, "canmanagethreads"))

		if(!is_moderator($fid, "canmanagethreads"))

		{
error_no_permission();
}


		{
error_no_permission();
}


		// Check if user has moderator permission to move to destination
if(!is_moderator($moveto, "canmanagethreads") && !is_moderator($fid, "canmovetononmodforum"))
{
error_no_permission();

		// Check if user has moderator permission to move to destination
if(!is_moderator($moveto, "canmanagethreads") && !is_moderator($fid, "canmovetononmodforum"))
{
error_no_permission();

		}







		}

if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);
}


		$newperms = forum_permissions($moveto);
if($newperms['canview'] == 0 && !is_moderator($fid, "canmovetononmodforum"))

		$newperms = forum_permissions($moveto);
if($newperms['canview'] == 0 && !is_moderator($fid, "canmovetononmodforum"))

		{
error_no_permission();

		{
error($lang->error_movetononmodforum, $lang->error);

		}

$newforum = get_forum($moveto);
if(!$newforum || $newforum['type'] != "f" || $newforum['type'] == "f" && $newforum['linkto'] != '')
{

		}

$newforum = get_forum($moveto);
if(!$newforum || $newforum['type'] != "f" || $newforum['type'] == "f" && $newforum['linkto'] != '')
{

			error($lang->error_invalidforum);

			error($lang->error_invalidforum, $lang->error);

		}
if($method != "copy" && $thread['fid'] == $moveto)

		}
if($method != "copy" && $thread['fid'] == $moveto)

		{
error($lang->error_movetosameforum);
}



		{
error($lang->error_movetosameforum, $lang->error);
}

$plugins->run_hooks('moderation_do_move');


$expire = 0;


$expire = 0;

		if($mybb->get_input('redirect_expire', 1) > 0)

		if($mybb->get_input('redirect_expire', MyBB::INPUT_INT) > 0)

		{

		{

			$expire = TIME_NOW + ($mybb->get_input('redirect_expire', 1) * 86400);

			$expire = TIME_NOW + ($mybb->get_input('redirect_expire', MyBB::INPUT_INT) * 86400);

		}

$the_thread = $tid;

$newtid = $moderation->move_thread($tid, $moveto, $method, $expire);

		}

$the_thread = $tid;

$newtid = $moderation->move_thread($tid, $moveto, $method, $expire);





		switch($method)
{
case "copy":

		switch($method)
{
case "copy":

Zeile 924Zeile 1085
		}

moderation_redirect(get_thread_link($newtid), $lang->redirect_threadmoved);

		}

moderation_redirect(get_thread_link($newtid), $lang->redirect_threadmoved);

		break;

		break;


// Viewing thread notes
case "viewthreadnotes":
if(!is_moderator($fid))


// Viewing thread notes
case "viewthreadnotes":
if(!is_moderator($fid))

		{

		{

			error_no_permission();
}

// Make sure we are looking at a real thread here.
if(!$thread)
{

			error_no_permission();
}

// Make sure we are looking at a real thread here.
if(!$thread)
{

			error($lang->error_nomember);

			error($lang->error_nomember, $lang->error);

		}


		}


		$lang->view_notes_for = $lang->sprintf($lang->view_notes_for, $thread['subject']);



		$plugins->run_hooks('moderation_viewthreadnotes');

$lang->view_notes_for = $lang->sprintf($lang->view_notes_for, $thread['subject']);


$thread['notes'] = nl2br(htmlspecialchars_uni($thread['notes']));



$thread['notes'] = nl2br(htmlspecialchars_uni($thread['notes']));


Zeile 950Zeile 1113
	// Thread notes editor
case "threadnotes":
add_breadcrumb($lang->nav_threadnotes);

	// Thread notes editor
case "threadnotes":
add_breadcrumb($lang->nav_threadnotes);

		if(!is_moderator($fid, "canmanagethreads"))
{
error_no_permission();
}

		if(!is_moderator($fid, "canmanagethreads"))
{
error_no_permission();
}

		$thread['notes'] = htmlspecialchars_uni($parser->parse_badwords($thread['notes']));
$trow = alt_trow(1);


		$thread['notes'] = htmlspecialchars_uni($parser->parse_badwords($thread['notes']));
$trow = alt_trow(1);


Zeile 974Zeile 1137
			while($modaction = $db->fetch_array($query))
{
$modaction['dateline'] = my_date("jS M Y, G:i", $modaction['dateline']);

			while($modaction = $db->fetch_array($query))
{
$modaction['dateline'] = my_date("jS M Y, G:i", $modaction['dateline']);

 
				$modaction['username'] = htmlspecialchars_uni($modaction['username']);

				$modaction['profilelink'] = build_profile_link($modaction['username'], $modaction['uid']);
$modaction['action'] = htmlspecialchars_uni($modaction['action']);
$info = '';
if($modaction['tsubject'])
{

				$modaction['profilelink'] = build_profile_link($modaction['username'], $modaction['uid']);
$modaction['action'] = htmlspecialchars_uni($modaction['action']);
$info = '';
if($modaction['tsubject'])
{

					$info .= "<strong>$lang->thread</strong> <a href=\"".get_thread_link($modaction['tid'])."\">".htmlspecialchars_uni($modaction['tsubject'])."</a><br />";



					$modaction['tsubject'] = htmlspecialchars_uni($parser->parse_badwords($modaction['tsubject']));
$modaction['threadlink'] = get_thread_link($modaction['tid']);
eval("\$info .= \"".$templates->get("moderation_threadnotes_modaction_thread")."\";");

				}
if($modaction['fname'])

				}
if($modaction['fname'])

				{
$info .= "<strong>$lang->forum</strong> <a href=\"".get_forum_link($modaction['fid'])."\">".htmlspecialchars_uni($modaction['fname'])."</a><br />";
}



				{
$modaction['fname'] = htmlspecialchars_uni($modaction['fname']);
$modaction['forumlink'] = get_forum_link($modaction['fid']);
eval("\$info .= \"".$templates->get("moderation_threadnotes_modaction_forum")."\";");
}

				if($modaction['psubject'])
{

				if($modaction['psubject'])
{

					$info .= "<strong>$lang->post</strong> <a href=\"".get_post_link($modaction['pid'])."#pid".$modaction['pid']."\">".htmlspecialchars_uni($modaction['psubject'])."</a>";





$modaction['psubject'] = htmlspecialchars_uni($parser->parse_badwords($modaction['psubject']));
$modaction['postlink'] = get_post_link($modaction['pid']);
eval("\$info .= \"".$templates->get("moderation_threadnotes_modaction_post")."\";");

				}

eval("\$modactions .= \"".$templates->get("moderation_threadnotes_modaction")."\";");

				}

eval("\$modactions .= \"".$templates->get("moderation_threadnotes_modaction")."\";");

Zeile 996Zeile 1167
			if(!$modactions)
{
eval("\$modactions = \"".$templates->get("moderation_threadnotes_modaction_error")."\";");

			if(!$modactions)
{
eval("\$modactions = \"".$templates->get("moderation_threadnotes_modaction_error")."\";");

			}
}


			}
}


		$actions = array(
'openclosethread' => $lang->open_close_thread,
'deletethread' => $lang->delete_thread,

		$actions = array(
'openclosethread' => $lang->open_close_thread,
'deletethread' => $lang->delete_thread,

Zeile 1056Zeile 1227
		while($delayedmod = $db->fetch_array($query))
{
$delayedmod['dateline'] = my_date("jS M Y, G:i", $delayedmod['delaydateline']);

		while($delayedmod = $db->fetch_array($query))
{
$delayedmod['dateline'] = my_date("jS M Y, G:i", $delayedmod['delaydateline']);

 
			$delayedmod['username'] = htmlspecialchars_uni($delayedmod['username']);

			$delayedmod['profilelink'] = build_profile_link($delayedmod['username'], $delayedmod['uid']);
$delayedmod['action'] = $actions[$delayedmod['type']];
$info = '';
if(strpos($delayedmod['tids'], ',') === false)
{

			$delayedmod['profilelink'] = build_profile_link($delayedmod['username'], $delayedmod['uid']);
$delayedmod['action'] = $actions[$delayedmod['type']];
$info = '';
if(strpos($delayedmod['tids'], ',') === false)
{

				$info .= "<strong>{$lang->thread}</strong> <a href=\"".get_thread_link($delayedmod['tids'])."\">{$thread['subject']}</a><br />";



				$delayed_thread['link'] = get_thread_link($delayedmod['tids']);
$delayed_thread['subject'] = htmlspecialchars_uni($thread['subject']);
eval("\$info .= \"".$templates->get("moderation_delayedmodaction_notes_thread_single")."\";");

			}
else
{

			}
else
{

				$info .= "<strong>{$lang->thread}</strong> {$lang->multiple_threads}<br />";

				eval("\$info .= \"".$templates->get("moderation_delayedmodaction_notes_thread_multiple")."\";");

			}

if($delayedmod['fname'])
{

			}

if($delayedmod['fname'])
{

				$info .= "<strong>{$lang->forum}</strong> <a href=\"".get_forum_link($delayedmod['fid'])."\">".htmlspecialchars_uni($delayedmod['fname'])."</a><br />";



				$delayedmod['link'] = get_forum_link($delayedmod['fid']);
$delayedmod['fname'] = htmlspecialchars_uni($delayedmod['fname']);
eval("\$info .= \"".$templates->get("moderation_delayedmodaction_notes_forum")."\";");

			}
$delayedmod['inputs'] = my_unserialize($delayedmod['inputs']);

if($delayedmod['type'] == 'move')
{

			}
$delayedmod['inputs'] = my_unserialize($delayedmod['inputs']);

if($delayedmod['type'] == 'move')
{

				$info .= "<strong>{$lang->new_forum}</strong>  <a href=\"".get_forum_link($delayedmod['inputs']['new_forum'])."\">".htmlspecialchars_uni($forum_cache[$delayedmod['inputs']['new_forum']]['name'])."</a><br />";




				$delayedmod['link'] = get_forum_link($delayedmod['inputs']['new_forum']);
$delayedmod['name'] = htmlspecialchars_uni($forum_cache[$delayedmod['inputs']['new_forum']]['name']);
eval("\$info .= \"".$templates->get("moderation_delayedmodaction_notes_new_forum")."\";");


				if($delayedmod['inputs']['method'] == "redirect")

				if($delayedmod['inputs']['method'] == "redirect")

				{
$info .= "<strong>{$lang->leave_redirect_for}</strong> ".(int)$delayedmod['inputs']['redirect_expire']." {$lang->days}<br />";










				{
if((int)$delayedmod['inputs']['redirect_expire'] == 0)
{
$redirect_expire_bit = $lang->redirect_forever;
}
else
{
$redirect_expire_bit = (int)$delayedmod['inputs']['redirect_expire']." {$lang->days}";
}

eval("\$info .= \"".$templates->get("moderation_delayedmodaction_notes_redirect")."\";");

				}
}

				}
}

			else if($delayedmod['type'] == 'merge')

			elseif($delayedmod['type'] == 'merge')

			{

			{

				$info .= "<strong>{$lang->new_subject}</strong> ".htmlspecialchars_uni($delayedmod['inputs']['subject'])."<br />";
$info .= "<strong>{$lang->thread_to_merge_with}</strong> <a href=\"".htmlspecialchars_uni($delayedmod['inputs']['threadurl'])."\">".htmlspecialchars_uni($delayedmod['inputs']['threadurl'])."</a><br />";


				$delayedmod['subject'] = htmlspecialchars_uni($delayedmod['inputs']['subject']);
$delayedmod['threadurl'] = htmlspecialchars_uni($delayedmod['inputs']['threadurl']);
eval("\$info .= \"".$templates->get("moderation_delayedmodaction_notes_merge")."\";");

			}

eval("\$delayedmods .= \"".$templates->get("moderation_threadnotes_delayedmodaction")."\";");

			}

eval("\$delayedmods .= \"".$templates->get("moderation_threadnotes_delayedmodaction")."\";");

Zeile 1139Zeile 1328
			$hostname = $lang->resolve_fail;
}


			$hostname = $lang->resolve_fail;
}


 
		$post['username'] = htmlspecialchars_uni($post['username']);

		$username = build_profile_link($post['username'], $post['uid']);

// Moderator options

		$username = build_profile_link($post['username'], $post['uid']);

// Moderator options

Zeile 1149Zeile 1339
			eval("\$modoptions = \"".$templates->get("moderation_getip_modoptions")."\";");
}


			eval("\$modoptions = \"".$templates->get("moderation_getip_modoptions")."\";");
}


		eval("\$getip = \"".$templates->get("moderation_getip")."\";");
output_page($getip);
break;












		$plugins->run_hooks('moderation_getip');

if($modal)
{
eval("\$getip = \"".$templates->get("moderation_getip_modal", 1, 0)."\";");
echo $getip;
exit;
}
else
{
eval("\$getip = \"".$templates->get("moderation_getip")."\";");
output_page($getip);
break;
}


// Let's look up the ip address of a PM
case "getpmip":
if($pmid <= 0)


// Let's look up the ip address of a PM
case "getpmip":
if($pmid <= 0)

		{
error($lang->error_invalidpm);

		{
error($lang->error_invalidpm, $lang->error);

		}
add_breadcrumb($lang->nav_pms, "private.php");
$pm['subject'] = htmlspecialchars_uni($parser->parse_badwords($pm['subject']));
add_breadcrumb($pm['subject'], "private.php?action=read&amp;pmid={$pmid}");
add_breadcrumb($lang->nav_getpmip);
if(!$mybb->usergroup['issupermod'])

		}
add_breadcrumb($lang->nav_pms, "private.php");
$pm['subject'] = htmlspecialchars_uni($parser->parse_badwords($pm['subject']));
add_breadcrumb($pm['subject'], "private.php?action=read&amp;pmid={$pmid}");
add_breadcrumb($lang->nav_getpmip);
if(!$mybb->usergroup['issupermod'])

		{
error_no_permission();
}

		{
error_no_permission();
}


$pm['ipaddress'] = my_inet_ntop($db->unescape_binary($pm['ipaddress']));
$hostname = @gethostbyaddr($pm['ipaddress']);


$pm['ipaddress'] = my_inet_ntop($db->unescape_binary($pm['ipaddress']));
$hostname = @gethostbyaddr($pm['ipaddress']);

Zeile 1175Zeile 1376
			$hostname = $lang->resolve_fail;
}


			$hostname = $lang->resolve_fail;
}


		$user = get_user($pm['uid']);
$pm['username'] = $user['username'];

$username = build_profile_link($pm['username'], $pm['uid']);

		$name = $db->fetch_field($db->simple_select('users', 'username', "uid = {$pm['fromid']}"), 'username');
$username = build_profile_link($name, $pm['fromid']);




// Moderator options
$modoptions = "";


// Moderator options
$modoptions = "";

Zeile 1187Zeile 1386
			$ipaddress = $pm['ipaddress'];
eval("\$modoptions = \"".$templates->get("moderation_getip_modoptions")."\";");
}

			$ipaddress = $pm['ipaddress'];
eval("\$modoptions = \"".$templates->get("moderation_getip_modoptions")."\";");
}


eval("\$getpmip = \"".$templates->get("moderation_getpmip")."\";");
output_page($getpmip);
break;













$plugins->run_hooks('moderation_getpmip');

if($modal)
{
eval("\$getpmip = \"".$templates->get("moderation_getpmip_modal", 1, 0)."\";");
echo $getpmip;
exit;
}
else
{
eval("\$getpmip = \"".$templates->get("moderation_getpmip")."\";");
output_page($getpmip);
break;
}


// Merge threads
case "merge":


// Merge threads
case "merge":

Zeile 1200Zeile 1410
			error_no_permission();
}


			error_no_permission();
}


		$plugins->run_hooks("moderation_merge");

eval("\$merge = \"".$templates->get("moderation_merge")."\";");
output_page($merge);
break;

// Let's get those threads together baby! (Merge threads)
case "do_merge":

// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

if(!is_moderator($fid, "canmanagethreads"))
{
error_no_permission();
}

$plugins->run_hooks("moderation_do_merge");

// explode at # sign in a url (indicates a name reference) and reassign to the url
$realurl = explode("#", $mybb->get_input('threadurl'));
$mybb->input['threadurl'] = $realurl[0];

// Are we using an SEO URL?
if(substr($mybb->input['threadurl'], -4) == "html")
{
// Get thread to merge's tid the SEO way
preg_match("#thread-([0-9]+)?#i", $mybb->input['threadurl'], $threadmatch);
preg_match("#post-([0-9]+)?#i", $mybb->input['threadurl'], $postmatch);

if($threadmatch[1])
{
$parameters['tid'] = $threadmatch[1];
}

if($postmatch[1])
{
$parameters['pid'] = $postmatch[1];
}
}
else

		if($thread['visible'] == -1)









































		{

		{

			// Get thread to merge's tid the normal way
$splitloc = explode(".php", $mybb->input['threadurl']);
$temp = explode("&", my_substr($splitloc[1], 1));






			error($lang->error_thread_deleted, $lang->error);
}

$plugins->run_hooks("moderation_merge");

eval("\$merge = \"".$templates->get("moderation_merge")."\";");
output_page($merge);
break;





			if(!empty($temp))
{
for($i = 0; $i < count($temp); $i++)
{
$temp2 = explode("=", $temp[$i], 2);
$parameters[$temp2[0]] = $temp2[1];
}
}














































	// Let's get those threads together baby! (Merge threads)
case "do_merge":

// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

if(!is_moderator($fid, "canmanagethreads"))
{
error_no_permission();
}

if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);
}

$plugins->run_hooks("moderation_do_merge");

// explode at # sign in a url (indicates a name reference) and reassign to the url
$realurl = explode("#", $mybb->get_input('threadurl'));
$mybb->input['threadurl'] = $realurl[0];

// Are we using an SEO URL?
if(substr($mybb->input['threadurl'], -4) == "html")
{
// Get thread to merge's tid the SEO way
preg_match("#thread-([0-9]+)?#i", $mybb->input['threadurl'], $threadmatch);
preg_match("#post-([0-9]+)?#i", $mybb->input['threadurl'], $postmatch);

if($threadmatch[1])
{
$parameters['tid'] = $threadmatch[1];
}

if($postmatch[1])
{
$parameters['pid'] = $postmatch[1];
}
}
else
{
// Get thread to merge's tid the normal way
$splitloc = explode(".php", $mybb->input['threadurl']);
$temp = explode("&", my_substr($splitloc[1], 1));

if(!empty($temp))
{
for($i = 0; $i < count($temp); $i++)
{
$temp2 = explode("=", $temp[$i], 2);
$parameters[$temp2[0]] = $temp2[1];
}
}

			else
{
$temp2 = explode("=", $splitloc[1], 2);

			else
{
$temp2 = explode("=", $splitloc[1], 2);

Zeile 1277Zeile 1497
		$mergethread = get_thread($mergetid);
if(!$mergethread)
{

		$mergethread = get_thread($mergetid);
if(!$mergethread)
{

			error($lang->error_badmergeurl);

			error($lang->error_badmergeurl, $lang->error);

		}
if($mergetid == $tid)
{ // sanity check

		}
if($mergetid == $tid)
{ // sanity check

			error($lang->error_mergewithself);

			error($lang->error_mergewithself, $lang->error);

		}
if(!is_moderator($mergethread['fid'], "canmanagethreads"))
{

		}
if(!is_moderator($mergethread['fid'], "canmanagethreads"))
{

Zeile 1310Zeile 1530
		{
error_no_permission();
}

		{
error_no_permission();
}

 

if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);
}


		$query = $db->query("
SELECT p.*, u.*
FROM ".TABLE_PREFIX."posts p

		$query = $db->query("
SELECT p.*, u.*
FROM ".TABLE_PREFIX."posts p

Zeile 1317Zeile 1543
			WHERE tid='$tid'
ORDER BY dateline ASC
");

			WHERE tid='$tid'
ORDER BY dateline ASC
");

 


		$numposts = $db->num_rows($query);
if($numposts <= 1)
{

		$numposts = $db->num_rows($query);
if($numposts <= 1)
{

			error($lang->error_cantsplitonepost);

			error($lang->error_cantsplitonepost, $lang->error);

		}

$altbg = "trow1";

		}

$altbg = "trow1";

Zeile 1328Zeile 1555
		while($post = $db->fetch_array($query))
{
$postdate = my_date('relative', $post['dateline']);

		while($post = $db->fetch_array($query))
{
$postdate = my_date('relative', $post['dateline']);




			$post['username'] = htmlspecialchars_uni($post['username']);


			$parser_options = array(
"allow_html" => $forum['allowhtml'],
"allow_mycode" => $forum['allowmycode'],

			$parser_options = array(
"allow_html" => $forum['allowhtml'],
"allow_mycode" => $forum['allowmycode'],

Zeile 1341Zeile 1569
			{
$parser_options['allow_smilies'] = 0;
}

			{
$parser_options['allow_smilies'] = 0;
}





			$message = $parser->parse_message($post['message'], $parser_options);
eval("\$posts .= \"".$templates->get("moderation_split_post")."\";");
$altbg = alt_trow();
}

			$message = $parser->parse_message($post['message'], $parser_options);
eval("\$posts .= \"".$templates->get("moderation_split_post")."\";");
$altbg = alt_trow();
}

 

clearinline($tid, 'thread');

		$forumselect = build_forum_jump("", $fid, 1, '', 0, true, '', "moveto");

$plugins->run_hooks("moderation_split");

		$forumselect = build_forum_jump("", $fid, 1, '', 0, true, '', "moveto");

$plugins->run_hooks("moderation_split");

Zeile 1363Zeile 1593
		if(!is_moderator($fid, "canmanagethreads"))
{
error_no_permission();

		if(!is_moderator($fid, "canmanagethreads"))
{
error_no_permission();

 
		}

if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);

		}

$plugins->run_hooks("moderation_do_split");


		}

$plugins->run_hooks("moderation_do_split");


		$mybb->input['splitpost'] = $mybb->get_input('splitpost', 2);

		$mybb->input['splitpost'] = $mybb->get_input('splitpost', MyBB::INPUT_ARRAY);

		if(empty($mybb->input['splitpost']))

		if(empty($mybb->input['splitpost']))

		{
error($lang->error_nosplitposts);

		{
error($lang->error_nosplitposts, $lang->error);

		}
$query = $db->simple_select("posts", "COUNT(*) AS totalposts", "tid='{$tid}'");
$count = $db->fetch_array($query);

if($count['totalposts'] == 1)

		}
$query = $db->simple_select("posts", "COUNT(*) AS totalposts", "tid='{$tid}'");
$count = $db->fetch_array($query);

if($count['totalposts'] == 1)

		{
error($lang->error_cantsplitonepost);
}

		{
error($lang->error_cantsplitonepost, $lang->error);
}


if($count['totalposts'] == count($mybb->input['splitpost']))


if($count['totalposts'] == count($mybb->input['splitpost']))

		{
error($lang->error_cantsplitall);

		{
error($lang->error_cantsplitall, $lang->error);

		}

if(!empty($mybb->input['moveto']))
{

		}

if(!empty($mybb->input['moveto']))
{

			$moveto = $mybb->get_input('moveto', 1);

			$moveto = $mybb->get_input('moveto', MyBB::INPUT_INT);

		}
else
{

		}
else
{

Zeile 1396Zeile 1631

$newforum = get_forum($moveto);
if(!$newforum || $newforum['type'] != "f" || $newforum['type'] == "f" && $newforum['linkto'] != '')


$newforum = get_forum($moveto);
if(!$newforum || $newforum['type'] != "f" || $newforum['type'] == "f" && $newforum['linkto'] != '')

		{
error($lang->error_invalidforum);

		{
error($lang->error_invalidforum, $lang->error);

		}

$pids = array();

		}

$pids = array();

Zeile 1411Zeile 1646
				$pids[] = $post['pid'];
}
mark_reports($post['pid'], "post");

				$pids[] = $post['pid'];
}
mark_reports($post['pid'], "post");

		}

$newtid = $moderation->split_posts($pids, $tid, $moveto, $mybb->get_input('newsubject'));


		}

$newtid = $moderation->split_posts($pids, $tid, $moveto, $mybb->get_input('newsubject'));


		log_moderator_action($modlogdata, $lang->thread_split);

moderation_redirect(get_thread_link($newtid), $lang->redirect_threadsplit);

		log_moderator_action($modlogdata, $lang->thread_split);

moderation_redirect(get_thread_link($newtid), $lang->redirect_threadsplit);

Zeile 1422Zeile 1657

// Delete Thread Subscriptions
case "removesubscriptions":


// Delete Thread Subscriptions
case "removesubscriptions":

 

// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


		if(!is_moderator($fid, "canmanagethreads"))

		if(!is_moderator($fid, "canmanagethreads"))

		{

		{

			error_no_permission();

			error_no_permission();

		}






		}

if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);
}


$plugins->run_hooks("moderation_removesubscriptions");



$plugins->run_hooks("moderation_removesubscriptions");


Zeile 1439Zeile 1683
	// Delete Threads - Inline moderation
case "multideletethreads":
add_breadcrumb($lang->nav_multi_deletethreads);

	// Delete Threads - Inline moderation
case "multideletethreads":
add_breadcrumb($lang->nav_multi_deletethreads);


if(!empty($mybb->input['searchid']))
{
// From search page


if(!empty($mybb->input['searchid']))
{
// From search page

			$threads = getids($mybb->get_input('searchid'), 'search');
if(!is_moderator_by_tids($threads, 'candeletethreads'))
{

			$threads = getids($mybb->get_input('searchid'), 'search');
if(!is_moderator_by_tids($threads, 'candeletethreads'))
{

Zeile 1459Zeile 1703
		}
if(count($threads) < 1)
{

		}
if(count($threads) < 1)
{

			error($lang->error_inline_nothreadsselected);

			error($lang->error_inline_nothreadsselected, $lang->error);

		}

$inlineids = implode("|", $threads);
if($mybb->get_input('inlinetype') == 'search')
{

		}

$inlineids = implode("|", $threads);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 1496Zeile 1740
		log_moderator_action($modlogdata, $lang->multi_deleted_threads);
if($mybb->get_input('inlinetype') == 'search')
{

		log_moderator_action($modlogdata, $lang->multi_deleted_threads);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 1507Zeile 1751
		break;

// Open threads - Inline moderation

		break;

// Open threads - Inline moderation

	case "multiopenthreads":

// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

if(!empty($mybb->input['searchid']))
{
// From search page
$threads = getids($mybb->get_input('searchid'), 'search');
if(!is_moderator_by_tids($threads, 'canopenclosethreads'))
{
error_no_permission();
}
}
else
{
$threads = getids($fid, 'forum');
if(!is_moderator($fid, 'canopenclosethreads'))
{
error_no_permission();
}
}

if(count($threads) < 1)
{
error($lang->error_inline_nothreadsselected);
}

$moderation->open_threads($threads);


	case "multiopenthreads":

// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

if(!empty($mybb->input['searchid']))
{
// From search page
$threads = getids($mybb->get_input('searchid'), 'search');
if(!is_moderator_by_tids($threads, 'canopenclosethreads'))
{
error_no_permission();
}
}
else
{
$threads = getids($fid, 'forum');
if(!is_moderator($fid, 'canopenclosethreads'))
{
error_no_permission();
}
}

if(count($threads) < 1)
{
error($lang->error_inline_nothreadsselected, $lang->error);
}

$moderation->open_threads($threads);


		log_moderator_action($modlogdata, $lang->multi_opened_threads);
if($mybb->get_input('inlinetype') == 'search')
{

		log_moderator_action($modlogdata, $lang->multi_opened_threads);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 1574Zeile 1818
		}
if(count($threads) < 1)
{

		}
if(count($threads) < 1)
{

			error($lang->error_inline_nothreadsselected);

			error($lang->error_inline_nothreadsselected, $lang->error);

		}

$moderation->close_threads($threads);

		}

$moderation->close_threads($threads);

Zeile 1582Zeile 1826
		log_moderator_action($modlogdata, $lang->multi_closed_threads);
if($mybb->get_input('inlinetype') == 'search')
{

		log_moderator_action($modlogdata, $lang->multi_closed_threads);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 1616Zeile 1860
		}
if(count($threads) < 1)
{

		}
if(count($threads) < 1)
{

			error($lang->error_inline_nothreadsselected);

			error($lang->error_inline_nothreadsselected, $lang->error);

		}

$moderation->approve_threads($threads, $fid);

log_moderator_action($modlogdata, $lang->multi_approved_threads);

		}

$moderation->approve_threads($threads, $fid);

log_moderator_action($modlogdata, $lang->multi_approved_threads);

		if($mybb->get_input('inlinetype') == 'search')
{
clearinline($mybb->get_input('searchid', 1), 'search');
}
else
{
clearinline($fid, 'forum');
}
$cache->update_stats();

		if($mybb->get_input('inlinetype') == 'search')
{
clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');
}
else
{
clearinline($fid, 'forum');
}
$cache->update_stats();

		moderation_redirect(get_forum_link($fid), $lang->redirect_inline_threadsapproved);
break;


		moderation_redirect(get_forum_link($fid), $lang->redirect_inline_threadsapproved);
break;


Zeile 1659Zeile 1903
		}
if(count($threads) < 1)
{

		}
if(count($threads) < 1)
{

			error($lang->error_inline_nothreadsselected);

			error($lang->error_inline_nothreadsselected, $lang->error);

		}

$moderation->unapprove_threads($threads, $fid);

		}

$moderation->unapprove_threads($threads, $fid);

Zeile 1667Zeile 1911
		log_moderator_action($modlogdata, $lang->multi_unapproved_threads);
if($mybb->get_input('inlinetype') == 'search')
{

		log_moderator_action($modlogdata, $lang->multi_unapproved_threads);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 1696Zeile 1940
		{
$threads = getids($fid, 'forum');
if(!is_moderator($fid, 'canrestorethreads'))

		{
$threads = getids($fid, 'forum');
if(!is_moderator($fid, 'canrestorethreads'))

			{
error_no_permission();
}
}

			{
error_no_permission();
}
}

		if(count($threads) < 1)

		if(count($threads) < 1)

		{
error($lang->error_inline_nothreadsselected);
}

$moderation->restore_threads($threads, $fid);

		{
error($lang->error_inline_nothreadsselected, $lang->error);
}

$moderation->restore_threads($threads);


log_moderator_action($modlogdata, $lang->multi_restored_threads);
if($mybb->get_input('inlinetype') == 'search')


log_moderator_action($modlogdata, $lang->multi_restored_threads);
if($mybb->get_input('inlinetype') == 'search')

		{
clearinline($mybb->get_input('searchid', 1), 'search');

		{
clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 1722Zeile 1966

// Soft delete threads - Inline moderation
case "multisoftdeletethreads":


// Soft delete threads - Inline moderation
case "multisoftdeletethreads":





		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


Zeile 1731Zeile 1975
			// From search page
$threads = getids($mybb->get_input('searchid'), 'search');
if(!is_moderator_by_tids($threads, 'cansoftdeletethreads'))

			// From search page
$threads = getids($mybb->get_input('searchid'), 'search');
if(!is_moderator_by_tids($threads, 'cansoftdeletethreads'))

			{
error_no_permission();
}
}

			{
error_no_permission();
}
}

		else
{
$threads = getids($fid, 'forum');

		else
{
$threads = getids($fid, 'forum');

Zeile 1742Zeile 1986
			{
error_no_permission();
}

			{
error_no_permission();
}

		}

		}

		if(count($threads) < 1)

		if(count($threads) < 1)

		{
error($lang->error_inline_nothreadsselected);
}

		{
error($lang->error_inline_nothreadsselected, $lang->error);
}





		$moderation->soft_delete_threads($threads, $fid);

		$moderation->soft_delete_threads($threads);


log_moderator_action($modlogdata, $lang->multi_soft_deleted_threads);
if($mybb->get_input('inlinetype') == 'search')
{


log_moderator_action($modlogdata, $lang->multi_soft_deleted_threads);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else

		}
else

		{

		{

			clearinline($fid, 'forum');
}
$cache->update_stats();

			clearinline($fid, 'forum');
}
$cache->update_stats();

Zeile 1764Zeile 2008
		break;

// Stick threads - Inline moderation

		break;

// Stick threads - Inline moderation

	case "multistickthreads":

// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

if(!empty($mybb->input['searchid']))
{

	case "multistickthreads":

// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

if(!empty($mybb->input['searchid']))
{

			// From search page
$threads = getids($mybb->get_input('searchid'), 'search');
if(!is_moderator_by_tids($threads, 'canstickunstickthreads'))

			// From search page
$threads = getids($mybb->get_input('searchid'), 'search');
if(!is_moderator_by_tids($threads, 'canstickunstickthreads'))

Zeile 1788Zeile 2032
		}
if(count($threads) < 1)
{

		}
if(count($threads) < 1)
{

			error($lang->error_inline_nothreadsselected);

			error($lang->error_inline_nothreadsselected, $lang->error);

		}

$moderation->stick_threads($threads);

		}

$moderation->stick_threads($threads);

Zeile 1796Zeile 2040
		log_moderator_action($modlogdata, $lang->multi_stuck_threads);
if($mybb->get_input('inlinetype') == 'search')
{

		log_moderator_action($modlogdata, $lang->multi_stuck_threads);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 1830Zeile 2074
		}
if(count($threads) < 1)
{

		}
if(count($threads) < 1)
{

			error($lang->error_inline_nothreadsselected);

			error($lang->error_inline_nothreadsselected, $lang->error);

		}

$moderation->unstick_threads($threads);

log_moderator_action($modlogdata, $lang->multi_unstuck_threads);

		}

$moderation->unstick_threads($threads);

log_moderator_action($modlogdata, $lang->multi_unstuck_threads);

		if($mybb->get_input('inlinetype') == 'search')
{
clearinline($mybb->get_input('searchid', 1), 'search');
}
else

		if($mybb->get_input('inlinetype') == 'search')
{
clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');
}
else

		{
clearinline($fid, 'forum');
}

		{
clearinline($fid, 'forum');
}

Zeile 1871Zeile 2115

if(count($threads) < 1)
{


if(count($threads) < 1)
{

			error($lang->error_inline_nothreadsselected);

			error($lang->error_inline_nothreadsselected, $lang->error);

		}
$inlineids = implode("|", $threads);
if($mybb->get_input('inlinetype') == 'search')
{

		}
$inlineids = implode("|", $threads);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 1894Zeile 2138
		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


		$moveto = $mybb->get_input('moveto', 1);

		$moveto = $mybb->get_input('moveto', MyBB::INPUT_INT);

		$threadlist = explode("|", $mybb->get_input('threads'));
if(!is_moderator_by_tids($threadlist, 'canmanagethreads'))
{

		$threadlist = explode("|", $mybb->get_input('threads'));
if(!is_moderator_by_tids($threadlist, 'canmanagethreads'))
{

Zeile 1908Zeile 2152
		$newperms = forum_permissions($moveto);
if(($newperms['canview'] == 0 || !is_moderator($moveto, 'canmanagethreads')) && !is_moderator_by_tids($tids, 'canmovetononmodforum'))
{

		$newperms = forum_permissions($moveto);
if(($newperms['canview'] == 0 || !is_moderator($moveto, 'canmanagethreads')) && !is_moderator_by_tids($tids, 'canmovetononmodforum'))
{

			error_no_permission();

			error($lang->error_movetononmodforum, $lang->error);

		}

$newforum = get_forum($moveto);
if(!$newforum || $newforum['type'] != "f" || $newforum['type'] == "f" && $newforum['linkto'] != '')
{

		}

$newforum = get_forum($moveto);
if(!$newforum || $newforum['type'] != "f" || $newforum['type'] == "f" && $newforum['linkto'] != '')
{

			error($lang->error_invalidforum);

			error($lang->error_invalidforum, $lang->error);

		}

$moderation->move_threads($tids, $moveto);

		}

$moderation->move_threads($tids, $moveto);

Zeile 1939Zeile 2183

if(count($posts) < 1)
{


if(count($posts) < 1)
{

			error($lang->error_inline_nopostsselected);

			error($lang->error_inline_nopostsselected, $lang->error);

		}
if(!is_moderator_by_pids($posts, "candeleteposts"))
{

		}
if(!is_moderator_by_pids($posts, "candeleteposts"))
{

Zeile 1948Zeile 2192
		$inlineids = implode("|", $posts);
if($mybb->get_input('inlinetype') == 'search')
{

		$inlineids = implode("|", $posts);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 2007Zeile 2251
		// Otherwise we're just deleting from showthread.php
else
{

		// Otherwise we're just deleting from showthread.php
else
{

			$query = $db->simple_select("posts", "*", "tid='$tid'");

			$query = $db->simple_select("posts", "pid", "tid = $tid");

			$numposts = $db->num_rows($query);
if(!$numposts)
{

			$numposts = $db->num_rows($query);
if(!$numposts)
{

Zeile 2062Zeile 2306

if(empty($posts))
{


if(empty($posts))
{

			error($lang->error_inline_nopostsselected);

			error($lang->error_inline_nopostsselected, $lang->error);

		}

if(!is_moderator_by_pids($posts, "canmanagethreads"))

		}

if(!is_moderator_by_pids($posts, "canmanagethreads"))

Zeile 2104Zeile 2348
		$inlineids = implode("|", $posts);
if($mybb->get_input('inlinetype') == 'search')
{

		$inlineids = implode("|", $posts);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 2123Zeile 2367
		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


		$mergepost = $mybb->get_input('mergepost', 2);

		$mergepost = $mybb->get_input('mergepost', MyBB::INPUT_ARRAY);

		if(count($mergepost) <= 1)
{

		if(count($mergepost) <= 1)
{

			error($lang->error_nomergeposts);

			error($lang->error_nomergeposts, $lang->error);

		}

foreach($mergepost as $pid => $yes)

		}

foreach($mergepost as $pid => $yes)

Zeile 2161Zeile 2405

if(count($posts) < 1)
{


if(count($posts) < 1)
{

			error($lang->error_inline_nopostsselected);

			error($lang->error_inline_nopostsselected, $lang->error);

		}

if(!is_moderator_by_pids($posts, "canmanagethreads"))

		}

if(!is_moderator_by_pids($posts, "canmanagethreads"))

Zeile 2185Zeile 2429
		{
if((int)$tcheck['count'] <= 1)
{

		{
if((int)$tcheck['count'] <= 1)
{

				error($lang->error_cantsplitonepost);

				error($lang->error_cantsplitonepost, $lang->error);

			}
$threads[] = $pcheck[] = $tcheck['tid']; // Save tids for below
}

			}
$threads[] = $pcheck[] = $tcheck['tid']; // Save tids for below
}

Zeile 2210Zeile 2454
		if(count($pcheck2) != count($pcheck))
{
// One or more threads do not have posts after splitting

		if(count($pcheck2) != count($pcheck))
{
// One or more threads do not have posts after splitting

			error($lang->error_cantsplitall);

			error($lang->error_cantsplitall, $lang->error);

		}

$inlineids = implode("|", $posts);
if($mybb->get_input('inlinetype') == 'search')
{

		}

$inlineids = implode("|", $posts);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 2262Zeile 2506

if(empty($posts))
{


if(empty($posts))
{

			error($lang->error_inline_nopostsselected);

			error($lang->error_inline_nopostsselected, $lang->error);

		}

$pidin = implode(',', $posts);

		}

$pidin = implode(',', $posts);

Zeile 2281Zeile 2525
		{
if((int)$tcheck['count'] <= 1)
{

		{
if((int)$tcheck['count'] <= 1)
{

				error($lang->error_cantsplitonepost);

				error($lang->error_cantsplitonepost, $lang->error);

			}
$pcheck[] = $tcheck['tid']; // Save tids for below
}

			}
$pcheck[] = $tcheck['tid']; // Save tids for below
}

Zeile 2306Zeile 2550
		if(count($pcheck2) != count($pcheck))
{
// One or more threads do not have posts after splitting

		if(count($pcheck2) != count($pcheck))
{
// One or more threads do not have posts after splitting

			error($lang->error_cantsplitall);

			error($lang->error_cantsplitall, $lang->error);

		}

if(isset($mybb->input['moveto']))
{

		}

if(isset($mybb->input['moveto']))
{

			$moveto = $mybb->get_input('moveto', 1);

			$moveto = $mybb->get_input('moveto', MyBB::INPUT_INT);

		}
else
{

		}
else
{

Zeile 2321Zeile 2565
		$newforum = get_forum($moveto);
if(!$newforum || $newforum['type'] != "f" || $newforum['type'] == "f" && $newforum['linkto'] != '')
{

		$newforum = get_forum($moveto);
if(!$newforum || $newforum['type'] != "f" || $newforum['type'] == "f" && $newforum['linkto'] != '')
{

			error($lang->error_invalidforum);

			error($lang->error_invalidforum, $lang->error);

		}

$newsubject = $mybb->get_input('newsubject');

		}

$newsubject = $mybb->get_input('newsubject');

Zeile 2349Zeile 2593

if(count($posts) < 1)
{


if(count($posts) < 1)
{

			error($lang->error_inline_nopostsselected);

			error($lang->error_inline_nopostsselected, $lang->error);

		}

if(!is_moderator_by_pids($posts, "canmanagethreads"))

		}

if(!is_moderator_by_pids($posts, "canmanagethreads"))

Zeile 2357Zeile 2601
			error_no_permission();
}
$posts = array_map('intval', $posts);

			error_no_permission();
}
$posts = array_map('intval', $posts);

		$pidin = implode(',', $posts);

// Make sure that we are not moving posts in a thread with one post
// Select number of posts in each thread that the moved post is in
$query = $db->query("
SELECT DISTINCT p.tid, COUNT(q.pid) as count
FROM ".TABLE_PREFIX."posts p
LEFT JOIN ".TABLE_PREFIX."posts q ON (p.tid=q.tid)
WHERE p.pid IN ($pidin)
GROUP BY p.tid, p.pid
");
$threads = $pcheck = array();
while($tcheck = $db->fetch_array($query))
{
if((int)$tcheck['count'] <= 1)
{
error($lang->error_cantsplitonepost);
}
$threads[] = $pcheck[] = $tcheck['tid']; // Save tids for below
}

// Make sure that we are not moving all posts in the thread
// The query does not return a row when the count is 0, so find if some threads are missing (i.e. 0 posts after removal)
$query = $db->query("
SELECT DISTINCT p.tid, COUNT(q.pid) as count
FROM ".TABLE_PREFIX."posts p

		$pidin = implode(',', $posts);

// Make sure that we are not moving posts in a thread with one post
// Select number of posts in each thread that the moved post is in
$query = $db->query("
SELECT DISTINCT p.tid, COUNT(q.pid) as count
FROM ".TABLE_PREFIX."posts p
LEFT JOIN ".TABLE_PREFIX."posts q ON (p.tid=q.tid)
WHERE p.pid IN ($pidin)
GROUP BY p.tid, p.pid
");
$threads = $pcheck = array();
while($tcheck = $db->fetch_array($query))
{
if((int)$tcheck['count'] <= 1)
{
error($lang->error_cantsplitonepost, $lang->error);
}
$threads[] = $pcheck[] = $tcheck['tid']; // Save tids for below
}

// Make sure that we are not moving all posts in the thread
// The query does not return a row when the count is 0, so find if some threads are missing (i.e. 0 posts after removal)
$query = $db->query("
SELECT DISTINCT p.tid, COUNT(q.pid) as count
FROM ".TABLE_PREFIX."posts p

			LEFT JOIN ".TABLE_PREFIX."posts q ON (p.tid=q.tid)
WHERE p.pid IN ($pidin) AND q.pid NOT IN ($pidin)
GROUP BY p.tid, p.pid

			LEFT JOIN ".TABLE_PREFIX."posts q ON (p.tid=q.tid)
WHERE p.pid IN ($pidin) AND q.pid NOT IN ($pidin)
GROUP BY p.tid, p.pid

Zeile 2398Zeile 2642
		if(count($pcheck2) != count($pcheck))
{
// One or more threads do not have posts after splitting

		if(count($pcheck2) != count($pcheck))
{
// One or more threads do not have posts after splitting

			error($lang->error_cantmoveall);
}


			error($lang->error_cantmoveall, $lang->error);
}


		$inlineids = implode("|", $posts);
if($mybb->get_input('inlinetype') == 'search')
{

		$inlineids = implode("|", $posts);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 2417Zeile 2661

// Actually split the posts - Inline moderation
case "do_multimoveposts":


// Actually split the posts - Inline moderation
case "do_multimoveposts":





		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

 

$plugins->run_hooks("moderation_do_multimoveposts");


// explode at # sign in a url (indicates a name reference) and reassign to the url
$realurl = explode("#", $mybb->get_input('threadurl'));


// explode at # sign in a url (indicates a name reference) and reassign to the url
$realurl = explode("#", $mybb->get_input('threadurl'));

Zeile 2427Zeile 2673

// Are we using an SEO URL?
if(substr($mybb->input['threadurl'], -4) == "html")


// Are we using an SEO URL?
if(substr($mybb->input['threadurl'], -4) == "html")

		{

		{

			// Get thread to merge's tid the SEO way
preg_match("#thread-([0-9]+)?#i", $mybb->input['threadurl'], $threadmatch);
preg_match("#post-([0-9]+)?#i", $mybb->input['threadurl'], $postmatch);

if($threadmatch[1])

			// Get thread to merge's tid the SEO way
preg_match("#thread-([0-9]+)?#i", $mybb->input['threadurl'], $threadmatch);
preg_match("#post-([0-9]+)?#i", $mybb->input['threadurl'], $postmatch);

if($threadmatch[1])

			{

			{

				$parameters['tid'] = $threadmatch[1];
}

if($postmatch[1])

				$parameters['tid'] = $threadmatch[1];
}

if($postmatch[1])

			{

			{

				$parameters['pid'] = $postmatch[1];
}
}
else

				$parameters['pid'] = $postmatch[1];
}
}
else

		{

		{

			// Get thread to merge's tid the normal way
$splitloc = explode(".php", $mybb->input['threadurl']);
$temp = explode("&", my_substr($splitloc[1], 1));

			// Get thread to merge's tid the normal way
$splitloc = explode(".php", $mybb->input['threadurl']);
$temp = explode("&", my_substr($splitloc[1], 1));

Zeile 2465Zeile 2711

if(!empty($parameters['pid']) && empty($parameters['tid']))
{


if(!empty($parameters['pid']) && empty($parameters['tid']))
{

			$query = $db->simple_select("posts", "*", "pid='".(int)$parameters['pid']."'");

			$query = $db->simple_select("posts", "tid", "pid='".(int)$parameters['pid']."'");

			$post = $db->fetch_array($query);
$newtid = $post['tid'];
}
elseif(!empty($parameters['tid']))

			$post = $db->fetch_array($query);
$newtid = $post['tid'];
}
elseif(!empty($parameters['tid']))

		{

		{

			$newtid = $parameters['tid'];
}
else

			$newtid = $parameters['tid'];
}
else

Zeile 2480Zeile 2726
		$newtid = (int)$newtid;
$newthread = get_thread($newtid);
if(!$newthread)

		$newtid = (int)$newtid;
$newthread = get_thread($newtid);
if(!$newthread)

		{
error($lang->error_badmovepostsurl);
}

		{
error($lang->error_badmovepostsurl, $lang->error);
}

		if($newtid == $tid)
{ // sanity check

		if($newtid == $tid)
{ // sanity check

			error($lang->error_movetoself);
}


			error($lang->error_movetoself, $lang->error);
}


		$postlist = explode("|", $mybb->get_input('posts'));
$plist = array();
foreach($postlist as $pid)

		$postlist = explode("|", $mybb->get_input('posts'));
$plist = array();
foreach($postlist as $pid)

Zeile 2497Zeile 2743
		}

if(!is_moderator_by_pids($plist, "canmanagethreads"))

		}

if(!is_moderator_by_pids($plist, "canmanagethreads"))

		{

		{

			error_no_permission();
}


			error_no_permission();
}


Zeile 2513Zeile 2759
		}

if(empty($posts))

		}

if(empty($posts))

		{
error($lang->error_inline_nopostsselected);
}


		{
error($lang->error_inline_nopostsselected, $lang->error);
}


		$pidin = implode(',', $posts);

// Make sure that we are not moving posts in a thread with one post
// Select number of posts in each thread that the moved post is in

		$pidin = implode(',', $posts);

// Make sure that we are not moving posts in a thread with one post
// Select number of posts in each thread that the moved post is in

		$query = $db->query("

		$query = $db->query("

			SELECT DISTINCT p.tid, COUNT(q.pid) as count
FROM ".TABLE_PREFIX."posts p
LEFT JOIN ".TABLE_PREFIX."posts q ON (p.tid=q.tid)
WHERE p.pid IN ($pidin)

			SELECT DISTINCT p.tid, COUNT(q.pid) as count
FROM ".TABLE_PREFIX."posts p
LEFT JOIN ".TABLE_PREFIX."posts q ON (p.tid=q.tid)
WHERE p.pid IN ($pidin)

			GROUP BY p.tid, p.pid

			GROUP BY p.tid, p.pid

		");
$threads = $pcheck = array();
while($tcheck = $db->fetch_array($query))
{
if((int)$tcheck['count'] <= 1)
{

		");
$threads = $pcheck = array();
while($tcheck = $db->fetch_array($query))
{
if((int)$tcheck['count'] <= 1)
{

				error($lang->error_cantsplitonepost);

				error($lang->error_cantsplitonepost, $lang->error);

			}
$threads[] = $pcheck[] = $tcheck['tid']; // Save tids for below
}

			}
$threads[] = $pcheck[] = $tcheck['tid']; // Save tids for below
}

Zeile 2558Zeile 2804
		if(count($pcheck2) != count($pcheck))
{
// One or more threads do not have posts after splitting

		if(count($pcheck2) != count($pcheck))
{
// One or more threads do not have posts after splitting

			error($lang->error_cantmoveall);
}

$newtid = $moderation->split_posts($posts, $tid, $newthread['fid'], $db->escape_string($newthread['subject']), $newtid);


			error($lang->error_cantmoveall, $lang->error);
}

$newtid = $moderation->split_posts($posts, $tid, $newthread['fid'], $db->escape_string($newthread['subject']), $newtid);


		$pid_list = implode(', ', $posts);
$lang->move_selective_posts = $lang->sprintf($lang->move_selective_posts, $pid_list, $newtid);
log_moderator_action($modlogdata, $lang->move_selective_posts);

		$pid_list = implode(', ', $posts);
$lang->move_selective_posts = $lang->sprintf($lang->move_selective_posts, $pid_list, $newtid);
log_moderator_action($modlogdata, $lang->move_selective_posts);

Zeile 2572Zeile 2818

// Approve posts - Inline moderation
case "multiapproveposts":


// Approve posts - Inline moderation
case "multiapproveposts":


// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

if($mybb->get_input('inlinetype') == 'search')
{
$posts = getids($mybb->get_input('searchid'), 'search');
}
else
{
$posts = getids($tid, 'thread');
}
if(count($posts) < 1)
{
error($lang->error_inline_nopostsselected);
}

if(!is_moderator_by_pids($posts, "canapproveunapproveposts"))
{
error_no_permission();
}

$pids = array();
foreach($posts as $pid)
{
$pids[] = (int)$pid;
}

$moderation->approve_posts($pids);

log_moderator_action($modlogdata, $lang->multi_approve_posts);


// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

if($mybb->get_input('inlinetype') == 'search')
{
$posts = getids($mybb->get_input('searchid'), 'search');
}
else
{
$posts = getids($tid, 'thread');
}
if(count($posts) < 1)
{
error($lang->error_inline_nopostsselected, $lang->error);
}

if(!is_moderator_by_pids($posts, "canapproveunapproveposts"))
{
error_no_permission();
}

$pids = array();
foreach($posts as $pid)
{
$pids[] = (int)$pid;
}

$moderation->approve_posts($pids);

log_moderator_action($modlogdata, $lang->multi_approve_posts);

		if($mybb->get_input('inlinetype') == 'search')
{

		if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 2631Zeile 2877

if(count($posts) < 1)
{


if(count($posts) < 1)
{

			error($lang->error_inline_nopostsselected);

			error($lang->error_inline_nopostsselected, $lang->error);

		}
$pids = array();


		}
$pids = array();


Zeile 2649Zeile 2895
		log_moderator_action($modlogdata, $lang->multi_unapprove_posts);
if($mybb->get_input('inlinetype') == 'search')
{

		log_moderator_action($modlogdata, $lang->multi_unapprove_posts);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 2674Zeile 2920
		}
if(count($posts) < 1)
{

		}
if(count($posts) < 1)
{

			error($lang->error_inline_nopostsselected);

			error($lang->error_inline_nopostsselected, $lang->error);

		}

if(!is_moderator_by_pids($posts, "canrestoreposts"))

		}

if(!is_moderator_by_pids($posts, "canrestoreposts"))

Zeile 2693Zeile 2939
		log_moderator_action($modlogdata, $lang->multi_restore_posts);
if($mybb->get_input('inlinetype') == 'search')
{

		log_moderator_action($modlogdata, $lang->multi_restore_posts);
if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 2704Zeile 2950

// Soft delete posts - Inline moderation
case "multisoftdeleteposts":


// Soft delete posts - Inline moderation
case "multisoftdeleteposts":



 
		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


		// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));


Zeile 2715Zeile 2960
		else
{
$posts = getids($tid, 'thread');

		else
{
$posts = getids($tid, 'thread');

		}

		}


if(count($posts) < 1)


if(count($posts) < 1)

		{
error($lang->error_inline_nopostsselected);
}

		{
error($lang->error_inline_nopostsselected, $lang->error);
}

		$pids = array();

if(!is_moderator_by_pids($posts, "cansoftdeleteposts"))

		$pids = array();

if(!is_moderator_by_pids($posts, "cansoftdeleteposts"))

		{

		{

			error_no_permission();
}
foreach($posts as $pid)
{
$pids[] = (int)$pid;
}

			error_no_permission();
}
foreach($posts as $pid)
{
$pids[] = (int)$pid;
}





		$moderation->soft_delete_posts($pids);

		$moderation->soft_delete_posts($pids);

 
		log_moderator_action($modlogdata, $lang->multi_soft_delete_posts);





		log_moderator_action($modlogdata, $lang->multi_soft_delete_posts);

 
		if($mybb->get_input('inlinetype') == 'search')
{

		if($mybb->get_input('inlinetype') == 'search')
{

			clearinline($mybb->get_input('searchid', 1), 'search');

			clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

		}
else
{

		}
else
{

Zeile 2750Zeile 2995
		require_once MYBB_ROOT."inc/functions_user.php";

$groups = explode(",", $mybb->settings['purgespammergroups']);

		require_once MYBB_ROOT."inc/functions_user.php";

$groups = explode(",", $mybb->settings['purgespammergroups']);

		if(!in_array($mybb->user['usergroup'], $groups))

		if(!is_member($groups))

		{
error_no_permission();
}


		{
error_no_permission();
}


		$uid = $mybb->input['uid'];

		$uid = $mybb->get_input('uid', MyBB::INPUT_INT);

		$user = get_user($uid);
if(!$user['uid'] || !purgespammer_show($user['postnum'], $user['usergroup'], $user['uid']))
{

		$user = get_user($uid);
if(!$user['uid'] || !purgespammer_show($user['postnum'], $user['usergroup'], $user['uid']))
{

Zeile 2810Zeile 3055
				foreach(array($user['regip'], $user['lastip']) as $ip)
{
$ip = my_inet_ntop($db->unescape_binary($ip));

				foreach(array($user['regip'], $user['lastip']) as $ip)
{
$ip = my_inet_ntop($db->unescape_binary($ip));

					$query = $db->simple_select("banfilters", "*", "type = '1' AND filter = '".$db->escape_string($ip)."'");

					$query = $db->simple_select("banfilters", "type", "type = 1 AND filter = '".$db->escape_string($ip)."'");

					if($db->num_rows($query) == 0)
{
$insert = array(

					if($db->num_rows($query) == 0)
{
$insert = array(

Zeile 2827Zeile 3072

$cache->update_banned();
$cache->update_bannedips();


$cache->update_banned();
$cache->update_bannedips();

 
				$cache->update_awaitingactivation();


// Update reports cache
$cache->update_reportedcontent();


// Update reports cache
$cache->update_reportedcontent();

Zeile 2839Zeile 3085
			// Submit the user to stop forum spam
if(!empty($mybb->settings['purgespammerapikey']))
{

			// Submit the user to stop forum spam
if(!empty($mybb->settings['purgespammerapikey']))
{

				$sfs = @fetch_remote_file("http://stopforumspam.com/add.php?username=" . urlencode($user['username']) . "&ip_addr=" . urlencode($user['lastip']) . "&email=" . urlencode($user['email']) . "&api_key=" . urlencode($mybb->settings['purgespammerapikey']));

				$sfs = @fetch_remote_file("http://stopforumspam.com/add.php?username=" . urlencode($user['username']) . "&ip_addr=" . urlencode(my_inet_ntop($db->unescape_binary($user['lastip']))) . "&email=" . urlencode($user['email']) . "&api_key=" . urlencode($mybb->settings['purgespammerapikey']));

			}

log_moderator_action(array('uid' => $uid, 'username' => $user['username']), $lang->purgespammer_modlog);

			}

log_moderator_action(array('uid' => $uid, 'username' => $user['username']), $lang->purgespammer_modlog);

Zeile 2853Zeile 3099
				redirect(get_profile_link($uid), $lang->purgespammer_success);
}
}

				redirect(get_profile_link($uid), $lang->purgespammer_success);
}
}

		else if($mybb->input['action'] == "purgespammer")

		elseif($mybb->input['action'] == "purgespammer")

		{
$plugins->run_hooks("moderation_purgespammer_show");

add_breadcrumb($lang->purgespammer);

		{
$plugins->run_hooks("moderation_purgespammer_show");

add_breadcrumb($lang->purgespammer);

			$lang->purgespammer_purge = $lang->sprintf($lang->purgespammer_purge, $user['username']);

			$lang->purgespammer_purge = $lang->sprintf($lang->purgespammer_purge, htmlspecialchars_uni($user['username']));

			if($mybb->settings['purgespammerbandelete'] == "ban")
{
$lang->purgespammer_purge_desc = $lang->sprintf($lang->purgespammer_purge_desc, $lang->purgespammer_ban);

			if($mybb->settings['purgespammerbandelete'] == "ban")
{
$lang->purgespammer_purge_desc = $lang->sprintf($lang->purgespammer_purge_desc, $lang->purgespammer_ban);

Zeile 2874Zeile 3120
	default:
require_once MYBB_ROOT."inc/class_custommoderation.php";
$custommod = new CustomModeration;

	default:
require_once MYBB_ROOT."inc/class_custommoderation.php";
$custommod = new CustomModeration;

		$tool = $custommod->tool_info($mybb->get_input('action', 1));

		$tool = $custommod->tool_info($mybb->get_input('action', MyBB::INPUT_INT));

		if($tool !== false)
{
// Verify incoming POST request

		if($tool !== false)
{
// Verify incoming POST request

Zeile 2882Zeile 3128

$options = my_unserialize($tool['threadoptions']);



$options = my_unserialize($tool['threadoptions']);


			if($tool['groups'] != -1 && !is_member($tool['groups']))

			if(!is_member($tool['groups']))

			{
error_no_permission();

			{
error_no_permission();

 
			}

if($thread['visible'] == -1)
{
error($lang->error_thread_deleted, $lang->error);

			}

if(!empty($options['confirmation']) && empty($mybb->input['confirm']))
{
add_breadcrumb($lang->confirm_execute_tool);


			}

if(!empty($options['confirmation']) && empty($mybb->input['confirm']))
{
add_breadcrumb($lang->confirm_execute_tool);


				$lang->confirm_execute_tool_desc = $lang->sprintf($lang->confirm_execute_tool_desc, htmlspecialchars_uni($tool['name']));



				$lang->confirm_execute_tool_desc = $lang->sprintf($lang->confirm_execute_tool_desc, htmlspecialchars_uni($tool['name']));

$action = $mybb->input['action'];

				$modtype = $mybb->get_input('modtype');
$inlinetype = $mybb->get_input('inlinetype');
$searchid = $mybb->get_input('searchid');

				$modtype = $mybb->get_input('modtype');
$inlinetype = $mybb->get_input('inlinetype');
$searchid = $mybb->get_input('searchid');

Zeile 2904Zeile 3156
				output_page($page);
exit;
}

				output_page($page);
exit;
}

 

$tool['name'] = htmlspecialchars_uni($tool['name']);


if($tool['type'] == 't' && $mybb->get_input('modtype') == 'inlinethread')
{


if($tool['type'] == 't' && $mybb->get_input('modtype') == 'inlinethread')
{

Zeile 2917Zeile 3171
				}
if(count($tids) < 1)
{

				}
if(count($tids) < 1)
{

					error($lang->error_inline_nopostsselected);

					error($lang->error_inline_nopostsselected, $lang->error);

				}
if(!is_moderator_by_tids($tids, "canusecustomtools"))
{

				}
if(!is_moderator_by_tids($tids, "canusecustomtools"))
{

Zeile 2927Zeile 3181
				$thread_options = my_unserialize($tool['threadoptions']);
if($thread_options['movethread'] && $forum_cache[$thread_options['movethread']]['type'] != "f")
{

				$thread_options = my_unserialize($tool['threadoptions']);
if($thread_options['movethread'] && $forum_cache[$thread_options['movethread']]['type'] != "f")
{

					error($lang->error_movetocategory);

					error($lang->error_movetocategory, $lang->error);

				}


				}


				$custommod->execute($mybb->get_input('action', 1), $tids);

				$custommod->execute($mybb->get_input('action', MyBB::INPUT_INT), $tids);

 				$lang->custom_tool = $lang->sprintf($lang->custom_tool, $tool['name']);
log_moderator_action($modlogdata, $lang->custom_tool);
if($mybb->get_input('inlinetype') == 'search')
{

 				$lang->custom_tool = $lang->sprintf($lang->custom_tool, $tool['name']);
log_moderator_action($modlogdata, $lang->custom_tool);
if($mybb->get_input('inlinetype') == 'search')
{

					clearinline($mybb->get_input('searchid', 1), 'search');

					clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

					$lang->redirect_customtool_search = $lang->sprintf($lang->redirect_customtool_search, $tool['name']);
$return_url = htmlspecialchars_uni($mybb->get_input('url'));
redirect($return_url, $lang->redirect_customtool_search);

					$lang->redirect_customtool_search = $lang->sprintf($lang->redirect_customtool_search, $tool['name']);
$return_url = htmlspecialchars_uni($mybb->get_input('url'));
redirect($return_url, $lang->redirect_customtool_search);

Zeile 2949Zeile 3203
				break;
}
elseif($tool['type'] == 't' && $mybb->get_input('modtype') == 'thread')

				break;
}
elseif($tool['type'] == 't' && $mybb->get_input('modtype') == 'thread')

			{

			{

				if(!is_moderator_by_tids($tid, "canusecustomtools"))
{
error_no_permission();

				if(!is_moderator_by_tids($tid, "canusecustomtools"))
{
error_no_permission();

				}

				}


$thread_options = my_unserialize($tool['threadoptions']);
if($thread_options['movethread'] && $forum_cache[$thread_options['movethread']]['type'] != "f")


$thread_options = my_unserialize($tool['threadoptions']);
if($thread_options['movethread'] && $forum_cache[$thread_options['movethread']]['type'] != "f")

				{
error($lang->error_movetocategory);

				{
error($lang->error_movetocategory, $lang->error);

				}


				}


				$ret = $custommod->execute($mybb->get_input('action', 1), $tid);

				$ret = $custommod->execute($mybb->get_input('action', MyBB::INPUT_INT), $tid);

 				$lang->custom_tool = $lang->sprintf($lang->custom_tool, $tool['name']);
log_moderator_action($modlogdata, $lang->custom_tool);
if($ret == 'forum')

 				$lang->custom_tool = $lang->sprintf($lang->custom_tool, $tool['name']);
log_moderator_action($modlogdata, $lang->custom_tool);
if($ret == 'forum')

Zeile 2970Zeile 3224
					moderation_redirect(get_forum_link($fid), $lang->redirect_customtool_forum);
}
else

					moderation_redirect(get_forum_link($fid), $lang->redirect_customtool_forum);
}
else

				{

				{

					$lang->redirect_customtool_thread = $lang->sprintf($lang->redirect_customtool_thread, $tool['name']);
moderation_redirect(get_thread_link($thread['tid']), $lang->redirect_customtool_thread);
}

					$lang->redirect_customtool_thread = $lang->sprintf($lang->redirect_customtool_thread, $tool['name']);
moderation_redirect(get_thread_link($thread['tid']), $lang->redirect_customtool_thread);
}

Zeile 2981Zeile 3235
				if($mybb->get_input('inlinetype') == 'search')
{
$pids = getids($mybb->get_input('searchid'), 'search');

				if($mybb->get_input('inlinetype') == 'search')
{
$pids = getids($mybb->get_input('searchid'), 'search');

				}

				}

				else
{
$pids = getids($tid, 'thread');

				else
{
$pids = getids($tid, 'thread');

Zeile 2989Zeile 3243

if(count($pids) < 1)
{


if(count($pids) < 1)
{

					error($lang->error_inline_nopostsselected);

					error($lang->error_inline_nopostsselected, $lang->error);

				}
if(!is_moderator_by_pids($pids, "canusecustomtools"))
{

				}
if(!is_moderator_by_pids($pids, "canusecustomtools"))
{

Zeile 3002Zeile 3256
					'order_by' => 'dateline',
'order_dir' => 'asc'
);

					'order_by' => 'dateline',
'order_dir' => 'asc'
);

				$query = $db->simple_select("posts", "DISTINCT tid", "pid IN (".implode(',',$pids).")", $options);

				$query = $db->simple_select("posts", "DISTINCT tid, dateline", "pid IN (".implode(',',$pids).")", $options);

				while($row = $db->fetch_array($query))
{
$tids[] = $row['tid'];
}


				while($row = $db->fetch_array($query))
{
$tids[] = $row['tid'];
}


				$ret = $custommod->execute($mybb->get_input('action', 1), $tids, $pids);

				$ret = $custommod->execute($mybb->get_input('action', MyBB::INPUT_INT), $tids, $pids);

 				$lang->custom_tool = $lang->sprintf($lang->custom_tool, $tool['name']);
log_moderator_action($modlogdata, $lang->custom_tool);
if($mybb->get_input('inlinetype') == 'search')
{

 				$lang->custom_tool = $lang->sprintf($lang->custom_tool, $tool['name']);
log_moderator_action($modlogdata, $lang->custom_tool);
if($mybb->get_input('inlinetype') == 'search')
{

					clearinline($mybb->get_input('searchid', 1), 'search');

					clearinline($mybb->get_input('searchid', MyBB::INPUT_INT), 'search');

					$lang->redirect_customtool_search = $lang->sprintf($lang->redirect_customtool_search, $tool['name']);
$return_url = htmlspecialchars_uni($mybb->get_input('url'));
redirect($return_url, $lang->redirect_customtool_search);

					$lang->redirect_customtool_search = $lang->sprintf($lang->redirect_customtool_search, $tool['name']);
$return_url = htmlspecialchars_uni($mybb->get_input('url'));
redirect($return_url, $lang->redirect_customtool_search);

Zeile 3040Zeile 3294
		break;
}


		break;
}


// Some little handy functions for our inline moderation








/**
* Some little handy functions for our inline moderation
*
* @param int $id
* @param string $type
*
* @return array
*/

function getids($id, $type)
{
global $mybb;

function getids($id, $type)
{
global $mybb;

Zeile 3072Zeile 3333
	return $newids;
}


	return $newids;
}


 
/**
* @param int $id
* @param string $type
*
* @return array
*/

function getallids($id, $type)
{
global $db, $mybb;

function getallids($id, $type)
{
global $db, $mybb;

Zeile 3105Zeile 3372
			$ids[] = $tid;
}
}

			$ids[] = $tid;
}
}

	else if($type == 'search')

	elseif($type == 'search')

	{

	{

		$query = $db->simple_select("searchlog", "*", "sid='".$db->escape_string($id)."' AND uid='{$mybb->user['uid']}'", 1);

		$query = $db->simple_select("searchlog", "resulttype, posts, threads", "sid='".$db->escape_string($id)."' AND uid='{$mybb->user['uid']}'", 1);

		$searchlog = $db->fetch_array($query);
if($searchlog['resulttype'] == 'posts')
{

		$searchlog = $db->fetch_array($query);
if($searchlog['resulttype'] == 'posts')
{

Zeile 3133Zeile 3400
	return $ids;
}


	return $ids;
}


 
/**
* @param int $id
* @param string $type
*/

function clearinline($id, $type)
{
my_unsetcookie("inlinemod_".$type.$id);

function clearinline($id, $type)
{
my_unsetcookie("inlinemod_".$type.$id);

	my_unsetcookie("inlinemod_".$type.$id."_removed");

	my_unsetcookie("inlinemod_{$type}{$id}_removed");

}


}


 
/**
* @param int $id
* @param string $type
*/

function extendinline($id, $type)
{

function extendinline($id, $type)
{

	my_setcookie("inlinemod_$type$id", '', TIME_NOW+3600);
my_setcookie("inlinemod_$type$id_removed", '', TIME_NOW+3600);

	my_setcookie("inlinemod_{$type}{$id}", '', TIME_NOW+3600);
my_setcookie("inlinemod_{$type}{$id}_removed", '', TIME_NOW+3600);

}

/**

}

/**

Zeile 3151Zeile 3426
 * Note: If no posts are specified, this function will return true.  It is the
* responsibility of the calling script to error-check this case if necessary.
*

 * Note: If no posts are specified, this function will return true.  It is the
* responsibility of the calling script to error-check this case if necessary.
*

 * @param array Array of post IDs
* @param string Permission to check
* @returns bool True if moderator of all; false otherwise

 * @param array $posts Array of post IDs
* @param string $permission Permission to check
* @return bool True if moderator of all; false otherwise

 */
function is_moderator_by_pids($posts, $permission='')
{

 */
function is_moderator_by_pids($posts, $permission='')
{

Zeile 3195Zeile 3470
 * Note: If no threads are specified, this function will return true.  It is the
* responsibility of the calling script to error-check this case if necessary.
*

 * Note: If no threads are specified, this function will return true.  It is the
* responsibility of the calling script to error-check this case if necessary.
*

 * @param array Array of thread IDs
* @param string Permission to check
* @returns bool True if moderator of all; false otherwise

 * @param array $threads Array of thread IDs
* @param string $permission Permission to check
* @return bool True if moderator of all; false otherwise

 */
function is_moderator_by_tids($threads, $permission='')
{

 */
function is_moderator_by_tids($threads, $permission='')
{

Zeile 3235Zeile 3510

/**
* Special redirect that takes a return URL into account


/**
* Special redirect that takes a return URL into account

 * @param string URL
* @param string Message
* @param string Title

 * @param string $url URL
* @param string $message Message
* @param string $title Title

 */
function moderation_redirect($url, $message="", $title="")
{

 */
function moderation_redirect($url, $message="", $title="")
{