mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-03 23:37:39 +02:00
[feature/soft-delete] Lay the groundwork for a soft-delete feature
So far, I've added no new functionality. The biggest change here is adjusting the DB column names to "visibility" rather than "approved". Some things here are pretty likely to change, for example the name and location of the topic_visibility class. Happy birthday phpBB :) PHPBB3-9657
This commit is contained in:
committed by
Joas Schilling
parent
1128ff1e58
commit
b8c55291ed
@@ -154,7 +154,7 @@ function mcp_forum_view($id, $mode, $action, $forum_info)
|
||||
$sql = 'SELECT t.topic_id
|
||||
FROM ' . TOPICS_TABLE . ' t
|
||||
WHERE t.forum_id = ' . $forum_id . '
|
||||
' . (($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND t.topic_approved = 1') . "
|
||||
' . topic_visibility::get_visibility_sql('topic', $forum_id, 't.') . "
|
||||
$limit_time_sql
|
||||
ORDER BY t.topic_type DESC, $sort_order_sql";
|
||||
$result = $db->sql_query_limit($sql, $topics_per_page, $start);
|
||||
@@ -220,9 +220,10 @@ function mcp_forum_view($id, $mode, $action, $forum_info)
|
||||
|
||||
$topic_title = censor_text($row['topic_title']);
|
||||
|
||||
$topic_unapproved = (!$row['topic_approved'] && $auth->acl_get('m_approve', $row['forum_id'])) ? true : false;
|
||||
$posts_unapproved = ($row['topic_approved'] && $row['topic_replies'] < $row['topic_replies_real'] && $auth->acl_get('m_approve', $row['forum_id'])) ? true : false;
|
||||
$topic_unapproved = ($row['topic_visibility'] == ITEM_UNAPPROVED && $auth->acl_get('m_approve', $row['forum_id'])) ? true : false;
|
||||
$posts_unapproved = ($row['topic_visibility'] == ITEM_APPROVED && $row['topic_replies'] < $row['topic_replies_real'] && $auth->acl_get('m_approve', $row['forum_id'])) ? true : false;
|
||||
$u_mcp_queue = ($topic_unapproved || $posts_unapproved) ? $url . '&i=queue&mode=' . (($topic_unapproved) ? 'approve_details' : 'unapproved_posts') . '&t=' . $row['topic_id'] : '';
|
||||
$topic_deleted = ($row['topic_visibility'] == ITEM_DELETED) ? true : false;
|
||||
|
||||
$topic_row = array(
|
||||
'ATTACH_ICON_IMG' => ($auth->acl_get('u_download') && $auth->acl_get('f_download', $row['forum_id']) && $row['topic_attachment']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
|
||||
@@ -232,6 +233,7 @@ function mcp_forum_view($id, $mode, $action, $forum_info)
|
||||
'TOPIC_ICON_IMG_WIDTH' => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['width'] : '',
|
||||
'TOPIC_ICON_IMG_HEIGHT' => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['height'] : '',
|
||||
'UNAPPROVED_IMG' => ($topic_unapproved || $posts_unapproved) ? $user->img('icon_topic_unapproved', ($topic_unapproved) ? 'TOPIC_UNAPPROVED' : 'POSTS_UNAPPROVED') : '',
|
||||
'DELETED_IMG' => ($topic_deleted) ? $user->img(/*TODO*/) : '',
|
||||
|
||||
'TOPIC_AUTHOR' => get_username_string('username', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
|
||||
'TOPIC_AUTHOR_COLOUR' => get_username_string('colour', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
|
||||
@@ -254,7 +256,9 @@ function mcp_forum_view($id, $mode, $action, $forum_info)
|
||||
'S_TOPIC_REPORTED' => (!empty($row['topic_reported']) && empty($row['topic_moved_id']) && $auth->acl_get('m_report', $row['forum_id'])) ? true : false,
|
||||
'S_TOPIC_UNAPPROVED' => $topic_unapproved,
|
||||
'S_POSTS_UNAPPROVED' => $posts_unapproved,
|
||||
'S_TOPIC_DELETED' => $topic_deleted,
|
||||
'S_UNREAD_TOPIC' => $unread_topic,
|
||||
|
||||
);
|
||||
|
||||
if ($row['topic_status'] == ITEM_MOVED)
|
||||
|
@@ -39,7 +39,7 @@ function mcp_front_view($id, $mode, $action)
|
||||
$sql = 'SELECT COUNT(post_id) AS total
|
||||
FROM ' . POSTS_TABLE . '
|
||||
WHERE ' . $db->sql_in_set('forum_id', $forum_list) . '
|
||||
AND post_approved = 0';
|
||||
AND post_visibility = ' . ITEM_UNAPPROVED;
|
||||
$result = $db->sql_query($sql);
|
||||
$total = (int) $db->sql_fetchfield('total');
|
||||
$db->sql_freeresult($result);
|
||||
@@ -60,7 +60,7 @@ function mcp_front_view($id, $mode, $action)
|
||||
$sql = 'SELECT post_id
|
||||
FROM ' . POSTS_TABLE . '
|
||||
WHERE ' . $db->sql_in_set('forum_id', $forum_list) . '
|
||||
AND post_approved = 0
|
||||
AND post_visibility = ' . ITEM_UNAPPROVED . '
|
||||
ORDER BY post_time DESC';
|
||||
$result = $db->sql_query_limit($sql, 5);
|
||||
|
||||
|
@@ -475,7 +475,7 @@ function mcp_move_topic($topic_ids)
|
||||
|
||||
foreach ($topic_data as $topic_id => $topic_info)
|
||||
{
|
||||
if ($topic_info['topic_approved'])
|
||||
if ($topic_info['topic_visibility'] == ITEM_APPROVED)
|
||||
{
|
||||
$topics_authed_moved++;
|
||||
$topic_posts_added++;
|
||||
@@ -486,7 +486,7 @@ function mcp_move_topic($topic_ids)
|
||||
$topics_removed++;
|
||||
$topic_posts_removed += $topic_info['topic_replies'];
|
||||
|
||||
if ($topic_info['topic_approved'])
|
||||
if ($topic_info['topic_visibility'] == ITEM_APPROVED)
|
||||
{
|
||||
$topics_authed_removed++;
|
||||
$topic_posts_removed++;
|
||||
@@ -528,13 +528,13 @@ function mcp_move_topic($topic_ids)
|
||||
add_log('mod', $to_forum_id, $topic_id, 'LOG_MOVE', $row['forum_name'], $forum_data['forum_name']);
|
||||
|
||||
// Leave a redirection if required and only if the topic is visible to users
|
||||
if ($leave_shadow && $row['topic_approved'] && $row['topic_type'] != POST_GLOBAL)
|
||||
if ($leave_shadow && $row['topic_visibility'] == ITEM_APPROVED && $row['topic_type'] != POST_GLOBAL)
|
||||
{
|
||||
$shadow = array(
|
||||
'forum_id' => (int) $row['forum_id'],
|
||||
'icon_id' => (int) $row['icon_id'],
|
||||
'topic_attachment' => (int) $row['topic_attachment'],
|
||||
'topic_approved' => 1, // a shadow topic is always approved
|
||||
'topic_visibliity' => ITEM_APPROVED, // a shadow topic is always approved
|
||||
'topic_reported' => 0, // a shadow topic is never reported
|
||||
'topic_title' => (string) $row['topic_title'],
|
||||
'topic_poster' => (int) $row['topic_poster'],
|
||||
@@ -932,7 +932,7 @@ function mcp_fork_topic($topic_ids)
|
||||
'forum_id' => (int) $to_forum_id,
|
||||
'icon_id' => (int) $topic_row['icon_id'],
|
||||
'topic_attachment' => (int) $topic_row['topic_attachment'],
|
||||
'topic_approved' => 1,
|
||||
'topic_visibility' => ITEM_APPROVED,
|
||||
'topic_reported' => 0,
|
||||
'topic_title' => (string) $topic_row['topic_title'],
|
||||
'topic_poster' => (int) $topic_row['topic_poster'],
|
||||
@@ -1009,7 +1009,7 @@ function mcp_fork_topic($topic_ids)
|
||||
'icon_id' => (int) $row['icon_id'],
|
||||
'poster_ip' => (string) $row['poster_ip'],
|
||||
'post_time' => (int) $row['post_time'],
|
||||
'post_approved' => 1,
|
||||
'post_visibility' => ITEM_APPROVED,
|
||||
'post_reported' => 0,
|
||||
'enable_bbcode' => (int) $row['enable_bbcode'],
|
||||
'enable_smilies' => (int) $row['enable_smilies'],
|
||||
|
@@ -185,7 +185,7 @@ function mcp_post_details($id, $mode, $action)
|
||||
'S_CAN_DELETE_POST' => $auth->acl_get('m_delete', $post_info['forum_id']),
|
||||
|
||||
'S_POST_REPORTED' => ($post_info['post_reported']) ? true : false,
|
||||
'S_POST_UNAPPROVED' => (!$post_info['post_approved']) ? true : false,
|
||||
'S_POST_UNAPPROVED' => ($post_info['post_visibility'] == ITEM_UNAPPROVED) ? true : false,
|
||||
'S_POST_LOCKED' => ($post_info['post_edit_locked']) ? true : false,
|
||||
'S_USER_NOTES' => true,
|
||||
'S_CLEAR_ALLOWED' => ($auth->acl_get('a_clearlogs')) ? true : false,
|
||||
@@ -415,7 +415,7 @@ function change_poster(&$post_info, $userdata)
|
||||
}
|
||||
|
||||
// Adjust post counts... only if the post is approved (else, it was not added the users post count anyway)
|
||||
if ($post_info['post_postcount'] && $post_info['post_approved'])
|
||||
if ($post_info['post_postcount'] && $post_info['post_visibility'] == ITEM_APPROVED)
|
||||
{
|
||||
$sql = 'UPDATE ' . USERS_TABLE . '
|
||||
SET user_posts = user_posts - 1
|
||||
|
@@ -183,7 +183,7 @@ class mcp_queue
|
||||
'U_APPROVE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=queue&p=$post_id&f=$forum_id"),
|
||||
'S_CAN_VIEWIP' => $auth->acl_get('m_info', $post_info['forum_id']),
|
||||
'S_POST_REPORTED' => $post_info['post_reported'],
|
||||
'S_POST_UNAPPROVED' => !$post_info['post_approved'],
|
||||
'S_POST_UNAPPROVED' => ($post_info['post_visibility'] == ITEM_UNAPPROVED) ,
|
||||
'S_POST_LOCKED' => $post_info['post_edit_locked'],
|
||||
'S_USER_NOTES' => true,
|
||||
|
||||
@@ -309,7 +309,7 @@ class mcp_queue
|
||||
$sql = 'SELECT p.post_id
|
||||
FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t' . (($sort_order_sql[0] == 'u') ? ', ' . USERS_TABLE . ' u' : '') . '
|
||||
WHERE ' . $db->sql_in_set('p.forum_id', $forum_list) . '
|
||||
AND p.post_approved = 0
|
||||
AND p.post_visibility = ' . ITEM_UNAPPROVED . '
|
||||
' . (($sort_order_sql[0] == 'u') ? 'AND u.user_id = p.poster_id' : '') . '
|
||||
' . (($topic_id) ? 'AND p.topic_id = ' . $topic_id : '') . "
|
||||
AND t.topic_id = p.topic_id
|
||||
@@ -361,7 +361,7 @@ class mcp_queue
|
||||
$sql = 'SELECT t.forum_id, t.topic_id, t.topic_title, t.topic_title AS post_subject, t.topic_time AS post_time, t.topic_poster AS poster_id, t.topic_first_post_id AS post_id, t.topic_attachment AS post_attachment, t.topic_first_poster_name AS username, t.topic_first_poster_colour AS user_colour
|
||||
FROM ' . TOPICS_TABLE . " t
|
||||
WHERE " . $db->sql_in_set('forum_id', $forum_list) . "
|
||||
AND topic_approved = 0
|
||||
AND topic_visibility = " . ITEM_UNAPPROVED . "
|
||||
$limit_time_sql
|
||||
ORDER BY $sort_order_sql";
|
||||
$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
|
||||
@@ -484,7 +484,7 @@ function approve_post($post_id_list, $id, $mode)
|
||||
|
||||
foreach ($post_info as $post_id => $post_data)
|
||||
{
|
||||
if ($post_data['post_approved'])
|
||||
if ($post_data['post_visibility'] == ITEM_APPROVED)
|
||||
{
|
||||
$post_approved_list[] = $post_id;
|
||||
continue;
|
||||
@@ -544,7 +544,7 @@ function approve_post($post_id_list, $id, $mode)
|
||||
if (sizeof($topic_approve_sql))
|
||||
{
|
||||
$sql = 'UPDATE ' . TOPICS_TABLE . '
|
||||
SET topic_approved = 1
|
||||
SET topic_visibility = ' . ITEM_APPROVED . '
|
||||
WHERE ' . $db->sql_in_set('topic_id', $topic_approve_sql);
|
||||
$db->sql_query($sql);
|
||||
}
|
||||
@@ -552,7 +552,7 @@ function approve_post($post_id_list, $id, $mode)
|
||||
if (sizeof($post_approve_sql))
|
||||
{
|
||||
$sql = 'UPDATE ' . POSTS_TABLE . '
|
||||
SET post_approved = 1
|
||||
SET post_visibility = ' . ITEM_APPROVED . '
|
||||
WHERE ' . $db->sql_in_set('post_id', $post_approve_sql);
|
||||
$db->sql_query($sql);
|
||||
}
|
||||
|
@@ -190,7 +190,7 @@ class mcp_reports
|
||||
'S_CLOSE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports&mode=report_details&f=' . $post_info['forum_id'] . '&p=' . $post_id),
|
||||
'S_CAN_VIEWIP' => $auth->acl_get('m_info', $post_info['forum_id']),
|
||||
'S_POST_REPORTED' => $post_info['post_reported'],
|
||||
'S_POST_UNAPPROVED' => !$post_info['post_approved'],
|
||||
'S_POST_UNAPPROVED' => ($post_info['post_visibility'] == POST_UNAPPROVED),
|
||||
'S_POST_LOCKED' => $post_info['post_edit_locked'],
|
||||
'S_USER_NOTES' => true,
|
||||
|
||||
|
@@ -145,8 +145,8 @@ function mcp_topic_view($id, $mode, $action)
|
||||
$sql = 'SELECT u.username, u.username_clean, u.user_colour, p.*
|
||||
FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . ' u
|
||||
WHERE ' . (($action == 'reports') ? 'p.post_reported = 1 AND ' : '') . '
|
||||
p.topic_id = ' . $topic_id . ' ' .
|
||||
((!$auth->acl_get('m_approve', $topic_info['forum_id'])) ? ' AND p.post_approved = 1 ' : '') . '
|
||||
p.topic_id = ' . $topic_id . '
|
||||
AND ' . topic_visibility::get_visibility_sql('post', $topic_info['forum_id'], 'p.') . '
|
||||
AND p.poster_id = u.user_id ' .
|
||||
$limit_time_sql . '
|
||||
ORDER BY ' . $sort_order_sql;
|
||||
@@ -227,7 +227,7 @@ function mcp_topic_view($id, $mode, $action)
|
||||
parse_attachments($topic_info['forum_id'], $message, $attachments[$row['post_id']], $update_count);
|
||||
}
|
||||
|
||||
if (!$row['post_approved'])
|
||||
if ($row['post_visibility'] == ITEM_UNAPPROVED)
|
||||
{
|
||||
$has_unapproved_posts = true;
|
||||
}
|
||||
@@ -249,7 +249,7 @@ function mcp_topic_view($id, $mode, $action)
|
||||
'MINI_POST_IMG' => ($post_unread) ? $user->img('icon_post_target_unread', 'UNREAD_POST') : $user->img('icon_post_target', 'POST'),
|
||||
|
||||
'S_POST_REPORTED' => ($row['post_reported'] && $auth->acl_get('m_report', $topic_info['forum_id'])),
|
||||
'S_POST_UNAPPROVED' => (!$row['post_approved'] && $auth->acl_get('m_approve', $topic_info['forum_id'])),
|
||||
'S_POST_UNAPPROVED' => ($row['post_visibility'] != ITEM_APPROVED && $auth->acl_get('m_approve', $topic_info['forum_id'])),
|
||||
'S_CHECKED' => (($submitted_id_list && !in_array(intval($row['post_id']), $submitted_id_list)) || in_array(intval($row['post_id']), $checked_ids)) ? true : false,
|
||||
'S_HAS_ATTACHMENTS' => (!empty($attachments[$row['post_id']])) ? true : false,
|
||||
|
||||
@@ -448,7 +448,7 @@ function split_topic($action, $topic_id, $to_forum_id, $subject)
|
||||
|
||||
if ($sort_order_sql[0] == 'u')
|
||||
{
|
||||
$sql = 'SELECT p.post_id, p.forum_id, p.post_approved
|
||||
$sql = 'SELECT p.post_id, p.forum_id, p.post_visibility
|
||||
FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . " u
|
||||
WHERE p.topic_id = $topic_id
|
||||
AND p.poster_id = u.user_id
|
||||
@@ -457,7 +457,7 @@ function split_topic($action, $topic_id, $to_forum_id, $subject)
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql = 'SELECT p.post_id, p.forum_id, p.post_approved
|
||||
$sql = 'SELECT p.post_id, p.forum_id, p.post_visibility
|
||||
FROM ' . POSTS_TABLE . " p
|
||||
WHERE p.topic_id = $topic_id
|
||||
$limit_time_sql
|
||||
@@ -470,7 +470,7 @@ function split_topic($action, $topic_id, $to_forum_id, $subject)
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
// If split from selected post (split_beyond), we split the unapproved items too.
|
||||
if (!$row['post_approved'] && !$auth->acl_get('m_approve', $row['forum_id']))
|
||||
if ($row['post_visibility'] == ITEM_UNAPPROVED && !$auth->acl_get('m_approve', $row['forum_id']))
|
||||
{
|
||||
// continue;
|
||||
}
|
||||
@@ -497,10 +497,10 @@ function split_topic($action, $topic_id, $to_forum_id, $subject)
|
||||
$icon_id = request_var('icon', 0);
|
||||
|
||||
$sql_ary = array(
|
||||
'forum_id' => $to_forum_id,
|
||||
'topic_title' => $subject,
|
||||
'icon_id' => $icon_id,
|
||||
'topic_approved'=> 1
|
||||
'forum_id' => $to_forum_id,
|
||||
'topic_title' => $subject,
|
||||
'icon_id' => $icon_id,
|
||||
'topic_visibility' => 1
|
||||
);
|
||||
|
||||
$sql = 'INSERT INTO ' . TOPICS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
|
||||
|
Reference in New Issue
Block a user