protected $explicitlyDefinedTags;
/**
- * @var array List of extension defined tags
+ * @var array List of software defined tags
*/
- protected $extensionDefinedTags;
+ protected $softwareDefinedTags;
/**
- * @var array List of extension activated tags
+ * @var array List of software activated tags
*/
- protected $extensionActivatedTags;
+ protected $softwareActivatedTags;
function __construct() {
parent::__construct( 'Tags' );
// continuing with this, as the user is just going to end up getting sent
// somewhere else. Additionally, if we keep going here, we end up
// populating the memcache of tag data (see ChangeTags::listDefinedTags)
- // with out-of-date data from the slave, because the slave hasn't caught
+ // with out-of-date data from the replica DB, because the replica DB hasn't caught
// up to the fact that a new tag has been created as part of an implicit,
// as yet uncommitted transaction on master.
if ( $out->getRedirect() !== '' ) {
// Used in #doTagRow()
$this->explicitlyDefinedTags = array_fill_keys(
ChangeTags::listExplicitlyDefinedTags(), true );
- $this->extensionDefinedTags = array_fill_keys(
- ChangeTags::listExtensionDefinedTags(), true );
+ $this->softwareDefinedTags = array_fill_keys(
+ ChangeTags::listSoftwareDefinedTags(), true );
// List all defined tags, even if they were never applied
- $definedTags = array_keys( $this->explicitlyDefinedTags + $this->extensionDefinedTags );
+ $definedTags = array_keys( $this->explicitlyDefinedTags + $this->softwareDefinedTags );
// Show header only if there exists atleast one tag
if ( !$tagStats && !$definedTags ) {
Xml::tags( 'th', null, $this->msg( 'tags-source-header' )->parse() ) .
Xml::tags( 'th', null, $this->msg( 'tags-active-header' )->parse() ) .
Xml::tags( 'th', null, $this->msg( 'tags-hitcount-header' )->parse() ) .
- ( $userCanManage ?
+ ( ( $userCanManage || $userCanDelete ) ?
Xml::tags( 'th', [ 'class' => 'unsortable' ],
$this->msg( 'tags-actions-header' )->parse() ) :
'' )
);
// Used in #doTagRow()
- $this->extensionActivatedTags = array_fill_keys(
- ChangeTags::listExtensionActivatedTags(), true );
+ $this->softwareActivatedTags = array_fill_keys(
+ ChangeTags::listSoftwareActivatedTags(), true );
// Insert tags that have been applied at least once
foreach ( $tagStats as $tag => $hitcount ) {
$newRow = '';
$newRow .= Xml::tags( 'td', null, Xml::element( 'code', null, $tag ) );
+ $linkRenderer = $this->getLinkRenderer();
$disp = ChangeTags::tagDescription( $tag );
if ( $showEditLinks ) {
$disp .= ' ';
- $editLink = Linker::link(
+ $editLink = $linkRenderer->makeLink(
$this->msg( "tag-$tag" )->inContentLanguage()->getTitle(),
- $this->msg( 'tags-edit' )->escaped()
+ $this->msg( 'tags-edit' )->text()
);
$disp .= $this->msg( 'parentheses' )->rawParams( $editLink )->escaped();
}
$desc = !$msg->exists() ? '' : $msg->parse();
if ( $showEditLinks ) {
$desc .= ' ';
- $editDescLink = Linker::link(
+ $editDescLink = $linkRenderer->makeLink(
$this->msg( "tag-$tag-description" )->inContentLanguage()->getTitle(),
- $this->msg( 'tags-edit' )->escaped()
+ $this->msg( 'tags-edit' )->text()
);
$desc .= $this->msg( 'parentheses' )->rawParams( $editDescLink )->escaped();
}
$newRow .= Xml::tags( 'td', null, $desc );
$sourceMsgs = [];
- $isExtension = isset( $this->extensionDefinedTags[$tag] );
+ $isSoftware = isset( $this->softwareDefinedTags[$tag] );
$isExplicit = isset( $this->explicitlyDefinedTags[$tag] );
- if ( $isExtension ) {
+ if ( $isSoftware ) {
+ // TODO: Rename this message
$sourceMsgs[] = $this->msg( 'tags-source-extension' )->escaped();
}
if ( $isExplicit ) {
}
$newRow .= Xml::tags( 'td', null, implode( Xml::element( 'br' ), $sourceMsgs ) );
- $isActive = $isExplicit || isset( $this->extensionActivatedTags[$tag] );
+ $isActive = $isExplicit || isset( $this->softwareActivatedTags[$tag] );
$activeMsg = ( $isActive ? 'tags-active-yes' : 'tags-active-no' );
$newRow .= Xml::tags( 'td', null, $this->msg( $activeMsg )->escaped() );
- $hitcountLabel = $this->msg( 'tags-hitcount' )->numParams( $hitcount )->escaped();
+ $hitcountLabelMsg = $this->msg( 'tags-hitcount' )->numParams( $hitcount );
if ( $this->getConfig()->get( 'UseTagFilter' ) ) {
- $hitcountLabel = Linker::link(
+ $hitcountLabel = $linkRenderer->makeLink(
SpecialPage::getTitleFor( 'Recentchanges' ),
- $hitcountLabel,
+ $hitcountLabelMsg->text(),
[],
[ 'tagfilter' => $tag ]
);
+ } else {
+ $hitcountLabel = $hitcountLabelMsg->escaped();
}
// add raw $hitcount for sorting, because tags-hitcount contains numbers and letters
// delete
if ( $showDeleteActions && ChangeTags::canDeleteTag( $tag )->isOK() ) {
- $actionLinks[] = Linker::linkKnown( $this->getPageTitle( 'delete' ),
- $this->msg( 'tags-delete' )->escaped(),
+ $actionLinks[] = $linkRenderer->makeKnownLink(
+ $this->getPageTitle( 'delete' ),
+ $this->msg( 'tags-delete' )->text(),
[],
[ 'tag' => $tag ] );
}
// activate
if ( ChangeTags::canActivateTag( $tag )->isOK() ) {
- $actionLinks[] = Linker::linkKnown( $this->getPageTitle( 'activate' ),
- $this->msg( 'tags-activate' )->escaped(),
+ $actionLinks[] = $linkRenderer->makeKnownLink(
+ $this->getPageTitle( 'activate' ),
+ $this->msg( 'tags-activate' )->text(),
[],
[ 'tag' => $tag ] );
}
// deactivate
if ( ChangeTags::canDeactivateTag( $tag )->isOK() ) {
- $actionLinks[] = Linker::linkKnown( $this->getPageTitle( 'deactivate' ),
- $this->msg( 'tags-deactivate' )->escaped(),
+ $actionLinks[] = $linkRenderer->makeKnownLink(
+ $this->getPageTitle( 'deactivate' ),
+ $this->msg( 'tags-deactivate' )->text(),
[],
[ 'tag' => $tag ] );
}
}
- if ( $actionLinks ) {
+ if ( $showDeleteActions || $showManageActions ) {
$newRow .= Xml::tags( 'td', null, $this->getLanguage()->pipeList( $actionLinks ) );
}
$preText .= $this->msg( 'tags-delete-explanation-warning', $tag )->parseAsBlock();
// see if the tag is in use
- $this->extensionActivatedTags = array_fill_keys(
- ChangeTags::listExtensionActivatedTags(), true );
- if ( isset( $this->extensionActivatedTags[$tag] ) ) {
+ $this->softwareActivatedTags = array_fill_keys(
+ ChangeTags::listSoftwareActivatedTags(), true );
+ if ( isset( $this->softwareActivatedTags[$tag] ) ) {
$preText .= $this->msg( 'tags-delete-explanation-active', $tag )->parseAsBlock();
}