Translate extension for MediaWiki
Loading...
Searching...
No Matches
AggregateGroupManager.php
1
<?php
2
declare( strict_types = 1 );
3
4
namespace
MediaWiki\Extension\Translate\MessageGroupProcessing;
5
6
use
MediaWiki\Extension\Translate\MessageBundleTranslation\MessageBundleMessageGroup
;
7
use MediaWiki\Title\Title;
8
use MediaWiki\Title\TitleFactory;
9
use
MessageGroup
;
10
use RuntimeException;
11
use
WikiPageMessageGroup
;
12
19
class
AggregateGroupManager
{
20
private
TitleFactory $titleFactory;
21
22
public
function
__construct( TitleFactory $titleFactory ) {
23
$this->titleFactory = $titleFactory;
24
}
25
26
public
function
supportsAggregation(
MessageGroup
$group ):
bool
{
27
return
$group instanceof
WikiPageMessageGroup
|| $group instanceof
MessageBundleMessageGroup
;
28
}
29
30
public
function
getTargetTitleByGroupId(
string
$groupId ): Title {
31
$group =
MessageGroups::getGroup
( $groupId );
32
if
( $group ) {
33
return
$this->
getTargetTitleByGroup
( $group );
34
}
else
{
35
/* To allow removing no longer existing groups from aggregate message groups,
36
* the message group object $group might not always be available.
37
* In this case we need to fake some title. */
38
return
$this->titleFactory->newFromText(
"Special:Translate/$groupId"
);
39
}
40
}
41
43
public
function
getTargetTitleByGroup
(
MessageGroup
$group ): Title {
44
$relatedGroupPage = $group->getRelatedPage();
45
if
( !$relatedGroupPage ) {
46
throw
new
RuntimeException(
"No related page found for group "
. $group->
getId
() );
47
}
48
49
return
$this->titleFactory->newFromLinkTarget( $relatedGroupPage );
50
}
51
}
MediaWiki\Extension\Translate\MessageBundleTranslation\MessageBundleMessageGroup
Definition
MessageBundleMessageGroup.php:27
MediaWiki\Extension\Translate\MessageGroupProcessing\AggregateGroupManager
Contains logic to store, validate, fetch aggregate groups created via Special:AggregateGroups.
Definition
AggregateGroupManager.php:19
MediaWiki\Extension\Translate\MessageGroupProcessing\AggregateGroupManager\getTargetTitleByGroup
getTargetTitleByGroup(MessageGroup $group)
Definition
AggregateGroupManager.php:43
MediaWiki\Extension\Translate\MessageGroupProcessing\MessageGroups\getGroup
static getGroup(string $id)
Fetch a message group by id.
Definition
MessageGroups.php:173
WikiPageMessageGroup
Wraps the translatable page sections into a message group.
Definition
WikiPageMessageGroup.php:25
MessageGroup
Interface for message groups.
Definition
MessageGroup.php:27
MessageGroup\getId
getId()
Returns the unique identifier for this group.
src
MessageGroupProcessing
AggregateGroupManager.php
Generated by
1.10.0