diff options
author | Máté Bartus <mate.bartus@gmail.com> | 2018-05-11 17:29:49 +0200 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2019-11-21 13:44:19 +0100 |
commit | eb94fe973bbf7b56e61b0287cf9a765197bed27c (patch) | |
tree | 465b47e7e86b1f8844eceb22c50c45d4189bbc86 /phpBB | |
parent | ce35aa8b0b90870608a5b0782a36c6aedad8c7e4 (diff) | |
download | forums-eb94fe973bbf7b56e61b0287cf9a765197bed27c.tar forums-eb94fe973bbf7b56e61b0287cf9a765197bed27c.tar.gz forums-eb94fe973bbf7b56e61b0287cf9a765197bed27c.tar.bz2 forums-eb94fe973bbf7b56e61b0287cf9a765197bed27c.tar.xz forums-eb94fe973bbf7b56e61b0287cf9a765197bed27c.zip |
[ticket/9837] Display unapproved posts to their authors
Basic functionality mock up.
PHPBB3-9837
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/phpbb/content_visibility.php | 15 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/viewtopic_body.html | 6 | ||||
-rw-r--r-- | phpBB/styles/prosilver/theme/colours.css | 4 | ||||
-rw-r--r-- | phpBB/viewtopic.php | 1 |
4 files changed, 24 insertions, 2 deletions
diff --git a/phpBB/phpbb/content_visibility.php b/phpBB/phpbb/content_visibility.php index 704ec6badb..4633ec24c2 100644 --- a/phpBB/phpbb/content_visibility.php +++ b/phpBB/phpbb/content_visibility.php @@ -144,7 +144,12 @@ class content_visibility */ public function is_visible($mode, $forum_id, $data) { - $is_visible = $this->auth->acl_get('m_approve', $forum_id) || $data[$mode . '_visibility'] == ITEM_APPROVED; + $visibility = $data[$mode . '_visibility']; + $poster_key = ($mode === 'topic') ? 'topic_poster' : 'poster_id'; + $is_visible = $this->auth->acl_get('m_approve', $forum_id) || $visibility == ITEM_APPROVED || ( + ($visibility == ITEM_UNAPPROVED || $visibility == ITEM_REAPPROVE) && + $this->user->data['user_id'] === $data[$poster_key] + ); /** * Allow changing the result of calling is_visible @@ -216,7 +221,13 @@ class content_visibility } else { - $where_sql .= $table_alias . $mode . '_visibility = ' . ITEM_APPROVED; + $field_name = ($mode === 'topic') ? 'topic_poster' : 'poster_id'; + $visibility_query = $table_alias . $mode . '_visibility = '; + + $where_sql .= '(' . $visibility_query . ITEM_APPROVED . ')'; + $where_sql .= ' OR ('; + $where_sql .= '(' . $visibility_query . ITEM_UNAPPROVED . ' OR ' . $visibility_query . ITEM_REAPPROVE . ')'; + $where_sql .= ' AND ' . $table_alias . $field_name . ' = ' . ((int) $this->user->data['user_id']) . ')'; } return '(' . $where_sql . ')'; diff --git a/phpBB/styles/prosilver/template/viewtopic_body.html b/phpBB/styles/prosilver/template/viewtopic_body.html index 9bfa07e52b..5a469b8d85 100644 --- a/phpBB/styles/prosilver/template/viewtopic_body.html +++ b/phpBB/styles/prosilver/template/viewtopic_body.html @@ -294,6 +294,7 @@ <!-- EVENT viewtopic_body_postrow_post_details_after --> <!-- IF postrow.S_POST_UNAPPROVED --> + <!-- IF postrow.S_CAN_APPROVE --> <form method="post" class="mcp_approve" action="{postrow.U_APPROVE_ACTION}"> <p class="post-notice unapproved"> <span><i class="icon fa-question icon-red fa-fw" aria-hidden="true"></i></span> @@ -304,6 +305,11 @@ {S_FORM_TOKEN} </p> </form> + <!-- ELSE --> + <p class="information post-notice"> + {L_POST_UNAPPROVED} + </p> + <!-- ENDIF --> <!-- ELSEIF postrow.S_POST_DELETED --> <form method="post" class="mcp_approve" action="{postrow.U_APPROVE_ACTION}"> <p class="post-notice deleted"> diff --git a/phpBB/styles/prosilver/theme/colours.css b/phpBB/styles/prosilver/theme/colours.css index ffaa71034f..d8ee4f73a7 100644 --- a/phpBB/styles/prosilver/theme/colours.css +++ b/phpBB/styles/prosilver/theme/colours.css @@ -1161,3 +1161,7 @@ li.notification-reported strong, li.notification-disapproved strong { background-color: #D31141; color: #ffffff; } + +p.information { + background-color: #b8d3e0; +} diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 4e502538c8..df241a5e8b 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -2092,6 +2092,7 @@ for ($i = 0, $end = count($post_list); $i < $end; ++$i) 'S_HAS_ATTACHMENTS' => (!empty($attachments[$row['post_id']])) ? true : false, 'S_MULTIPLE_ATTACHMENTS' => !empty($attachments[$row['post_id']]) && count($attachments[$row['post_id']]) > 1, 'S_POST_UNAPPROVED' => ($row['post_visibility'] == ITEM_UNAPPROVED || $row['post_visibility'] == ITEM_REAPPROVE) ? true : false, + 'S_CAN_APPROVE' => $auth->acl_get('m_approve', $forum_id), 'S_POST_DELETED' => ($row['post_visibility'] == ITEM_DELETED) ? true : false, 'L_POST_DELETED_MESSAGE' => $l_deleted_message, 'S_POST_REPORTED' => ($row['post_reported'] && $auth->acl_get('m_report', $forum_id)) ? true : false, |