diff options
author | Nils Adermann <naderman@naderman.de> | 2014-10-22 18:02:43 -0400 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2014-10-22 18:02:43 -0400 |
commit | 48dc4c02ae097258f8b4a9c39c38580d29b640f3 (patch) | |
tree | dde4c444dcfc2d6602fea6fe88fc4e156816c7fa | |
parent | fad280f94b97799cf12a636b65f7f2288e8b3640 (diff) | |
download | forums-48dc4c02ae097258f8b4a9c39c38580d29b640f3.tar forums-48dc4c02ae097258f8b4a9c39c38580d29b640f3.tar.gz forums-48dc4c02ae097258f8b4a9c39c38580d29b640f3.tar.bz2 forums-48dc4c02ae097258f8b4a9c39c38580d29b640f3.tar.xz forums-48dc4c02ae097258f8b4a9c39c38580d29b640f3.zip |
[ticket/13205] Add a mark all messages read link to PM folders
PHPBB3-13205
-rw-r--r-- | phpBB/includes/functions_privmsgs.php | 17 | ||||
-rw-r--r-- | phpBB/includes/ucp/ucp_pm.php | 26 | ||||
-rw-r--r-- | phpBB/language/en/ucp.php | 2 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/ucp_pm_message_header.html | 1 |
4 files changed, 45 insertions, 1 deletions
diff --git a/phpBB/includes/functions_privmsgs.php b/phpBB/includes/functions_privmsgs.php index ad142b1cca..79f818caf2 100644 --- a/phpBB/includes/functions_privmsgs.php +++ b/phpBB/includes/functions_privmsgs.php @@ -914,6 +914,23 @@ function update_unread_status($unread, $msg_id, $user_id, $folder_id) } } +function mark_folder_read($user_id, $folder_id) +{ + global $db; + + $sql = 'SELECT msg_id FROM ' . PRIVMSGS_TO_TABLE . " + WHERE folder_id = $folder_id + AND user_id = $user_id + AND pm_unread = 1"; + $result = $db->sql_query($sql); + + while ($row = $db->sql_fetchrow($result)) + { + update_unread_status(true, $row['msg_id'], $user_id, $folder_id); + } + $db->sql_freeresult($result); +} + /** * Handle all actions possible with marked messages */ diff --git a/phpBB/includes/ucp/ucp_pm.php b/phpBB/includes/ucp/ucp_pm.php index 7a8c694870..02a980c503 100644 --- a/phpBB/includes/ucp/ucp_pm.php +++ b/phpBB/includes/ucp/ucp_pm.php @@ -45,7 +45,7 @@ class ucp_pm function main($id, $mode) { - global $user, $template, $phpbb_root_path, $auth, $phpEx, $db, $config; + global $user, $template, $phpbb_root_path, $auth, $phpEx, $db, $config, $request; if (!$user->data['is_registered']) { @@ -246,6 +246,29 @@ class ucp_pm $folder_id = (int) $row['folder_id']; } + if ($request->variable('mark', '') == 'all' && check_link_hash($request->variable('token', ''), 'mark_all_pms_read')) + { + // mark unread + mark_folder_read($user->data['user_id'], $folder_id); + + meta_refresh(3, $this->u_action); + $message = $user->lang['PM_MARK_ALL_READ_SUCCESS']; + + if ($request->is_ajax()) + { + $json_response = new \phpbb\json_response(); + $json_response->send(array( + 'MESSAGE_TITLE' => $user->lang['INFORMATION'], + 'MESSAGE_TEXT' => $message, + 'success' => true, + )); + } + $message .= '<br /><br />' . $user->lang('RETURN_UCP', '<a href="' . $this->u_action . '">', '</a>'); + + trigger_error($message); + } + + $message_row = array(); if ($action == 'view_message' && $msg_id) { @@ -332,6 +355,7 @@ class ucp_pm 'U_SENTBOX' => $this->u_action . '&folder=sentbox', 'U_CREATE_FOLDER' => $this->u_action . '&mode=options', 'U_CURRENT_FOLDER' => $this->u_action . '&folder=' . $folder_id, + 'U_MARK_ALL' => $this->u_action . '&folder=' . $folder_id . '&mark=all&token=' . generate_link_hash('mark_all_pms_read'), 'S_IN_INBOX' => ($folder_id == PRIVMSGS_INBOX) ? true : false, 'S_IN_OUTBOX' => ($folder_id == PRIVMSGS_OUTBOX) ? true : false, diff --git a/phpBB/language/en/ucp.php b/phpBB/language/en/ucp.php index ad7063d3f9..07751d1f7f 100644 --- a/phpBB/language/en/ucp.php +++ b/phpBB/language/en/ucp.php @@ -417,6 +417,8 @@ $lang = array_merge($lang, array( 'PM_FROM_REMOVED_AUTHOR' => 'This message was sent by a user no longer registered.', 'PM_ICON' => 'PM icon', 'PM_INBOX' => 'Inbox', + 'PM_MARK_ALL_READ' => 'Mark all messages read', + 'PM_MARK_ALL_READ_SUCCESS' => 'All private messages in this folder have been marked read', 'PM_NO_USERS' => 'The requested users to be added do not exist.', 'PM_OUTBOX' => 'Outbox', 'PM_SENTBOX' => 'Sent messages', diff --git a/phpBB/styles/prosilver/template/ucp_pm_message_header.html b/phpBB/styles/prosilver/template/ucp_pm_message_header.html index d777de908d..7be51e0034 100644 --- a/phpBB/styles/prosilver/template/ucp_pm_message_header.html +++ b/phpBB/styles/prosilver/template/ucp_pm_message_header.html @@ -48,6 +48,7 @@ <!-- IF S_VIEW_MESSAGE --> <a class="arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_CURRENT_FOLDER}">{L_RETURN_TO_FOLDER}</a> <!-- ELSEIF FOLDER_CUR_MESSAGES neq 0 --> + <!-- IF U_MARK_ALL --><a href="{U_MARK_ALL}" class="mark">{L_PM_MARK_ALL_READ}</a> • <!-- ENDIF --> {TOTAL_MESSAGES} <!-- IF .pagination --> <!-- INCLUDE pagination.html --> |