Manual:Tags
This page contains technical documentation relating to change tags; its content is aimed at MediaWiki extension developers. For help and documentation aimed at users and administrators, please see Tags . |
Change tags or revision tags are annotations associated with a revision or log entry. They are displayed in various locations when referring to revisions, such as in the page history, diffs, recent changes and other places.
A complete list of all the available tags is displayed on Special:Tags.
Users with the managechangetags
User rights – administrators by default – can use this special page to create and delete tags.
(See Help:Tags .)
Extensions (for example AbuseFilter and VisualEditor ) mark edits made through their interface with tags.
Tag names
If you are planning to hard-code tags into your extension, pick a somewhat unique name to avoid conflicts.
For example, VisualEditor uses visualeditor
, visualeditor-needcheck
, visualeditor-switched
.
Tag names may not contain ,
or /
characters.
If your extension allows users to enter their own tag names, you can use the ChangeTags::canCreateTag( $tag )
function to validate those names.
(There is no need to pass the optional $user
parameter for this purpose.)
This function will reject invalid tag names, as well as tag names that are already reserved by another extension or by users on the wiki.
Make sure to register all tags your extension uses (whether hard-coded or user-supplied) by implementing the ListDefinedTags hook. If a tag is in active use (that is, it is not disabled), you should also list it via the ChangeTagsListActive hook.
If you wish to prevent users from creating certain tags, you can implement the ChangeTagCanCreate hook.
For example, the OAuth extension uses this hook to reserve all tags beginning with OAuth CID:
.
(See source.)
Using tags from extensions
All tags used on at least one revision, and any tags listed by the ListDefinedTags hook, are shown on Special:Tags.
Each tag is known by a code name, which functions as its unique identifier. This code name is displayed on Special:Tags. Two messages are associated with each tag:
MediaWiki:tag-$name
can be used to set the "display name" or "friendly name" of the tag. If set, this message will be used on history pages etc. instead of the tag's code name.MediaWiki:tag-$name-description
provides a description to be displayed on Special:Tags.
To add a tag to a revision, recent changes entry, or log entry, use ChangeTags::addTag()
. The RecentChange_save hook can be useful for this purpose.
Extending Special:Tags
By default, tags defined by extensions cannot be manipulated from Special:Tags at all. All tag management tasks are left up to the extension.
If you wish, you can allow users to delete a tag defined by your extension from the regular Special:Tags interface. To do this, you must implement the ChangeTagCanDelete hook to mark the tag as deletable, then implement the ChangeTagAfterDelete hook to perform extension-specific cleanup actions after MediaWiki has removed the tag from all revisions and log entries to which it is applied.
List of core change tags
MediaWiki version: | 1.40 |
mw-contentmodelchange
— changing the Content modelmw-new-redirect
,mw-removed-redirect
,mw-changed-redirect-target
— turning a page into a redirect / a redirect into a normal page / changing where a redirect goesmw-blank
— blanking the pagemw-replace
— changing more than 90% of the page textmw-rollback
,mw-undo
,mw-manual-revert
— various kinds of revertsmw-reverted
— edit that got revertedmw-server-side-upload
— file uploaded using maintenance script
See also
- Documentation about Wikipedia tags
- Extensions that define tags
- Database tables: change_tag, valid_tag (removed), tag_summary (removed)
- Magic word #tag (unrelated to the feature described on this page)
Proposals:
- Revision tagging use cases like editing channels, see etherpad:p/RevisionTags
- On Phabricator