Page MenuHomePhabricator

Rework CampaignEventsGetAllEventsContent hook to allow transclusion of WikiProject list
Closed, ResolvedPublic

Description

Background: for T389892, we want to allow transclusion of the WikiProject list. However, the list is generated in the WikimediaCampaignEvents extension, using the CampaignEventsGetAllEventsContent hook. The tab layout itself is added in the hook handler. The SpecialAllEvents class itself does not know about tabs. This makes it impossible (or extremely awkward) to allow transclusion of a single tabs with syntax like {{Special:AllEvents/communities}}.

One way to fix that is to have the base special page class know about the tab layout, and have hook handlers specify what tabs they're adding content to. Then:

  • When the page is transcluded, check if we have a tab name (as in Special:AllEvents/tabname) and output the relevant tab only.
    • If no tab is specified, output the default "Events" tab.
    • An invalid tab can be treated as if no tab were specified.
  • Outside of transclusion: when the hook does not add any additional tabs, do not output the tab layout; instead, output the event list directly (preserve the status quo when WikimediaCampaignEvents is not available)

Event Timeline

cmelo changed the task status from Open to In Progress.Mar 31 2025, 8:23 PM
cmelo claimed this task.

Change #1134165 had a related patch set uploaded (by Cmelo; author: Cmelo):

[mediawiki/extensions/WikimediaCampaignEvents@master] Rework CampaignEventsGetAllEventsContent hook to allow transclusion of WikiProject

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

Change #1134166 had a related patch set uploaded (by Cmelo; author: Cmelo):

[mediawiki/extensions/CampaignEvents@master] Rework CampaignEventsGetAllEventsContent hook to allow transclusion of WikiProject

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

Change #1138751 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/CampaignEvents@master] SpecialAllEvents: import tab name message from WikimediaCampaignEvents

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

Change #1138752 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/WikimediaCampaignEvents@master] Delete message for event tab name

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

Change #1138762 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/CampaignEvents@master] Rename message imported from WikimediaCampaignEvents

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

Change #1138751 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] SpecialAllEvents: import tab name message from WikimediaCampaignEvents

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

Change #1138752 merged by jenkins-bot:

[mediawiki/extensions/WikimediaCampaignEvents@master] Delete message for event tab name

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

Change #1139915 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/CampaignEvents@master] Drop CampaignEventsGetAllEventsContentHook

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

Change #1134166 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] SpecialAllEvents: import TabLayout code from WikimediaCampaignEvents

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

Change #1134165 merged by jenkins-bot:

[mediawiki/extensions/WikimediaCampaignEvents@master] Switch to CampaignEventsGetAllEventsTabsHook for Special:AllEvents

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

Change #1138762 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Rename message imported from WikimediaCampaignEvents

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

Change #1139915 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Drop CampaignEventsGetAllEventsContentHook

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

vaughnwalters subscribed.

This is part of the transcluding the communities tab work at T389892 and it has been released, so marking this as done / resolved