Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 27 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 1 |
MassMessageSendLogFormatter | |
0.00% |
0 / 27 |
|
0.00% |
0 / 2 |
110 | |
0.00% |
0 / 1 |
getMessageParameters | |
0.00% |
0 / 22 |
|
0.00% |
0 / 1 |
56 | |||
getMessageKey | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
12 |
1 | <?php |
2 | |
3 | namespace MediaWiki\MassMessage\Logging; |
4 | |
5 | use LogFormatter; |
6 | use MediaWiki\SpecialPage\SpecialPage; |
7 | use MediaWiki\Title\Title; |
8 | use Message; |
9 | |
10 | /** |
11 | * Log formatter for 'send' entries on Special:Log/massmessage. |
12 | * This lets us link to the specific revid used to send the message. |
13 | */ |
14 | |
15 | class MassMessageSendLogFormatter extends LogFormatter { |
16 | |
17 | /** @inheritDoc */ |
18 | protected function getMessageParameters(): array { |
19 | // First call the main function to load the other values |
20 | parent::getMessageParameters(); |
21 | |
22 | $params = $this->extractParameters(); |
23 | // Backwards compat for older log entries |
24 | if ( !isset( $params[3] ) ) { |
25 | return $this->parsedParameters; |
26 | } |
27 | |
28 | $title = SpecialPage::getTitleFor( 'PermanentLink', $params[3] ); |
29 | |
30 | // Our simple version of LogFormatter::makeLink |
31 | if ( $this->plaintext ) { |
32 | $this->parsedParameters[2] = '[[' . $title->getPrefixedText() . ']]'; |
33 | } else { |
34 | $linkRenderer = $this->getLinkRenderer(); |
35 | $target = $this->entry->getTarget(); |
36 | if ( $target->exists() ) { |
37 | $link = Message::rawParam( $linkRenderer->makeLink( |
38 | $title, |
39 | $target->getPrefixedText() |
40 | ) ); |
41 | } else { |
42 | // If the page has been deleted, just show a redlink (bug 57445) |
43 | $link = Message::rawParam( $linkRenderer->makeLink( $target ) ); |
44 | } |
45 | $this->parsedParameters[2] = $link; |
46 | } |
47 | |
48 | if ( isset( $params[4] ) && $params[4] !== '' ) { |
49 | $pageMessageTitle = Title::newFromText( $params[4] ); |
50 | if ( $pageMessageTitle ) { |
51 | $this->parsedParameters[4] = Message::rawParam( $this->makePageLink( $pageMessageTitle ) ); |
52 | } |
53 | } |
54 | |
55 | ksort( $this->parsedParameters ); |
56 | return $this->parsedParameters; |
57 | } |
58 | |
59 | /** @inheritDoc */ |
60 | protected function getMessageKey(): string { |
61 | $params = $this->getMessageParameters(); |
62 | $key = parent::getMessageKey(); |
63 | if ( isset( $params[4] ) && $params[4] !== '' ) { |
64 | return $key . '-page-message'; |
65 | } |
66 | |
67 | return $key; |
68 | } |
69 | } |