Vergleich inc/class_moderation.php - 1.8.22 - 1.8.30

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 254Zeile 254
			{
foreach($userposts as $uid => $subtract)
{

			{
foreach($userposts as $uid => $subtract)
{

					$update_array = array(
"postnum" => "-{$subtract['num_posts']}",
"threadnum" => "-{$subtract['num_threads']}",
);









					$update_array = array();

if(isset($subtract['num_posts']))
{
$update_array['postnum'] = "-{$subtract['num_posts']}";
}

if(isset($subtract['num_threads']))
{
$update_array['threadnum'] = "-{$subtract['num_threads']}";
}


					update_user_counters($uid, $update_array);
}
}

					update_user_counters($uid, $update_array);
}
}

Zeile 384Zeile 392

$tid_list = $forum_counters = $user_counters = $posts_to_approve = array();



$tid_list = $forum_counters = $user_counters = $posts_to_approve = array();


		foreach($tids as $tid)




		$tids_list = implode(",", $tids);
$query = $db->simple_select("threads", "*", "tid IN ($tids_list)");

while($thread = $db->fetch_array($query))

		{

		{

			$thread = get_thread($tid);
if(!$thread || $thread['visible'] == 1 || $thread['visible'] == -1)

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


			{
continue;
}

			{
continue;
}

Zeile 421Zeile 431
			if($forum['usepostcounts'] != 0)
{
// On approving thread restore user post counts

			if($forum['usepostcounts'] != 0)
{
// On approving thread restore user post counts

				$query = $db->simple_select("posts", "COUNT(pid) as posts, uid", "tid='{$tid}' AND (visible='1' OR pid='{$thread['firstpost']}') AND uid > 0 GROUP BY uid");
while($counter = $db->fetch_array($query))

				$query2 = $db->simple_select("posts", "COUNT(pid) as posts, uid", "tid='{$thread['tid']}' AND (visible='1' OR pid='{$thread['firstpost']}') AND uid > 0 GROUP BY uid");
while($counter = $db->fetch_array($query2))

				{
$user_counters[$counter['uid']]['num_posts'] += $counter['posts'];
}

				{
$user_counters[$counter['uid']]['num_posts'] += $counter['posts'];
}

Zeile 431Zeile 441
			if($forum['usethreadcounts'] != 0 && substr($thread['closed'], 0, 6) != 'moved|')
{
++$user_counters[$thread['uid']]['num_threads'];

			if($forum['usethreadcounts'] != 0 && substr($thread['closed'], 0, 6) != 'moved|')
{
++$user_counters[$thread['uid']]['num_threads'];

			}


			}


			$posts_to_approve[] = $thread['firstpost'];
}

			$posts_to_approve[] = $thread['firstpost'];
}





		if(!empty($tid_list))
{
$tid_moved_list = "";

		if(!empty($tid_list))
{
$tid_moved_list = "";

Zeile 464Zeile 474
			if(!empty($posts_to_approve))
{
$db->update_query("posts", $approve, "pid IN (".implode(',', $posts_to_approve).")");

			if(!empty($posts_to_approve))
{
$db->update_query("posts", $approve, "pid IN (".implode(',', $posts_to_approve).")");

			}

$plugins->run_hooks("class_moderation_approve_threads", $tids);


			}

$plugins->run_hooks("class_moderation_approve_threads", $tids);


			if(!empty($forum_counters))
{
foreach($forum_counters as $fid => $counters)

			if(!empty($forum_counters))
{
foreach($forum_counters as $fid => $counters)

Zeile 534Zeile 544

$forum_counters = $user_counters = $posts_to_unapprove = array();



$forum_counters = $user_counters = $posts_to_unapprove = array();


		foreach($tids as $tid)




		$tids_list = implode(",", $tids);
$query = $db->simple_select("threads", "*", "tid IN ($tids_list)");

while($thread = $db->fetch_array($query))

		{

		{

			$thread = get_thread($tid);

 
			$forum = get_forum($thread['fid']);

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

			$forum = get_forum($thread['fid']);

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

Zeile 580Zeile 592
				// On unapproving thread update user post counts
if($thread['visible'] == 1 && $forum['usepostcounts'] != 0)
{

				// On unapproving thread update user post counts
if($thread['visible'] == 1 && $forum['usepostcounts'] != 0)
{

					$query = $db->simple_select("posts", "COUNT(pid) AS posts, uid", "tid='{$tid}' AND (visible='1' OR pid='{$thread['firstpost']}') AND uid > 0 GROUP BY uid");
while($counter = $db->fetch_array($query))

					$query2 = $db->simple_select("posts", "COUNT(pid) AS posts, uid", "tid='{$thread['tid']}' AND (visible='1' OR pid='{$thread['firstpost']}') AND uid > 0 GROUP BY uid");
while($counter = $db->fetch_array($query2))

					{
$user_counters[$counter['uid']]['num_posts'] += $counter['posts'];
}

					{
$user_counters[$counter['uid']]['num_posts'] += $counter['posts'];
}

Zeile 779Zeile 791
			LEFT JOIN ".TABLE_PREFIX."attachments a ON (a.pid=p.pid AND a.visible=1)
WHERE p.pid IN($pidin)
GROUP BY p.pid

			LEFT JOIN ".TABLE_PREFIX."attachments a ON (a.pid=p.pid AND a.visible=1)
WHERE p.pid IN($pidin)
GROUP BY p.pid

			ORDER BY p.dateline ASC

			ORDER BY p.dateline ASC, p.pid ASC

		");
$message = '';
$threads = $forum_counters = $thread_counters = $user_counters = array();

		");
$message = '';
$threads = $forum_counters = $thread_counters = $user_counters = array();

Zeile 902Zeile 914
		{
// In some cases the first post of a thread changes
// Therefore resync the visible field to make sure they're the same if they're not

		{
// In some cases the first post of a thread changes
// Therefore resync the visible field to make sure they're the same if they're not

			$query = $db->simple_select("posts", "pid, uid, visible", "tid='{$thread['tid']}'", array('order_by' => 'dateline', 'order_dir' => 'asc', 'limit' => 1));

			$query = $db->simple_select("posts", "pid, uid, visible", "tid='{$thread['tid']}'", array('order_by' => 'dateline, pid', 'limit' => 1));

			$new_firstpost = $db->fetch_array($query);
if($thread['visible'] != $new_firstpost['visible'])
{

			$new_firstpost = $db->fetch_array($query);
if($thread['visible'] != $new_firstpost['visible'])
{

Zeile 1171Zeile 1183
						'question' => $db->escape_string($poll['question']),
'dateline' => $poll['dateline'],
'options' => $db->escape_string($poll['options']),

						'question' => $db->escape_string($poll['question']),
'dateline' => $poll['dateline'],
'options' => $db->escape_string($poll['options']),

						'votes' => $poll['votes'],

						'votes' => $db->escape_string($poll['votes']),

						'numoptions' => $poll['numoptions'],
'numvotes' => $poll['numvotes'],
'timeout' => $poll['timeout'],

						'numoptions' => $poll['numoptions'],
'numvotes' => $poll['numvotes'],
'timeout' => $poll['timeout'],

Zeile 1549Zeile 1561

// In some cases the thread we may be merging with may cause us to have a new firstpost if it is an older thread
// Therefore resync the visible field to make sure they're the same if they're not


// In some cases the thread we may be merging with may cause us to have a new firstpost if it is an older thread
// Therefore resync the visible field to make sure they're the same if they're not

		$query = $db->simple_select("posts", "pid, uid, visible", "tid='{$tid}'", array('order_by' => 'dateline', 'order_dir' => 'asc', 'limit' => 1));

		$query = $db->simple_select("posts", "pid, uid, visible", "tid='{$tid}'", array('order_by' => 'dateline, pid', 'limit' => 1));

		$new_firstpost = $db->fetch_array($query);
if($thread['visible'] != $new_firstpost['visible'])
{
$db->update_query("posts", array('visible' => $thread['visible']), "pid='{$new_firstpost['pid']}'");
if($new_firstpost['visible'] == 1 && $forum_cache[$thread['fid']]['usepostcounts'] == 1)

		$new_firstpost = $db->fetch_array($query);
if($thread['visible'] != $new_firstpost['visible'])
{
$db->update_query("posts", array('visible' => $thread['visible']), "pid='{$new_firstpost['pid']}'");
if($new_firstpost['visible'] == 1 && $forum_cache[$thread['fid']]['usepostcounts'] == 1)

			{

			{

				--$user_posts[$post['uid']]['postnum'];

				--$user_posts[$post['uid']]['postnum'];

			}

			}

			elseif($thread['visible'] == 1 && $forum_cache[$thread['fid']]['usepostcounts'] == 1)
{
++$user_posts[$post['uid']]['postnum'];

			elseif($thread['visible'] == 1 && $forum_cache[$thread['fid']]['usepostcounts'] == 1)
{
++$user_posts[$post['uid']]['postnum'];

			}
}

			}
}

		// Update first post if needed
if($new_firstpost['pid'] != $thread['firstpost'])
{

		// Update first post if needed
if($new_firstpost['pid'] != $thread['firstpost'])
{

Zeile 1589Zeile 1601
		{
// If new thread is unapproved, implied counter comes in to effect
if($thread['visible'] == 0)

		{
// If new thread is unapproved, implied counter comes in to effect
if($thread['visible'] == 0)

			{
$updated_stats = array(

			{
$updated_stats = array(

					"unapprovedposts" => '+'.($mergethread['replies']+$mergethread['unapprovedposts']+$mergethread['deletedposts'])
);
}
elseif($thread['visible'] == -1)

					"unapprovedposts" => '+'.($mergethread['replies']+$mergethread['unapprovedposts']+$mergethread['deletedposts'])
);
}
elseif($thread['visible'] == -1)

			{
$updated_stats = array(

			{
$updated_stats = array(

					"deletedposts" => '+'.($mergethread['replies']+$mergethread['deletedposts']+$mergethread['unapprovedposts'])
);
}

					"deletedposts" => '+'.($mergethread['replies']+$mergethread['deletedposts']+$mergethread['unapprovedposts'])
);
}

Zeile 1609Zeile 1621
				);
}
update_forum_counters($thread['fid'], $updated_stats);

				);
}
update_forum_counters($thread['fid'], $updated_stats);





			// If old thread is unapproved, implied counter comes in to effect
if($mergethread['visible'] == 0)
{
$updated_stats = array(
"unapprovedposts" => '-'.($mergethread['replies']+$mergethread['unapprovedposts']+$mergethread['deletedposts'])

			// If old thread is unapproved, implied counter comes in to effect
if($mergethread['visible'] == 0)
{
$updated_stats = array(
"unapprovedposts" => '-'.($mergethread['replies']+$mergethread['unapprovedposts']+$mergethread['deletedposts'])

				);
}

				);
}

			elseif($mergethread['visible'] == -1)
{
$updated_stats = array(

			elseif($mergethread['visible'] == -1)
{
$updated_stats = array(

Zeile 1630Zeile 1642
					"unapprovedposts" => "-{$mergethread['unapprovedposts']}",
"deletedposts" => "-{$mergethread['deletedposts']}"
);

					"unapprovedposts" => "-{$mergethread['unapprovedposts']}",
"deletedposts" => "-{$mergethread['deletedposts']}"
);

			}

			}

			update_forum_counters($mergethread['fid'], $updated_stats);
update_forum_lastpost($mergethread['fid']);
}

			update_forum_counters($mergethread['fid'], $updated_stats);
update_forum_lastpost($mergethread['fid']);
}

Zeile 1663Zeile 1675
				$updated_stats['unapprovedposts'] += $mergethread['replies']+$mergethread['deletedposts'];
$updated_stats['posts'] -= $mergethread['replies'];
$updated_stats['deletedposts'] -= $mergethread['deletedposts'];

				$updated_stats['unapprovedposts'] += $mergethread['replies']+$mergethread['deletedposts'];
$updated_stats['posts'] -= $mergethread['replies'];
$updated_stats['deletedposts'] -= $mergethread['deletedposts'];

			}

			}

			elseif($thread['visible'] == -1)
{
$updated_stats['deletedposts'] += $mergethread['replies']+$mergethread['unapprovedposts'];
$updated_stats['posts'] -= $mergethread['replies'];
$updated_stats['unapprovedposts'] -= $mergethread['unapprovedposts'];

			elseif($thread['visible'] == -1)
{
$updated_stats['deletedposts'] += $mergethread['replies']+$mergethread['unapprovedposts'];
$updated_stats['posts'] -= $mergethread['replies'];
$updated_stats['unapprovedposts'] -= $mergethread['unapprovedposts'];

			}

			}


$new_stats = array();
if($updated_stats['posts'] < 0)


$new_stats = array();
if($updated_stats['posts'] < 0)

Zeile 1682Zeile 1694
			}

if($updated_stats['unapprovedposts'] < 0)

			}

if($updated_stats['unapprovedposts'] < 0)

			{

			{

				$new_stats['unapprovedposts'] = $updated_stats['unapprovedposts'];

				$new_stats['unapprovedposts'] = $updated_stats['unapprovedposts'];

			}

			}

			elseif($updated_stats['unapprovedposts'] > 0)
{
$new_stats['unapprovedposts'] = "+{$updated_stats['unapprovedposts']}";

			elseif($updated_stats['unapprovedposts'] > 0)
{
$new_stats['unapprovedposts'] = "+{$updated_stats['unapprovedposts']}";

			}


			}


			if($updated_stats['deletedposts'] < 0)
{
$new_stats['deletedposts'] = $updated_stats['deletedposts'];

			if($updated_stats['deletedposts'] < 0)
{
$new_stats['deletedposts'] = $updated_stats['deletedposts'];

Zeile 1716Zeile 1728
			elseif($new_firstpost['visible'] == -1)
{
--$mergethread['deletedposts'];

			elseif($new_firstpost['visible'] == -1)
{
--$mergethread['deletedposts'];

			}
else

			}
else

			{
--$mergethread['unapprovedposts'];
}

			{
--$mergethread['unapprovedposts'];
}

Zeile 1749Zeile 1761
			"replies" => "+{$mergethread['replies']}",
"attachmentcount" => "+{$mergethread['attachmentcount']}",
"unapprovedposts" => "+{$mergethread['unapprovedposts']}",

			"replies" => "+{$mergethread['replies']}",
"attachmentcount" => "+{$mergethread['attachmentcount']}",
"unapprovedposts" => "+{$mergethread['unapprovedposts']}",

			"deletedposts" => "+{$mergethread['unapprovedposts']}",

 
			"deletedposts" => "+{$mergethread['deletedposts']}"
);
update_thread_counters($tid, $updated_stats);

			"deletedposts" => "+{$mergethread['deletedposts']}"
);
update_thread_counters($tid, $updated_stats);

Zeile 1794Zeile 1805
		}

// Get the first split post

		}

// Get the first split post

		$query = $db->simple_select('posts', 'pid,uid,visible,icon,username,dateline', 'pid IN ('.$pids_list.')', array('order_by' => 'dateline', 'order_dir' => 'asc', 'limit' => 1));

		$query = $db->simple_select('posts', 'pid,uid,visible,icon,username,dateline', 'pid IN ('.$pids_list.')', array('order_by' => 'dateline, pid', 'limit' => 1));


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



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


Zeile 1808Zeile 1819
			'unapprovedposts' => 0,
'deletedposts' => 0
);

			'unapprovedposts' => 0,
'deletedposts' => 0
);

 

$user_counters = array();


if($destination_tid == 0)
{


if($destination_tid == 0)
{

Zeile 1960Zeile 1973
			{
// In some cases the first post of a thread changes
// Therefore resync the visible field to make sure they're the same if they're not

			{
// In some cases the first post of a thread changes
// Therefore resync the visible field to make sure they're the same if they're not

				$query = $db->simple_select("posts", "pid, visible, uid", "tid='{$post['tid']}'", array('order_by' => 'dateline', 'order_dir' => 'asc', 'limit' => 1));

				$query = $db->simple_select("posts", "pid, visible, uid", "tid='{$post['tid']}'", array('order_by' => 'dateline, pid', 'limit' => 1));

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

if(!isset($user_counters[$new_firstpost['uid']]))

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

if(!isset($user_counters[$new_firstpost['uid']]))

Zeile 1987Zeile 2000
					elseif($new_firstpost['visible'] == -1)
{
--$thread_counters[$post['tid']]['deletedposts'];

					elseif($new_firstpost['visible'] == -1)
{
--$thread_counters[$post['tid']]['deletedposts'];

					}
else

					}
else

					{
--$thread_counters[$post['tid']]['unapprovedposts'];
}

					{
--$thread_counters[$post['tid']]['unapprovedposts'];
}

Zeile 2147Zeile 2160
				if($tid == $newtid)
{
// Update the subject of the first post in the new thread

				if($tid == $newtid)
{
// Update the subject of the first post in the new thread

					$query = $db->simple_select("posts", "pid", "tid='$newtid'", array('order_by' => 'dateline', 'limit' => 1));

					$query = $db->simple_select("posts", "pid", "tid='$newtid'", array('order_by' => 'dateline, pid', 'limit' => 1));

					$newthread = $db->fetch_array($query);
$sqlarray = array(
"subject" => $newsubject,

					$newthread = $db->fetch_array($query);
$sqlarray = array(
"subject" => $newsubject,

Zeile 2163Zeile 2176
						FROM ".TABLE_PREFIX."posts p
LEFT JOIN ".TABLE_PREFIX."threads t ON (p.tid=t.tid)
WHERE p.tid='{$tid}'

						FROM ".TABLE_PREFIX."posts p
LEFT JOIN ".TABLE_PREFIX."threads t ON (p.tid=t.tid)
WHERE p.tid='{$tid}'

						ORDER BY p.dateline ASC

						ORDER BY p.dateline ASC, p.pid ASC

						LIMIT 1
");
$oldthread = $db->fetch_array($query);

						LIMIT 1
");
$oldthread = $db->fetch_array($query);

Zeile 2762Zeile 2775
		$tid_list = implode(',', $tids);

// Get original subject

		$tid_list = implode(',', $tids);

// Get original subject

		$query = $db->simple_select("threads", "subject, tid", "tid IN ($tid_list)");





		$query = $db->query("
SELECT u.uid, u.username, t.tid, t.subject FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."users u ON t.uid=u.uid
WHERE tid IN ($tid_list)
");

		while($thread = $db->fetch_array($query))
{
// Update threads and first posts with new subject

		while($thread = $db->fetch_array($query))
{
// Update threads and first posts with new subject

			$subject = str_replace('{username}', $mybb->user['username'], $format);
$subject = str_replace('{subject}', $thread['subject'], $subject);
$new_subject = array(
"subject" => $db->escape_string($subject)











			$find = array('{username}', 'author', '{subject}');
$replace = array($mybb->user['username'], $thread['username'], $thread['subject']);

$new_subject = str_ireplace($find, $replace, $format);

$args = array(
'thread' => &$thread,
'new_subject' => &$new_subject,
);

$plugins->run_hooks("class_moderation_change_thread_subject_newsubject", $args);

$update_subject = array(
"subject" => $db->escape_string($new_subject)

			);

			);

			$db->update_query("threads", $new_subject, "tid='{$thread['tid']}'");
$db->update_query("posts", $new_subject, "tid='{$thread['tid']}' AND replyto='0'");

			$db->update_query("threads", $update_subject, "tid='{$thread['tid']}'");
$db->update_query("posts", $update_subject, "tid='{$thread['tid']}' AND replyto='0'");

		}

$arguments = array("tids" => $tids, "format" => $format);
$plugins->run_hooks("class_moderation_change_thread_subject", $arguments);

		}

$arguments = array("tids" => $tids, "format" => $format);
$plugins->run_hooks("class_moderation_change_thread_subject", $arguments);


return true;
}



return true;
}


	/**
* Add thread expiry
*

	/**
* Add thread expiry
*

Zeile 2791Zeile 2818
	function expire_thread($tid, $deletetime)
{
global $db, $plugins;

	function expire_thread($tid, $deletetime)
{
global $db, $plugins;





		$tid = (int)$tid;

if(empty($tid))

		$tid = (int)$tid;

if(empty($tid))

Zeile 2812Zeile 2839

/**
* Toggle post visibility (approved/unapproved)


/**
* Toggle post visibility (approved/unapproved)

	 *
* @param array $pids Post IDs

	 *
* @param array $pids Post IDs

	 * @return boolean true
*/
function toggle_post_visibility($pids)

	 * @return boolean true
*/
function toggle_post_visibility($pids)

Zeile 2854Zeile 2881
	 * @return boolean true
*/
function toggle_post_softdelete($pids)

	 * @return boolean true
*/
function toggle_post_softdelete($pids)

	{
global $db;

// Make sure we only have valid values
$pids = array_map('intval', $pids);

	{
global $db;

// Make sure we only have valid values
$pids = array_map('intval', $pids);


$pid_list = implode(',', $pids);
$query = $db->simple_select("posts", 'pid, visible', "pid IN ($pid_list)");


$pid_list = implode(',', $pids);
$query = $db->simple_select("posts", 'pid, visible', "pid IN ($pid_list)");

Zeile 3496Zeile 3523

$tid_list = $forum_counters = $user_counters = $posts_to_restore = array();



$tid_list = $forum_counters = $user_counters = $posts_to_restore = array();


		foreach($tids as $tid)




		$tids_list = implode(",", $tids);
$query = $db->simple_select("threads", "*", "tid IN ($tids_list)");

while($thread = $db->fetch_array($query))

		{

		{

			$thread = get_thread($tid);
if(!$thread || $thread['visible'] != -1)

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


			{
continue;

			{
continue;

			}

			}

			$tid_list[] = $thread['tid'];

			$tid_list[] = $thread['tid'];





			$forum = get_forum($thread['fid']);

			$forum = get_forum($thread['fid']);





			if(!isset($forum_counters[$forum['fid']]))
{
$forum_counters[$forum['fid']] = array(

			if(!isset($forum_counters[$forum['fid']]))
{
$forum_counters[$forum['fid']] = array(

Zeile 3514Zeile 3543
					'num_threads' => 0,
'num_deleted_posts' => 0,
'num_unapproved_posts' => 0

					'num_threads' => 0,
'num_deleted_posts' => 0,
'num_unapproved_posts' => 0

				);
}


				);
}


			if(!isset($user_counters[$thread['uid']]))
{
$user_counters[$thread['uid']] = array(
'num_posts' => 0,
'num_threads' => 0
);

			if(!isset($user_counters[$thread['uid']]))
{
$user_counters[$thread['uid']] = array(
'num_posts' => 0,
'num_threads' => 0
);

			}


			}


			++$forum_counters[$forum['fid']]['num_threads'];
$forum_counters[$forum['fid']]['num_posts'] += $thread['replies']+1; // Remove implied visible from count
$forum_counters[$forum['fid']]['num_deleted_posts'] += $thread['replies']+$thread['unapprovedposts']+1;

			++$forum_counters[$forum['fid']]['num_threads'];
$forum_counters[$forum['fid']]['num_posts'] += $thread['replies']+1; // Remove implied visible from count
$forum_counters[$forum['fid']]['num_deleted_posts'] += $thread['replies']+$thread['unapprovedposts']+1;

Zeile 3533Zeile 3562
			if($forum['usepostcounts'] != 0)
{
// On approving thread restore user post counts

			if($forum['usepostcounts'] != 0)
{
// On approving thread restore user post counts

				$query = $db->simple_select("posts", "COUNT(pid) as posts, uid", "tid='{$tid}' AND (visible='1' OR pid='{$thread['firstpost']}') AND uid > 0 GROUP BY uid");
while($counter = $db->fetch_array($query))

				$query2 = $db->simple_select("posts", "COUNT(pid) as posts, uid", "tid='{$thread['tid']}' AND (visible='1' OR pid='{$thread['firstpost']}') AND uid > 0 GROUP BY uid");
while($counter = $db->fetch_array($query2))

				{
if(!isset($user_counters[$counter['uid']]['num_posts']))
{

				{
if(!isset($user_counters[$counter['uid']]['num_posts']))
{

Zeile 3580Zeile 3609
			if(!empty($posts_to_restore))
{
$db->update_query("posts", $update, "pid IN (".implode(',', $posts_to_restore).")");

			if(!empty($posts_to_restore))
{
$db->update_query("posts", $update, "pid IN (".implode(',', $posts_to_restore).")");

			}

$plugins->run_hooks("class_moderation_restore_threads", $tids);

			}

$plugins->run_hooks("class_moderation_restore_threads", $tids);


if(is_array($forum_counters))
{
foreach($forum_counters as $fid => $counters)
{
// Update stats


if(is_array($forum_counters))
{
foreach($forum_counters as $fid => $counters)
{
// Update stats

					$update_array = array(

					$update_array = array(

						"threads" => "+{$counters['num_threads']}",
"posts" => "+{$counters['num_posts']}",
"unapprovedposts" => "+{$counters['num_unapproved_posts']}",

						"threads" => "+{$counters['num_threads']}",
"posts" => "+{$counters['num_posts']}",
"unapprovedposts" => "+{$counters['num_unapproved_posts']}",

Zeile 3610Zeile 3639
						"threadnum" => "+{$counters['num_threads']}",
);
update_user_counters($uid, $update_array);

						"threadnum" => "+{$counters['num_threads']}",
);
update_user_counters($uid, $update_array);

				}

				}

			}
}
return true;

			}
}
return true;

Zeile 3638Zeile 3667

// Make sure we only have valid values
$tids = array_map('intval', $tids);


// Make sure we only have valid values
$tids = array_map('intval', $tids);





		$tid_list = implode(',', $tids);
$tid_moved_list = "";
$comma = "";

		$tid_list = implode(',', $tids);
$tid_moved_list = "";
$comma = "";

Zeile 3649Zeile 3678
		}

$forum_counters = $user_counters = $posts_to_delete = array();

		}

$forum_counters = $user_counters = $posts_to_delete = array();


foreach($tids as $tid)





$tids_list = implode(",", $tids);
$query = $db->simple_select("threads", "*", "tid IN ($tids_list)");

while($thread = $db->fetch_array($query))

		{

		{

			$thread = get_thread($tid);

 
			$forum = get_forum($thread['fid']);

if($thread['visible'] == 1 || $thread['visible'] == 0)

			$forum = get_forum($thread['fid']);

if($thread['visible'] == 1 || $thread['visible'] == 0)

Zeile 3666Zeile 3697
						'num_deleted_posts' => 0,
'unapproved_threads' => 0,
'unapproved_posts' => 0

						'num_deleted_posts' => 0,
'unapproved_threads' => 0,
'unapproved_posts' => 0

					);

					);

				}

if(!isset($user_counters[$thread['uid']]))

				}

if(!isset($user_counters[$thread['uid']]))

Zeile 3696Zeile 3727
				// On unapproving thread update user post counts
if($thread['visible'] == 1 && $forum['usepostcounts'] != 0)
{

				// On unapproving thread update user post counts
if($thread['visible'] == 1 && $forum['usepostcounts'] != 0)
{

					$query = $db->simple_select("posts", "COUNT(pid) AS posts, uid", "tid='{$tid}' AND (visible='1' OR pid='{$thread['firstpost']}') AND uid > 0 GROUP BY uid");
while($counter = $db->fetch_array($query))

					$query2 = $db->simple_select("posts", "COUNT(pid) AS posts, uid", "tid='{$thread['tid']}' AND (visible='1' OR pid='{$thread['firstpost']}') AND uid > 0 GROUP BY uid");
while($counter = $db->fetch_array($query2))

					{
if(!isset($user_counters[$counter['uid']]['num_posts']))
{

					{
if(!isset($user_counters[$counter['uid']]['num_posts']))
{

Zeile 3724Zeile 3755
		$query = $db->simple_select('threads', 'tid', "closed IN ({$tid_moved_list})");

mark_reports($tids, "threads");

		$query = $db->simple_select('threads', 'tid', "closed IN ({$tid_moved_list})");

mark_reports($tids, "threads");

		



		while($redirect_tid = $db->fetch_field($query, 'tid'))
{
$redirect_tids[] = $redirect_tid;

		while($redirect_tid = $db->fetch_field($query, 'tid'))
{
$redirect_tids[] = $redirect_tid;