forked from flarum/framework
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPostMentionedBlueprint.php
More file actions
71 lines (60 loc) · 1.74 KB
/
Copy pathPostMentionedBlueprint.php
File metadata and controls
71 lines (60 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
/*
* This file is part of Flarum.
*
* For detailed copyright and license information, please view the
* LICENSE file that was distributed with this source code.
*/
namespace Flarum\Mentions\Notification;
use Flarum\Database\AbstractModel;
use Flarum\Locale\TranslatorInterface;
use Flarum\Notification\AlertableInterface;
use Flarum\Notification\Blueprint\BlueprintInterface;
use Flarum\Notification\MailableInterface;
use Flarum\Post\Post;
use Flarum\User\User;
class PostMentionedBlueprint implements BlueprintInterface, AlertableInterface, MailableInterface
{
public function __construct(
public Post $post,
public Post $reply
) {
}
public function getSubject(): ?AbstractModel
{
return $this->post;
}
public function getFromUser(): ?User
{
return $this->reply->user;
}
public function getData(): array
{
return [
'replyNumber' => (int) $this->reply->number,
'discussionId' => (int) $this->reply->discussion_id,
];
}
public function getEmailViews(): array
{
return [
'text' => 'flarum-mentions::emails.plain.postMentioned',
'html' => 'flarum-mentions::emails.html.postMentioned',
];
}
public function getEmailSubject(TranslatorInterface $translator): string
{
return $translator->trans('flarum-mentions.email.post_mentioned.subject', [
'{replier_display_name}' => $this->reply->user->display_name,
'{title}' => $this->post->discussion->title
]);
}
public static function getType(): string
{
return 'postMentioned';
}
public static function getSubjectModel(): string
{
return Post::class;
}
}