mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo
synced 2024-11-25 00:05:29 +00:00
c466a5ef5c
Using wiki names in the header is problematic because the messages we were using weren't designed to be used in a sentence, only in headings. This removes the wiki names from the sentence in the header, and instead puts a comma-separated list (with "and") of wikis in the body. The messages keep $3 and $4 for backwards compatibility, so translations of the form "from Commons and 2 other wikis" will keep working. Bug: T121936 Change-Id: Ideeba794e260b3c388fa29226b53197c050162ef
49 lines
1.2 KiB
PHP
49 lines
1.2 KiB
PHP
<?php
|
|
|
|
class EchoForeignPresentationModel extends EchoEventPresentationModel {
|
|
public function getIconType() {
|
|
return 'global';
|
|
}
|
|
|
|
public function getPrimaryLink() {
|
|
return false;
|
|
}
|
|
|
|
protected function getHeaderMessageKey() {
|
|
$data = $this->event->getExtra();
|
|
$section = $data['section'];
|
|
|
|
return "notification-header-{$this->type}-{$section}";
|
|
}
|
|
|
|
public function getHeaderMessage() {
|
|
$msg = parent::getHeaderMessage();
|
|
|
|
$data = $this->event->getExtra();
|
|
$firstWiki = reset( $data['wikis'] );
|
|
$names = $this->getWikiNames( array( $firstWiki ) );
|
|
$msg->params( $names[0] );
|
|
$msg->numParams( count( $data['wikis'] ) - 1 );
|
|
$msg->numParams( count( $data['wikis'] ) );
|
|
|
|
return $msg;
|
|
}
|
|
|
|
public function getBodyMessage() {
|
|
$data = $this->event->getExtra();
|
|
$msg = wfMessage( "notification-body-{$this->type}" );
|
|
$msg->params( $this->language->listToText( $this->getWikiNames( $data['wikis'] ) ) );
|
|
return $msg;
|
|
}
|
|
|
|
protected function getWikiNames( array $wikis ) {
|
|
$foreign = new EchoForeignNotifications( new User );
|
|
$data = $foreign->getApiEndpoints( $wikis );
|
|
$names = array();
|
|
foreach ( $wikis as $wiki ) {
|
|
$names[] = $data[$wiki]['title'];
|
|
}
|
|
return $names;
|
|
}
|
|
}
|