Vergleich inc/class_moderation.php - 1.6.0 - 1.6.10

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 6Zeile 6
 * Website: http://mybb.com
* License: http://mybb.com/about/license
*

 * Website: http://mybb.com
* License: http://mybb.com/about/license
*

 * $Id: class_moderation.php 5145 2010-07-30 21:30:51Z RyanGordon $

 * $Id$

 */

class Moderation

 */

class Moderation

Zeile 237Zeile 237
		$db->delete_query("polls", "tid='$tid'");
$db->delete_query("pollvotes", "pid='".$thread['poll']."'");
$db->delete_query("threadsread", "tid='$tid'");

		$db->delete_query("polls", "tid='$tid'");
$db->delete_query("pollvotes", "pid='".$thread['poll']."'");
$db->delete_query("threadsread", "tid='$tid'");

 
		$db->delete_query("threadratings", "tid='$tid'");


$updated_counters = array(
"posts" => "-{$num_approved_posts}",


$updated_counters = array(
"posts" => "-{$num_approved_posts}",

Zeile 453Zeile 454
	{
global $db, $cache, $plugins;


	{
global $db, $cache, $plugins;


		$plugins->run_hooks_by_ref("class_moderation_delete_post_start", $pid);

		$pid = $plugins->run_hooks("class_moderation_delete_post_start", $pid);

		// Get pid, uid, fid, tid, visibility, forum post count status of post
$pid = intval($pid);
$query = $db->query("

		// Get pid, uid, fid, tid, visibility, forum post count status of post
$pid = intval($pid);
$query = $db->query("

Zeile 605Zeile 606
				}
}
}

				}
}
}


// Get lastpost pid to check if we're merging a post that is on the lastpost info
$query = $db->simple_select("posts", "pid", "tid = '{$post['tid']}'", array('order_by' => 'dateline', 'order_dir' => 'desc', 'limit' => '1'));
$lastpostpid = $db->fetch_field($query, 'pid');

 
		
$query2 = $db->simple_select("attachments", "COUNT(aid) as count", "pid IN({$pidin}) AND visible='1'");
$attachment_count = $db->fetch_field($query2, "count");

		
$query2 = $db->simple_select("attachments", "COUNT(aid) as count", "pid IN({$pidin}) AND visible='1'");
$attachment_count = $db->fetch_field($query2, "count");

Zeile 641Zeile 638
				if(!isset($forum_counters[$thread['fid']]['threads']))
{
$forum_counters[$thread['fid']]['threads'] = 0;

				if(!isset($forum_counters[$thread['fid']]['threads']))
{
$forum_counters[$thread['fid']]['threads'] = 0;

				}

				}

				--$forum_counters[$thread['fid']]['threads'];

				--$forum_counters[$thread['fid']]['threads'];

			}

			}

			else
{
if(!isset($forum_counters[$thread['fid']]['unapprovedthreads']))

			else
{
if(!isset($forum_counters[$thread['fid']]['unapprovedthreads']))

Zeile 651Zeile 648
					$forum_counters[$thread['fid']]['unapprovedthreads'] = 0;
}
--$forum_counters[$thread['fid']]['unapprovedthreads'];

					$forum_counters[$thread['fid']]['unapprovedthreads'] = 0;
}
--$forum_counters[$thread['fid']]['unapprovedthreads'];

			}
}

			}
}


$arguments = array("pids" => $pids, "tid" => $tid);
$plugins->run_hooks("class_moderation_merge_posts", $arguments);


$arguments = array("pids" => $pids, "tid" => $tid);
$plugins->run_hooks("class_moderation_merge_posts", $arguments);

Zeile 697Zeile 694
	 * @return int Thread ID
*/
function move_thread($tid, $new_fid, $method="redirect", $redirect_expire=0)

	 * @return int Thread ID
*/
function move_thread($tid, $new_fid, $method="redirect", $redirect_expire=0)

	{

	{

		global $db, $plugins;

// Get thread info

		global $db, $plugins;

// Get thread info

Zeile 765Zeile 762
					"replies" => 0,
"closed" => "moved|$tid",
"sticky" => $thread['sticky'],

					"replies" => 0,
"closed" => "moved|$tid",
"sticky" => $thread['sticky'],

					"visible" => $thread['visible'],

					"visible" => intval($thread['visible']),

					"notes" => ''
);
$redirect_tid = $db->insert_query("threads", $threadarray);

					"notes" => ''
);
$redirect_tid = $db->insert_query("threads", $threadarray);

Zeile 798Zeile 795
					"replies" => $thread['replies'],
"closed" => $thread['closed'],
"sticky" => $thread['sticky'],

					"replies" => $thread['replies'],
"closed" => $thread['closed'],
"sticky" => $thread['sticky'],

					"visible" => $thread['visible'],

					"visible" => intval($thread['visible']),

					"unapprovedposts" => $thread['unapprovedposts'],
"attachmentcount" => $thread['attachmentcount'],
"prefix" => $thread['prefix'],

					"unapprovedposts" => $thread['unapprovedposts'],
"attachmentcount" => $thread['attachmentcount'],
"prefix" => $thread['prefix'],

Zeile 904Zeile 901
					{
$attachment_array = array(
'pid' => $pid,

					{
$attachment_array = array(
'pid' => $pid,

							'posthash' => $db->escape_string($attachment['posthash']),

 
							'uid' => $attachment['uid'],
'filename' => $db->escape_string($attachment['filename']),
'filetype' => $attachment['filetype'],

							'uid' => $attachment['uid'],
'filename' => $db->escape_string($attachment['filename']),
'filetype' => $attachment['filetype'],

Zeile 970Zeile 966
				// If we're moving back to a forum where we left a redirect, delete the rediect
$query = $db->simple_select("threads", "tid", "closed LIKE 'moved|".intval($tid)."' AND fid='".intval($new_fid)."'");
while($movedthread = $db->fetch_array($query))

				// If we're moving back to a forum where we left a redirect, delete the rediect
$query = $db->simple_select("threads", "tid", "closed LIKE 'moved|".intval($tid)."' AND fid='".intval($new_fid)."'");
while($movedthread = $db->fetch_array($query))

				{

				{

					$db->delete_query("threads", "tid='".intval($movedthread['tid'])."'", 1);
}
break;

					$db->delete_query("threads", "tid='".intval($movedthread['tid'])."'", 1);
}
break;

Zeile 993Zeile 989
				$pcount = "-{$posters['posts']}";
}
else if($forum['usepostcounts'] == 0 && $newforum['userpostcounts'] == 1 && $posters['visible'] == 1)

				$pcount = "-{$posters['posts']}";
}
else if($forum['usepostcounts'] == 0 && $newforum['userpostcounts'] == 1 && $posters['visible'] == 1)

			{

			{

				$pcount = "+{$posters['posts']}";
}


				$pcount = "+{$posters['posts']}";
}


Zeile 1060Zeile 1056
		{
$query = $db->simple_select("threads", "*", "tid='{$tid}'");
$thread = $db->fetch_array($query);

		{
$query = $db->simple_select("threads", "*", "tid='{$tid}'");
$thread = $db->fetch_array($query);

		}

		}


$pollsql = '';
if($mergethread['poll'])


$pollsql = '';
if($mergethread['poll'])

Zeile 1072Zeile 1068
			$db->update_query("polls", $sqlarray, "tid='".intval($mergethread['tid'])."'");
}
else

			$db->update_query("polls", $sqlarray, "tid='".intval($mergethread['tid'])."'");
}
else

		{

		{

			$query = $db->simple_select("threads", "*", "poll='{$mergethread['poll']}' AND tid != '{$mergetid}'");
$pollcheck = $db->fetch_array($query);
if(!$pollcheck['poll'])
{
$db->delete_query("polls", "pid='{$mergethread['poll']}'");
$db->delete_query("pollvotes", "pid='{$mergethread['poll']}'");

			$query = $db->simple_select("threads", "*", "poll='{$mergethread['poll']}' AND tid != '{$mergetid}'");
$pollcheck = $db->fetch_array($query);
if(!$pollcheck['poll'])
{
$db->delete_query("polls", "pid='{$mergethread['poll']}'");
$db->delete_query("pollvotes", "pid='{$mergethread['poll']}'");

			}
}

$subject = $db->escape_string($subject);


			}
}

$subject = $db->escape_string($subject);


		$sqlarray = array(
"tid" => $tid,
"fid" => $thread['fid'],
"replyto" => 0,

		$sqlarray = array(
"tid" => $tid,
"fid" => $thread['fid'],
"replyto" => 0,

			"visible" => $mergethread['visible'],

 
		);
$db->update_query("posts", $sqlarray, "tid='{$mergetid}'");


		);
$db->update_query("posts", $sqlarray, "tid='{$mergetid}'");


Zeile 1101Zeile 1096
		$sqlarray = array(
"tid" => $tid,
);

		$sqlarray = array(
"tid" => $tid,
);

		$db->update_query("threadsubscriptions", $sqlarray, "tid='{$mergetid}'");




















































// Update the thread ratings
$new_numrating = $thread['numratings'] + $mergethread['numratings'];
$new_threadrating = $thread['totalratings'] + $mergethread['totalratings'];

$sqlarray = array(
"numratings" => $new_numrating,
"totalratings" => $new_threadrating
);

$db->update_query("threads", $sqlarray, "tid = '{$tid}'");

// Check if we have a thread subscription already for our new thread
$subscriptions = array(
$tid => array(),
$mergetid => array()
);

$query = $db->simple_select("threadsubscriptions", "tid, uid", "tid='{$mergetid}' OR tid='{$tid}'");
while($subscription = $db->fetch_array($query))
{
$subscriptions[$subscription['tid']][] = $subscription['uid'];
}

// Update any subscriptions for the merged thread
if(is_array($subscriptions[$mergetid]))
{
$update_users = array();
foreach($subscriptions[$mergetid] as $user)
{
if(!in_array($user, $subscriptions[$tid]))
{
// User doesn't have a $tid subscription
$update_users[] = $user;
}
}

if(!empty($update_users))
{
$update_array = array(
"tid" => $tid
);

$update_users = implode(",", $update_users);
$db->update_query("threadsubscriptions", $update_array, "tid = '{$mergetid}' AND uid IN ({$update_users})");
}
}

// Remove source thread subscriptions
$db->delete_query("threadsubscriptions", "tid = '{$mergetid}'");


		update_first_post($tid);

$arguments = array("mergetid" => $mergetid, "tid" => $tid, "subject" => $subject);

		update_first_post($tid);

$arguments = array("mergetid" => $mergetid, "tid" => $tid, "subject" => $subject);

Zeile 1150Zeile 1195
			{
$updated_stats = array(
"unapprovedposts" => '-'.($mergethread['replies']+1+$mergethread['unapprovedposts'])

			{
$updated_stats = array(
"unapprovedposts" => '-'.($mergethread['replies']+1+$mergethread['unapprovedposts'])

				);
}
else

				);
}
else

			{
$updated_stats = array(
"posts" => '-'.($mergethread['replies']+1),

			{
$updated_stats = array(
"posts" => '-'.($mergethread['replies']+1),

Zeile 1202Zeile 1247
		$pids_list = implode(',', $pids);

// Get the icon for the first split post

		$pids_list = implode(',', $pids);

// Get the icon for the first split post

		$query = $db->simple_select("posts", "icon", "pid=".intval($pids[0]));
$icon = $db->fetch_array($query);




		$query = $db->simple_select("posts", "icon, visible", "pid=".intval($pids[0]));
$post_info = $db->fetch_array($query);

$icon = $post_info['icon'];
$visible = $post_info['visible'];


if($destination_tid == 0)
{


if($destination_tid == 0)
{

Zeile 1214Zeile 1262
			$query = array(
"fid" => $moveto,
"subject" => $newsubject,

			$query = array(
"fid" => $moveto,
"subject" => $newsubject,

				"icon" => intval($icon['icon']),

				"icon" => intval($icon),

				"uid" => intval($thread['uid']),
"username" => $db->escape_string($thread['username']),
"dateline" => intval($thread['dateline']),
"lastpost" => intval($thread['lastpost']),
"lastposter" => $db->escape_string($thread['lastposter']),
"replies" => count($pids)-1,

				"uid" => intval($thread['uid']),
"username" => $db->escape_string($thread['username']),
"dateline" => intval($thread['dateline']),
"lastpost" => intval($thread['lastpost']),
"lastposter" => $db->escape_string($thread['lastposter']),
"replies" => count($pids)-1,

				"visible" => 1,

				"visible" => intval($visible),

				"notes" => ''
);
$newtid = $db->insert_query("threads", $query);

$forum_counters[$moveto]['threads'] = $forum_cache[$moveto]['threads'];

				"notes" => ''
);
$newtid = $db->insert_query("threads", $query);

$forum_counters[$moveto]['threads'] = $forum_cache[$moveto]['threads'];

			++$forum_counters[$moveto]['threads'];










			$forum_counters[$moveto]['unapprovedthreads'] = $forum_cache[$moveto]['unapprovedthreads'];
if($visible)
{
++$forum_counters[$moveto]['threads'];
}
else
{
// Unapproved thread?
++$forum_counters[$moveto]['unapprovedthreads'];
}

		}

// Get attachment counts for each post

		}

// Get attachment counts for each post

Zeile 1336Zeile 1393
					{
$forum_counters[$post['fid']]['unapprovedposts'] = $forum_cache[$post['fid']]['unapprovedposts'];
}

					{
$forum_counters[$post['fid']]['unapprovedposts'] = $forum_cache[$post['fid']]['unapprovedposts'];
}

					--$forum_counters[$post['fid']]['posts'];

					--$forum_counters[$post['fid']]['unapprovedposts'];

					// Add 1 to the new forum's unapproved posts
if(!isset($forum_counters[$moveto]['unapprovedposts']))
{

					// Add 1 to the new forum's unapproved posts
if(!isset($forum_counters[$moveto]['unapprovedposts']))
{

Zeile 1480Zeile 1537
			}

$query1 = $db->query("

			}

$query1 = $db->query("

				SELECT COUNT(p.pid) AS posts, u.uid

				SELECT COUNT(p.pid) AS posts, p.visible, u.uid

				FROM ".TABLE_PREFIX."posts p
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=p.uid)

				FROM ".TABLE_PREFIX."posts p
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=p.uid)

				WHERE tid='{$thread['tid']}'
GROUP BY u.uid

				WHERE p.tid = '{$thread['tid']}'
GROUP BY p.visible, u.uid

				ORDER BY posts DESC
");
while($posters = $db->fetch_array($query1))

				ORDER BY posts DESC
");
while($posters = $db->fetch_array($query1))

Zeile 1516Zeile 1573
		$query = $db->simple_select("threads", "tid, prefix", "tid IN ($tid_list) AND prefix != 0");
while($thread = $db->fetch_array($query))
{

		$query = $db->simple_select("threads", "tid, prefix", "tid IN ($tid_list) AND prefix != 0");
while($thread = $db->fetch_array($query))
{

			$query = $db->simple_select("threadprefixes", "COUNT(*) as num_prefixes", "(CONCAT(',',forums,',') LIKE '%,$new_fid,%' OR forums='-1') AND pid='".$thread['prefix']."'");

			$query = $db->simple_select("threadprefixes", "COUNT(*) as num_prefixes", "(CONCAT(',',forums,',') LIKE '%,$moveto,%' OR forums='-1') AND pid='".$thread['prefix']."'");

			if($db->fetch_field($query, "num_prefixes") == 0)
{
$sqlarray = array(

			if($db->fetch_field($query, "num_prefixes") == 0)
{
$sqlarray = array(

Zeile 2074Zeile 2131
		$tids = array_map('intval', $tids);
$tids_csv = implode(',', $tids);


		$tids = array_map('intval', $tids);
$tids_csv = implode(',', $tids);


		$update_thread = array('prefix' => $prefix);

		$update_thread = array('prefix' => intval($prefix));

		$db->update_query('threads', $update_thread, "tid IN ({$tids_csv})");

$arguments = array('tids' => $tids, 'prefix' => $prefix);

		$db->update_query('threads', $update_thread, "tid IN ({$tids_csv})");

$arguments = array('tids' => $tids, 'prefix' => $prefix);