Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 27
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
MassMessageSendLogFormatter
0.00% covered (danger)
0.00%
0 / 27
0.00% covered (danger)
0.00%
0 / 2
110
0.00% covered (danger)
0.00%
0 / 1
 getMessageParameters
0.00% covered (danger)
0.00%
0 / 22
0.00% covered (danger)
0.00%
0 / 1
56
 getMessageKey
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace MediaWiki\MassMessage\Logging;
4
5use LogFormatter;
6use MediaWiki\SpecialPage\SpecialPage;
7use MediaWiki\Title\Title;
8use 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
15class 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}