Requests for comment/Custom inter-namespace tabs

From mediawiki.org
Request for comment (RFC)
Custom inter-namespace tabs
Component General
Creation date
Author(s) MZMcBride, Wizardist
Document status accepted
See Phabricator.

This is a request for comment about adding custom inter-namespace tabs (bugzilla:13228).

Background[edit]

Certain wikis currently have an additional namespace tied to the classic (and traditional) article–talk combination. For example, on the English Wikinews, there's a third tab for "Opinions" which leads to a corresponding page in the Comments namespace.

The current implementation has issues, namely:

  • it's in JavaScript (n:MediaWiki:Comments.js) which means that
    • it's available only to JavaScript-enabled browsers;
    • it's doing an extra AJAX request for tab color; and
    • it's a pain in the ass to localize and customize per project.

Use-cases[edit]

Considerations[edit]

  • Put code in a MediaWiki extension or in core???
  • Localizable tab name
  • Configurable in LocalSettings.php with an array or something?
  • Tab has to account for page existence

Plan[edit]

The considerations above need to be resolved. Once they have been, this should no more than an hour's worth of coding time, I think. It'll be much more time trying to get the code reviewed and deployed than it will be the write the damn feature.

There's code at User:Svippong/AdditionalTabs and at <https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/CommentPages.git;a=summary>, also #37569. Given changes to MediaWiki, however, it may make sense to start from scratch. Again, it depends how this is going to be implemented (extension or in core).

Implementations[edit]

JavaScript[edit]

Code base: n:MediaWiki:Comments.js.

Pros:

  • no need to mess with server-side

Cons:

  • available only to JavaScript-enabled browsers
  • inconfigurable
  • excessive API requests
  • inconsistent localization

Status:    Deployed at production

Core[edit]

Patch-set: I14351aa5.

Pros:

  • localizable

Cons:

  • configuration in MediaWiki namespace
  • hackish implementation & redundant core feature
  • doesn't cover JavaScript implementation

Status:    Abandoned in Gerrit

Extension[edit]

See documentation: Extension:NamespaceRelations.

Features:

  • localizable
  • multiple custom tabs per Subject
  • allows to decide whether to show tab on Main Page (if attached to Main namespace)
  • additional query params attached for red-link tabs
  • tab sorting (e.g. Opinions|Article|Talk)
  • allows to hide Talk tab

Status:    Waiting for code review