1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-30 21:40:43 +02:00

[ticket/16208] Fix closed post report notifications

PHPBB3-16208
This commit is contained in:
rxu
2020-07-05 16:52:42 +07:00
parent 3caa31bf58
commit 242476c290
4 changed files with 54 additions and 13 deletions

View File

@@ -100,8 +100,8 @@ class report_pm_closed extends \phpbb\notification\type\pm
*/
public function get_email_template_variables()
{
$sender_data = $this->user_loader->get_user($this->get_data('from_user_id'));
$closer_data = $this->user_loader->get_user($this->get_data('closer_id'));
$sender_data = $this->user_loader->get_username($this->get_data('from_user_id'), 'username');
$closer_data = $this->user_loader->get_username($this->get_data('closer_id'), 'username');
return [
'AUTHOR_NAME' => htmlspecialchars_decode($sender_data['username']),

View File

@@ -35,7 +35,7 @@ class report_post_closed extends \phpbb\notification\type\post
*
* @var string
*/
public $email_template = '';
public $email_template = 'report_closed';
/**
* Language key used to output the text
@@ -44,6 +44,18 @@ class report_post_closed extends \phpbb\notification\type\post
*/
protected $language_key = 'NOTIFICATION_REPORT_CLOSED';
/**
* Notification option data (for outputting to the user)
*
* @var bool|array False if the service should use it's default data
* Array of data (including keys 'id', 'lang', and 'group')
*/
static public $notification_option = [
'id' => 'notification.type.report_post_closed',
'lang' => 'NOTIFICATION_TYPE_REPORT_CLOSED',
'group' => 'NOTIFICATION_GROUP_MISCELLANEOUS',
];
/**
* Inherit notification read status from post.
*
@@ -53,7 +65,7 @@ class report_post_closed extends \phpbb\notification\type\post
public function is_available()
{
return false;
return $this->auth->acl_getf_global('f_report');
}
/**
@@ -64,14 +76,18 @@ class report_post_closed extends \phpbb\notification\type\post
*
* @return array
*/
public function find_users_for_notification($post, $options = array())
public function find_users_for_notification($post, $options = [])
{
$options = array_merge([
'ignore_users' => [],
], $options);
if ($post['reporter'] == $this->user->data['user_id'])
{
return array();
return [];
}
return array($post['reporter'] => $this->notification_manager->get_default_methods());
return $this->check_user_notification_options([$post['reporter']], $options);
}
/**
@@ -81,7 +97,7 @@ class report_post_closed extends \phpbb\notification\type\post
*/
public function get_email_template()
{
return false;
return $this->email_template;
}
/**
@@ -91,7 +107,17 @@ class report_post_closed extends \phpbb\notification\type\post
*/
public function get_email_template_variables()
{
return array();
$post_username = $this->get_data('post_username') ?: $this->user_loader->get_username($this->get_data('poster_id'), 'username');
$closer_username = $this->user_loader->get_username($this->get_data('closer_id'), 'username');
return [
'AUTHOR_NAME' => htmlspecialchars_decode($post_username),
'CLOSER_NAME' => htmlspecialchars_decode($closer_username),
'POST_SUBJECT' => htmlspecialchars_decode(censor_text($this->get_data('post_subject'))),
'TOPIC_TITLE' => htmlspecialchars_decode(censor_text($this->get_data('topic_title'))),
'U_VIEW_POST' => generate_board_url() . "/viewtopic.{$this->php_ext}?p={$this->item_id}#p{$this->item_id}",
];
}
/**
@@ -101,7 +127,15 @@ class report_post_closed extends \phpbb\notification\type\post
*/
public function get_url()
{
return '';
return append_sid($this->phpbb_root_path . 'viewtopic.' . $this->php_ext, "p={$this->item_id}#p{$this->item_id}");
}
/**
* {inheritDoc}
*/
public function get_redirect_url()
{
return $this->get_url();
}
/**
@@ -147,13 +181,13 @@ class report_post_closed extends \phpbb\notification\type\post
*/
public function users_to_query()
{
return array($this->get_data('closer_id'));
return [$this->get_data('closer_id')];
}
/**
* {@inheritdoc}
*/
public function create_insert_array($post, $pre_create_data = array())
public function create_insert_array($post, $pre_create_data = [])
{
$this->set_data('closer_id', $post['closer_id']);