Zeile 1 | Zeile 1 |
---|
<?php /** * MyBB 1.4
|
<?php /** * MyBB 1.4
|
* Copyright � 2008 MyBB Group, All Rights Reserved
| * Copyright © 2008 MyBB Group, All Rights Reserved
|
* * Website: http://www.mybboard.net * License: http://www.mybboard.net/about/license *
|
* * Website: http://www.mybboard.net * License: http://www.mybboard.net/about/license *
|
* $Id: class_moderation.php 4176 2008-09-03 13:50:09Z Tikitiki $
| * $Id: class_moderation.php 4544 2009-11-27 20:11:25Z RyanGordon $
|
*/
class Moderation
| */
class Moderation
|
Zeile 36 | Zeile 36 |
---|
$openthread = array( "closed" => 1, );
|
$openthread = array( "closed" => 1, );
|
$db->update_query("threads", $openthread, "tid IN ($tid_list)");
| $db->update_query("threads", $openthread, "tid IN ($tid_list) AND closed NOT LIKE 'moved|%'");
|
return true; }
| return true; }
|
Zeile 228 | Zeile 228 |
---|
$pids = implode(',', $pids); $db->delete_query("posts", "pid IN ($pids)"); $db->delete_query("attachments", "pid IN ($pids)");
|
$pids = implode(',', $pids); $db->delete_query("posts", "pid IN ($pids)"); $db->delete_query("attachments", "pid IN ($pids)");
|
| $db->delete_query("reportedposts", "pid IN ($pids)");
|
} // Get thread info $query = get_thread($tid);
| } // Get thread info $query = get_thread($tid);
|
Zeile 321 | Zeile 322 |
---|
continue; } $tid_list[] = $thread['tid'];
|
continue; } $tid_list[] = $thread['tid'];
|
| update_thread_counters($tid, array("unapprovedposts" => "-1"));
|
$forum = get_forum($thread['fid']);
|
$forum = get_forum($thread['fid']);
|
|
|
$forum_counters[$forum['fid']]['num_threads']++; $forum_counters[$forum['fid']]['num_posts'] += $thread['replies']+1; // Remove implied visible from count
if($forum['usepostcounts'] != 0)
|
$forum_counters[$forum['fid']]['num_threads']++; $forum_counters[$forum['fid']]['num_posts'] += $thread['replies']+1; // Remove implied visible from count
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))
| // 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))
|
Zeile 342 | Zeile 345 |
---|
if(is_array($tid_list)) {
|
if(is_array($tid_list)) {
|
| $tid_moved_list = ""; $comma = ""; foreach($tid_list as $tid) { $tid_moved_list .= "{$comma}'moved|{$tid}'"; $comma = ","; }
|
$tid_list = implode(',', $tid_list); $approve = array( "visible" => 1 );
|
$tid_list = implode(',', $tid_list); $approve = array( "visible" => 1 );
|
$db->update_query("threads", $approve, "tid IN ($tid_list)");
| $db->update_query("threads", $approve, "tid IN ($tid_list) OR closed IN ({$tid_moved_list})");
|
$db->update_query("posts", $approve, "pid IN (".implode(',', $posts_to_approve).")");
$plugins->run_hooks("class_moderation_approve_threads", $tids);
| $db->update_query("posts", $approve, "pid IN (".implode(',', $posts_to_approve).")");
$plugins->run_hooks("class_moderation_approve_threads", $tids);
|
Zeile 388 | Zeile 398 |
---|
$tids = array_map('intval', $tids);
$tid_list = implode(',', $tids);
|
$tids = array_map('intval', $tids);
$tid_list = implode(',', $tids);
|
| $tid_moved_list = ""; $comma = ""; foreach($tids as $tid) { $tid_moved_list .= "{$comma}'moved|{$tid}'"; $comma = ","; }
|
foreach($tids as $tid) {
| foreach($tids as $tid) {
|
Zeile 415 | Zeile 432 |
---|
$approve = array( "visible" => 0 );
|
$approve = array( "visible" => 0 );
|
$db->update_query("threads", $approve, "tid IN ($tid_list)");
| $db->update_query("threads", $approve, "tid IN ($tid_list) OR closed IN ({$tid_moved_list})");
|
$db->update_query("posts", $approve, "pid IN (".implode(',', $posts_to_unapprove).")");
$plugins->run_hooks("class_moderation_unapprove_threads", $tids);
| $db->update_query("posts", $approve, "pid IN (".implode(',', $posts_to_unapprove).")");
$plugins->run_hooks("class_moderation_unapprove_threads", $tids);
|
Zeile 469 | Zeile 486 |
---|
// Delete the post $db->delete_query("posts", "pid='$pid'");
|
// Delete the post $db->delete_query("posts", "pid='$pid'");
|
| // Remove any reports attached to this post $db->delete_query("reportedposts", "pid='$pid'");
|
$num_unapproved_posts = $num_approved_posts = 0; // Update unapproved post count if($post['visible'] == 0) { ++$num_unapproved_posts;
|
$num_unapproved_posts = $num_approved_posts = 0; // Update unapproved post count if($post['visible'] == 0) { ++$num_unapproved_posts;
|
}
| }
|
else { ++$num_approved_posts; } $plugins->run_hooks("class_moderation_delete_post", $post['pid']);
|
else { ++$num_approved_posts; } $plugins->run_hooks("class_moderation_delete_post", $post['pid']);
|
|
|
// Update stats $update_array = array( "replies" => "-{$num_approved_posts}",
| // Update stats $update_array = array( "replies" => "-{$num_approved_posts}",
|
Zeile 560 | Zeile 580 |
---|
if(!$thread_counters[$post['tid']]['replies']) { $thread_counters[$post['tid']]['replies'] = $post['threadreplies'];
|
if(!$thread_counters[$post['tid']]['replies']) { $thread_counters[$post['tid']]['replies'] = $post['threadreplies'];
|
}
| }
|
--$thread_counters[$post['tid']]['replies']; // Subtract 1 approved post from post's forum --$forum_counters[$post['fid']]['num_posts'];
| --$thread_counters[$post['tid']]['replies']; // Subtract 1 approved post from post's forum --$forum_counters[$post['fid']]['num_posts'];
|
Zeile 589 | Zeile 609 |
---|
$query = $db->simple_select("posts", "pid", "tid = '{$post['tid']}'", array('order_by' => 'dateline', 'order_dir' => 'desc', 'limit' => '1')); $lastpostpid = $db->fetch_field($query, 'pid');
|
$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 pid != '{$masterpid}' AND visible='1'");
| $query2 = $db->simple_select("attachments", "COUNT(aid) as count", "pid IN({$pidin}) AND visible='1'");
|
$attachment_count = $db->fetch_field($query2, "count"); $db->update_query("threads", array("attachmentcount" => $attachment_count), "tid = '{$mastertid}'");
| $attachment_count = $db->fetch_field($query2, "count"); $db->update_query("threads", array("attachmentcount" => $attachment_count), "tid = '{$mastertid}'");
|
Zeile 615 | Zeile 635 |
---|
if(is_array($thread_counters)) { foreach($thread_counters as $tid => $counters)
|
if(is_array($thread_counters)) { foreach($thread_counters as $tid => $counters)
|
{
| {
|
$db->update_query("threads", $counters, "tid='{$tid}'");
update_thread_data($tid); } }
|
$db->update_query("threads", $counters, "tid='{$tid}'");
update_thread_data($tid); } }
|
| update_thread_data($mastertid); update_forum_lastpost($fid);
|
if(is_array($forum_counters)) {
| if(is_array($forum_counters)) {
|
Zeile 668 | Zeile 692 |
---|
case "redirect": // move (and leave redirect) thread $arguments = array("tid" => $tid, "new_fid" => $new_fid); $plugins->run_hooks("class_moderation_move_thread_redirect", $arguments);
|
case "redirect": // move (and leave redirect) thread $arguments = array("tid" => $tid, "new_fid" => $new_fid); $plugins->run_hooks("class_moderation_move_thread_redirect", $arguments);
|
if($thread['visible'] == 1) { $num_threads++; } else { $num_unapproved_threads++; // Implied forum unapproved count for unapproved threads $num_unapproved_posts = $thread['replies']+1; }
$num_posts = $thread['replies']+1;
| if($thread['visible'] == 1) { $num_threads++; $num_posts = $thread['replies']+1; } else { $num_unapproved_threads++; // Implied forum unapproved count for unapproved threads $num_unapproved_posts = $thread['replies']+1; }
|
$num_unapproved_posts += $thread['unapprovedposts'];
$db->delete_query("threads", "closed='moved|$tid' AND fid='$new_fid'");
| $num_unapproved_posts += $thread['unapprovedposts'];
$db->delete_query("threads", "closed='moved|$tid' AND fid='$new_fid'");
|
Zeile 710 | Zeile 734 |
---|
if($redirect_expire) { $this->expire_thread($redirect_tid, $redirect_expire);
|
if($redirect_expire) { $this->expire_thread($redirect_tid, $redirect_expire);
|
| } // 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; case "copy":// copy thread
| } break; case "copy":// copy thread
|
Zeile 850 | Zeile 881 |
---|
if($thread['visible'] == 1) { $num_threads++;
|
if($thread['visible'] == 1) { $num_threads++;
|
| $num_posts = $thread['replies']+1;
|
} else { $num_unapproved_threads++; // Implied forum unapproved count for unapproved threads $num_unapproved_posts = $thread['replies']+1;
|
} else { $num_unapproved_threads++; // Implied forum unapproved count for unapproved threads $num_unapproved_posts = $thread['replies']+1;
|
}
$num_posts = $thread['replies']+1;
| }
|
$num_unapproved_posts = $thread['unapprovedposts'];
$sqlarray = array(
| $num_unapproved_posts = $thread['unapprovedposts'];
$sqlarray = array(
|
Zeile 866 | Zeile 897 |
---|
); $db->update_query("threads", $sqlarray, "tid='$tid'"); $db->update_query("posts", $sqlarray, "tid='$tid'");
|
); $db->update_query("threads", $sqlarray, "tid='$tid'"); $db->update_query("posts", $sqlarray, "tid='$tid'");
|
| // 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; }
| break; }
|
Zeile 875 | Zeile 913 |
---|
FROM ".TABLE_PREFIX."posts p LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=p.uid) WHERE tid='$tid'
|
FROM ".TABLE_PREFIX."posts p LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=p.uid) WHERE tid='$tid'
|
GROUP BY u.uid
| GROUP BY u.uid, p.visible
|
ORDER BY posts DESC "); while($posters = $db->fetch_array($query))
| ORDER BY posts DESC "); while($posters = $db->fetch_array($query))
|
Zeile 998 | Zeile 1036 |
---|
$db->update_query("threadsubscriptions", $sqlarray, "tid='{$mergetid}'"); update_first_post($tid);
|
$db->update_query("threadsubscriptions", $sqlarray, "tid='{$mergetid}'"); update_first_post($tid);
|
$arguments = array("mergetid" => $tid, "tid" => $tid, "subject" => $subject);
| $arguments = array("mergetid" => $mergetid, "tid" => $tid, "subject" => $subject);
|
$plugins->run_hooks("class_moderation_merge_threads", $arguments);
$this->delete_thread($mergetid);
| $plugins->run_hooks("class_moderation_merge_threads", $arguments);
$this->delete_thread($mergetid);
|
Zeile 1110 | Zeile 1148 |
---|
LEFT JOIN ".TABLE_PREFIX."threads t ON (p.tid=t.tid) LEFT JOIN ".TABLE_PREFIX."attachments a ON (a.pid=p.pid) WHERE p.pid IN ($pids_list)
|
LEFT JOIN ".TABLE_PREFIX."threads t ON (p.tid=t.tid) LEFT JOIN ".TABLE_PREFIX."attachments a ON (a.pid=p.pid) WHERE p.pid IN ($pids_list)
|
GROUP BY p.pid
| GROUP BY p.pid, p.tid, p.fid, p.visible, p.uid, t.visible, t.replies, t.unapprovedposts,t.attachmentcount
|
");
// Move the selected posts over
| ");
// Move the selected posts over
|
Zeile 1278 | Zeile 1316 |
---|
update_first_post($tid); } }
|
update_first_post($tid); } }
|
| update_thread_data($newtid);
|
update_first_post($newtid);
// Update forum counters
| update_first_post($newtid);
// Update forum counters
|
Zeile 1313 | Zeile 1353 |
---|
$newforum = get_forum($moveto);
$total_posts = $total_unapproved_posts = $total_threads = $total_unapproved_threads = 0;
|
$newforum = get_forum($moveto);
$total_posts = $total_unapproved_posts = $total_threads = $total_unapproved_threads = 0;
|
$query = $db->simple_select("threads", "fid, visible, replies, unapprovedposts", "tid IN ($tid_list)");
| $query = $db->simple_select("threads", "fid, visible, replies, unapprovedposts, tid", "tid IN ($tid_list)");
|
while($thread = $db->fetch_array($query)) { $forum = get_forum($thread['fid']);
| while($thread = $db->fetch_array($query)) { $forum = get_forum($thread['fid']);
|