Vergleich moderation.php - 1.8.1 - 1.8.7

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 12Zeile 12
define('THIS_SCRIPT', 'moderation.php');

$templatelist = 'changeuserbox,loginbox,moderation_delayedmoderation_custommodtool,moderation_delayedmodaction_notes,moderation_delayedmoderation_merge,moderation_delayedmoderation_move';

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_delayedmoderation,moderation_deletethread,moderation_deletepoll,moderation_mergeposts_post,moderation_viewthreadnotes,moderation_confirmation';

$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 .= ',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';

Zeile 30Zeile 30

$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);


if($pid)
{


if($pid)
{

Zeile 67Zeile 67
	$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);



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


Zeile 132Zeile 128
			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)
{


if($tid == 0)
{

Zeile 148Zeile 146
		// 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(!$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'] = date('d', TIME_NOW);
}

		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'] = date('m', TIME_NOW);
}

Zeile 170Zeile 168
			}
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)

Zeile 192Zeile 190
		$customthreadtools = "";

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

		$customthreadtools = "";

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





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

switch($db->type)

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

switch($db->type)

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


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


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

		$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 247Zeile 245
			if($mybb->input['date_day'] > 31 || $mybb->input['date_day'] < 1)
{
$errors[] = $lang->error_delayedmoderation_invalid_date_day;

			if($mybb->input['date_day'] > 31 || $mybb->input['date_day'] < 1)
{
$errors[] = $lang->error_delayedmoderation_invalid_date_day;

			}


			}


			if($mybb->input['date_month'] > 12 || $mybb->input['date_month'] < 1)
{
$errors[] = $lang->error_delayedmoderation_invalid_date_month;

			if($mybb->input['date_month'] > 12 || $mybb->input['date_month'] < 1)
{
$errors[] = $lang->error_delayedmoderation_invalid_date_month;

Zeile 259Zeile 257
				$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 269
				}
}


				}
}


			$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 = mktime((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));


if(!$errors)
{


if(!$errors)
{

Zeile 280Zeile 278
					$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 515Zeile 515
		}

$url = '';

		}

$url = '';

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

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

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

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

Zeile 548Zeile 548
		for($day = 1; $day <= 31; ++$day)
{
$selected = '';

		for($day = 1; $day <= 31; ++$day)
{
$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 559
		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"';
}

Zeile 719Zeile 719

$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)
{

Zeile 747Zeile 747
				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)
{

Zeile 825Zeile 825
		$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;


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

Zeile 873Zeile 873
		// 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');

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

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

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

Zeile 884Zeile 884
		if(!is_moderator($moveto, "canmanagethreads") && !is_moderator($fid, "canmovetononmodforum"))
{
error_no_permission();

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

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

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


$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'] != '')

Zeile 900Zeile 900
		{
error($lang->error_movetosameforum);
}

		{
error($lang->error_movetosameforum);
}

 

$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;

		}

$the_thread = $tid;

Zeile 938Zeile 940
		{
error($lang->error_nomember);
}

		{
error($lang->error_nomember);
}

 

$plugins->run_hooks('moderation_viewthreadnotes');


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



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


Zeile 1083Zeile 1087
				}
}
else if($delayedmod['type'] == 'merge')

				}
}
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 />";
}

				$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 />";
}

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

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

 

$plugins->run_hooks('moderation_getip');


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


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

Zeile 1175Zeile 1181
			$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 = "";
if($mybb->usergroup['canmodcp'] == 1 && $mybb->usergroup['canuseipsearch'] == 1)


// Moderator options
$modoptions = "";
if($mybb->usergroup['canmodcp'] == 1 && $mybb->usergroup['canuseipsearch'] == 1)

		{

		{

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

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

		}



		}

$plugins->run_hooks('moderation_getpmip');


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


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

Zeile 1195Zeile 1201
	// Merge threads
case "merge":
add_breadcrumb($lang->nav_merge);

	// Merge threads
case "merge":
add_breadcrumb($lang->nav_merge);

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


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


		$plugins->run_hooks("moderation_merge");

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

		$plugins->run_hooks("moderation_merge");

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

Zeile 1207Zeile 1213
		break;

// Let's get those threads together baby! (Merge threads)

		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
{
// 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);
$parameters[$temp2[0]] = $temp2[1];
}

	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
{
// 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);
$parameters[$temp2[0]] = $temp2[1];
}

		}

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

		}

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

Zeile 1367Zeile 1373

$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']))
{
error($lang->error_nosplitposts);

		if(empty($mybb->input['splitpost']))
{
error($lang->error_nosplitposts);

Zeile 1387Zeile 1393

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 1398Zeile 1404
		if(!$newforum || $newforum['type'] != "f" || $newforum['type'] == "f" && $newforum['linkto'] != '')
{
error($lang->error_invalidforum);

		if(!$newforum || $newforum['type'] != "f" || $newforum['type'] == "f" && $newforum['linkto'] != '')
{
error($lang->error_invalidforum);

		}

		}


$pids = array();



$pids = array();


Zeile 1465Zeile 1471
		$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 1502
		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 1538Zeile 1544
		$moderation->open_threads($threads);

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

		$moderation->open_threads($threads);

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

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

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

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

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

Zeile 1554Zeile 1560

// 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(!empty($mybb->input['searchid']))
{
// From search page
$threads = getids($mybb->get_input('searchid'), 'search');
if(!is_moderator_by_tids($threads, 'canopenclosethreads'))

		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

			{
error_no_permission();
}
}
else

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

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

Zeile 1580Zeile 1586
		$moderation->close_threads($threads);

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

		$moderation->close_threads($threads);

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

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

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

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

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

Zeile 1598Zeile 1604
		verify_post_check($mybb->get_input('my_post_key'));

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

		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, 'canapproveunapprovethreads'))

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

			{
error_no_permission();
}

			{
error_no_permission();
}

		}
else
{

		}
else
{

Zeile 1615Zeile 1621
			}
}
if(count($threads) < 1)

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

		{

		{

			error($lang->error_inline_nothreadsselected);
}


			error($lang->error_inline_nothreadsselected);
}


Zeile 1624Zeile 1630
		log_moderator_action($modlogdata, $lang->multi_approved_threads);
if($mybb->get_input('inlinetype') == 'search')
{

		log_moderator_action($modlogdata, $lang->multi_approved_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 1632Zeile 1638
		}
$cache->update_stats();
moderation_redirect(get_forum_link($fid), $lang->redirect_inline_threadsapproved);

		}
$cache->update_stats();
moderation_redirect(get_forum_link($fid), $lang->redirect_inline_threadsapproved);

		break;


		break;


	// Unapprove threads - Inline moderation
case "multiunapprovethreads":


	// Unapprove threads - Inline moderation
case "multiunapprovethreads":


Zeile 1667Zeile 1673
		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 1705Zeile 1711
			error($lang->error_inline_nothreadsselected);
}


			error($lang->error_inline_nothreadsselected);
}


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

		$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 1748Zeile 1754
			error($lang->error_inline_nothreadsselected);
}


			error($lang->error_inline_nothreadsselected);
}


		$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
{

Zeile 1796Zeile 1802
		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 1838Zeile 1844
		log_moderator_action($modlogdata, $lang->multi_unstuck_threads);
if($mybb->get_input('inlinetype') == 'search')
{

		log_moderator_action($modlogdata, $lang->multi_unstuck_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 1876Zeile 1882
		$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 1900
		// 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 1948Zeile 1954
		$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 2013
		// 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 2104Zeile 2110
		$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 2129
		// 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)
{
error($lang->error_nomergeposts);

		if(count($mergepost) <= 1)
{
error($lang->error_nomergeposts);

Zeile 2216Zeile 2222
		$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 2311Zeile 2317

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 2357Zeile 2363
			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
LEFT JOIN ".TABLE_PREFIX."posts q ON (p.tid=q.tid)
WHERE p.pid IN ($pidin) AND q.pid NOT IN ($pidin)

		$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
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
");
$pcheck2 = array();

			GROUP BY p.tid, p.pid
");
$pcheck2 = array();

Zeile 2396Zeile 2402
			}
}
if(count($pcheck2) != count($pcheck))

			}
}
if(count($pcheck2) != count($pcheck))

		{

		{

			// One or more threads do not have posts after splitting
error($lang->error_cantmoveall);
}

			// One or more threads do not have posts after splitting
error($lang->error_cantmoveall);
}

Zeile 2404Zeile 2410
		$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 2414Zeile 2420
		eval("\$moveposts = \"".$templates->get("moderation_inline_moveposts")."\";");
output_page($moveposts);
break;

		eval("\$moveposts = \"".$templates->get("moderation_inline_moveposts")."\";");
output_page($moveposts);
break;





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

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

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

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





		// 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];

		// 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];

Zeile 2431Zeile 2437
			// 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);

			// 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($threadmatch[1])
{
$parameters['tid'] = $threadmatch[1];

Zeile 2465Zeile 2471

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'];
}

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

Zeile 2521Zeile 2527

// 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


// 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)

		$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
");

			WHERE p.pid IN ($pidin)
GROUP BY p.tid, p.pid
");

Zeile 2605Zeile 2611
		log_moderator_action($modlogdata, $lang->multi_approve_posts);
if($mybb->get_input('inlinetype') == 'search')
{

		log_moderator_action($modlogdata, $lang->multi_approve_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 2615Zeile 2621
		break;

// Unapprove posts - Inline moderation

		break;

// Unapprove posts - Inline moderation

	case "multiunapproveposts":

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

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

	case "multiunapproveposts":

// 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');

			$posts = getids($mybb->get_input('searchid'), 'search');

		}
else
{

		}
else
{

			$posts = getids($tid, 'thread');
}


			$posts = getids($tid, 'thread');
}


Zeile 2636Zeile 2642
		$pids = array();

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

		$pids = array();

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

		{

		{

			error_no_permission();
}
foreach($posts as $pid)

			error_no_permission();
}
foreach($posts as $pid)

Zeile 2647Zeile 2653
		$moderation->unapprove_posts($pids);

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

		$moderation->unapprove_posts($pids);

log_moderator_action($modlogdata, $lang->multi_unapprove_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 2659Zeile 2665
		break;

// Restore posts - Inline moderation

		break;

// Restore posts - Inline moderation

	case "multirestoreposts":

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

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

	case "multirestoreposts":

// 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');
}

		{
$posts = getids($mybb->get_input('searchid'), 'search');
}

Zeile 2675Zeile 2681
		if(count($posts) < 1)
{
error($lang->error_inline_nopostsselected);

		if(count($posts) < 1)
{
error($lang->error_inline_nopostsselected);

		}


		}


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

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

Zeile 2686Zeile 2692
		foreach($posts as $pid)
{
$pids[] = (int)$pid;

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

		}


		}


		$moderation->restore_posts($pids);

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

		$moderation->restore_posts($pids);

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

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

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

		else
{
clearinline($tid, 'thread');

		else
{
clearinline($tid, 'thread');

Zeile 2704Zeile 2710

// 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'));

if($mybb->get_input('inlinetype') == 'search')
{
$posts = getids($mybb->get_input('searchid'), 'search');

		// 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');

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

Zeile 2728Zeile 2733
			error_no_permission();
}
foreach($posts as $pid)

			error_no_permission();
}
foreach($posts as $pid)

		{
$pids[] = (int)$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 2758Zeile 2763
		$uid = $mybb->input['uid'];
$user = get_user($uid);
if(!$user['uid'] || !purgespammer_show($user['postnum'], $user['usergroup'], $user['uid']))

		$uid = $mybb->input['uid'];
$user = get_user($uid);
if(!$user['uid'] || !purgespammer_show($user['postnum'], $user['usergroup'], $user['uid']))

		{

		{

			error($lang->purgespammer_invalid_user);
}


			error($lang->purgespammer_invalid_user);
}


Zeile 2770Zeile 2775

// Run the hooks first to avoid any issues when we delete the user
$plugins->run_hooks("moderation_purgespammer_purge");


// Run the hooks first to avoid any issues when we delete the user
$plugins->run_hooks("moderation_purgespammer_purge");





			require_once MYBB_ROOT.'inc/datahandlers/user.php';
$userhandler = new UserDataHandler('delete');


			require_once MYBB_ROOT.'inc/datahandlers/user.php';
$userhandler = new UserDataHandler('delete');


Zeile 2804Zeile 2809
						"reason" => $db->escape_string($mybb->settings['purgespammerbanreason'])
);
$db->insert_query('banned', $insert);

						"reason" => $db->escape_string($mybb->settings['purgespammerbanreason'])
);
$db->insert_query('banned', $insert);

				}

				}


// Add the IP's to the banfilters
foreach(array($user['regip'], $user['lastip']) as $ip)
{
$ip = my_inet_ntop($db->unescape_binary($ip));


// Add the IP's to the banfilters
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 2821Zeile 2826
						$db->insert_query("banfilters", $insert);
}
}

						$db->insert_query("banfilters", $insert);
}
}





				// Clear the profile
$userhandler->clear_profile($uid, $mybb->settings['purgespammerbangroup']);

				// Clear the profile
$userhandler->clear_profile($uid, $mybb->settings['purgespammerbangroup']);





				$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 2838Zeile 2844

// 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);

if($user_deleted)

			log_moderator_action(array('uid' => $uid, 'username' => $user['username']), $lang->purgespammer_modlog);

if($user_deleted)

			{

			{

				redirect($mybb->settings['bburl'], $lang->purgespammer_success);

				redirect($mybb->settings['bburl'], $lang->purgespammer_success);

			}

			}

			else
{
redirect(get_profile_link($uid), $lang->purgespammer_success);

			else
{
redirect(get_profile_link($uid), $lang->purgespammer_success);

			}
}

			}
}

		else if($mybb->input['action'] == "purgespammer")
{
$plugins->run_hooks("moderation_purgespammer_show");

		else if($mybb->input['action'] == "purgespammer")
{
$plugins->run_hooks("moderation_purgespammer_show");

Zeile 2864Zeile 2870
				$lang->purgespammer_purge_desc = $lang->sprintf($lang->purgespammer_purge_desc, $lang->purgespammer_ban);
}
else

				$lang->purgespammer_purge_desc = $lang->sprintf($lang->purgespammer_purge_desc, $lang->purgespammer_ban);
}
else

			{

			{

				$lang->purgespammer_purge_desc = $lang->sprintf($lang->purgespammer_purge_desc, $lang->purgespammer_delete);				
}
eval("\$purgespammer = \"".$templates->get('moderation_purgespammer')."\";");

				$lang->purgespammer_purge_desc = $lang->sprintf($lang->purgespammer_purge_desc, $lang->purgespammer_delete);				
}
eval("\$purgespammer = \"".$templates->get('moderation_purgespammer')."\";");

Zeile 2874Zeile 2880
	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
verify_post_check($mybb->get_input('my_post_key'));

$options = my_unserialize($tool['threadoptions']);

		if($tool !== false)
{
// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

$options = my_unserialize($tool['threadoptions']);


if($tool['groups'] != -1 && !is_member($tool['groups']))
{


if(!is_member($tool['groups']))
{

				error_no_permission();
}


				error_no_permission();
}


Zeile 2900Zeile 2906
				$plugins->run_hooks('moderation_confirmation');

eval('$page = "'.$templates->get('moderation_confirmation').'";');

				$plugins->run_hooks('moderation_confirmation');

eval('$page = "'.$templates->get('moderation_confirmation').'";');





				output_page($page);
exit;
}

				output_page($page);
exit;
}

Zeile 2930Zeile 2936
					error($lang->error_movetocategory);
}


					error($lang->error_movetocategory);
}


				$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 2961Zeile 2967
					error($lang->error_movetocategory);
}


					error($lang->error_movetocategory);
}


				$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 2990Zeile 2996
				if(count($pids) < 1)
{
error($lang->error_inline_nopostsselected);

				if(count($pids) < 1)
{
error($lang->error_inline_nopostsselected);

				}
if(!is_moderator_by_pids($pids, "canusecustomtools"))
{
error_no_permission();
}


				}
if(!is_moderator_by_pids($pids, "canusecustomtools"))
{
error_no_permission();
}


				// Get threads which are associated with the posts
$tids = array();
$options = array(

				// Get threads which are associated with the posts
$tids = array();
$options = array(

Zeile 3006Zeile 3012
				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 3032Zeile 3038
						moderation_redirect(get_thread_link($tid), $lang->redirect_customtool_thread);
}
}

						moderation_redirect(get_thread_link($tid), $lang->redirect_customtool_thread);
}
}





				break;
}
}

				break;
}
}

Zeile 3040Zeile 3046
		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;





	$newids = array();
$cookie = "inlinemod_".$type.$id;
if(isset($mybb->cookies[$cookie]))
{
$cookie_ids = explode("|", $mybb->cookies[$cookie]);

	$newids = array();
$cookie = "inlinemod_".$type.$id;
if(isset($mybb->cookies[$cookie]))
{
$cookie_ids = explode("|", $mybb->cookies[$cookie]);





		foreach($cookie_ids as $cookie_id)
{
if(empty($cookie_id))
{
continue;

		foreach($cookie_ids as $cookie_id)
{
if(empty($cookie_id))
{
continue;

			}

			}


if($cookie_id == 'ALL')
{


if($cookie_id == 'ALL')
{

Zeile 3072Zeile 3085
	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 3088Zeile 3107
		if(!is_array($removed_ids))
{
$removed_ids = array();

		if(!is_array($removed_ids))
{
$removed_ids = array();

		}
}


		}
}


	// "Select all Threads in this forum" only supported by forumdisplay and search
if($type == 'forum')
{
$query = $db->simple_select("threads", "tid", "fid='".(int)$id."'");
while($tid = $db->fetch_field($query, "tid"))

	// "Select all Threads in this forum" only supported by forumdisplay and search
if($type == 'forum')
{
$query = $db->simple_select("threads", "tid", "fid='".(int)$id."'");
while($tid = $db->fetch_field($query, "tid"))

		{

		{

			if(in_array($tid, $removed_ids))
{
continue;

			if(in_array($tid, $removed_ids))
{
continue;

Zeile 3107Zeile 3126
	}
else if($type == 'search')
{

	}
else if($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')
{
$ids = explode(',', $searchlog['posts']);
}
else

		$searchlog = $db->fetch_array($query);
if($searchlog['resulttype'] == 'posts')
{
$ids = explode(',', $searchlog['posts']);
}
else

		{

		{

			$ids = explode(',', $searchlog['threads']);
}


			$ids = explode(',', $searchlog['threads']);
}


Zeile 3131Zeile 3150
	}

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 3178
 * 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 3222
 * 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 3262

/**
* 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="")
{