Page MenuHomePhabricator

Make Special:ItemDisambiguation use SpecialDisabledPage instead of SpecialBlankPage
Closed, DuplicatePublic

Description

After T200185: Create a Special:DisabledSpecialPage to be used instead of Special:BlankPage is done, we can change the special page to give a better message to users.

Event Timeline

Ladsgroup created this task.

Change 491237 had a related patch set uploaded (by Ladsgroup; owner: Ladsgroup):
[operations/mediawiki-config@master] Change Special:ItemDisambiguation from blank special page to disabled page

https://gerrit.wikimedia.org/r/491237

Reedy renamed this task from Make Special:ItemDisambiguation use SpecialDisabledPage instead of SpecialBlankPage to Make Special:ItemDisambiguation use SpecialDisabledPage instead of SpecialBlankPage.Feb 18 2019, 11:01 AM

Change 491237 merged by jenkins-bot:
[operations/mediawiki-config@master] Change Special:ItemDisambiguation from blank special page to disabled page

https://gerrit.wikimedia.org/r/491237

I did it in a wrong way (I didn't read the manual, it's my fault and I'm sorry).
Now doing it in my localhost to test it properly:

image.png (148×552 px, 12 KB)

The reason is that SpecialWikibasePage::getDescription() overrides the default one and there is no way to fix it.
There are three options here:

  • Add $description as an argument (or a setter) to DisabledSpecialPage and then get it deployed, then fix it properly in prod. Not much work, not very nice either (It piles up more arguments to DisabledSpecialPage)
  • Rename 'special-itemdisambiguation' i18n message key to 'itemdisambiguation' and all of wikibase special pages. It would be lots of work
  • Make a duplicated i18n entry in WikimediaMessages extension for this particular entry and leave it there until we turn this special page back on. (Can we have alias for i18n keys? It would be awesome!). This one is basically no work but the drawback is that all of the title translations need to be repeated in all languages that have it.

What do you think @Addshore @Lucas_Werkmeister_WMDE @alaa_wmde @WMDE-leszek @RazShuty ?

Other suggestions:

  • Make ItemDisambiguation a subclass of DisabledSpecialPage (and rename its execute() to something else, e. g. executeIsDisabled(), so that DisabledSpecialPage::execute() is still in effect), with an appropriate `getDescription() method.
  • Make a new class DisabledSpecialWikibasePage extending DisabledSpecialPage and overriding getDescription() just like SpecialWikibasePage.
  • Make ItemDisambiguation a subclass of DisabledSpecialPage (and rename its execute() to something else, e. g. executeIsDisabled(), so that DisabledSpecialPage::execute() is still in effect), with an appropriate `getDescription() method.

We want to make this special page work for third parties. This case is something only for WMF production.