Page MenuHomePhabricator

API module for RelatedSites extension
Closed, DeclinedPublic

Description

There should be a prop=relatedsites module which provides a list of all the related sites.

This will be extremely useful during the Wikidata migration when trying to connect a Wikivoyage page with the Wikidata one.

For some reason the original version of the mw documentation page claims it uses the API, but I can't find anything in the code to indicate that. (https://www.mediawiki.org/w/index.php?title=Extension:RelatedSites&oldid=595097).


Version: unspecified
Severity: enhancement

Details

Reference
bz50414

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 1:50 AM
bzimport set Reference to bz50414.
bzimport added a subscriber: Unknown Object (MLST).

Unfortunately I have no experience with the API and how to work with the Git repository so I will give at least two ideas:

(1) The API function should be similar to prop=langlinks (ll)

(2) From the public function onSkinTemplateToolboxEnd( &$skinTpl ) (at the end of RelatedSites.class.php) you can learn how to access to the stored values:

$relatedSites = $this->getCustomData()->getSkinData( $skinTpl, 'RelatedSites' );

if ( count( $relatedSites ) == 0 ) {
return true;
}

$relatedSitesUrls = $this->getRelatedSitesUrls( $relatedSites );

foreach ( (array) $relatedSitesUrls as $url ) {
$href = htmlspecialchars( $url['href'] );
$text = $url['text'];
...
}

Now you can check for Wikipedia and Commons. $url['text'] should contain "Wikipedia", "Wikimedia Commons" and others.

We can probably just make this a page property instead of extension data and that automatically gets us an API.

Unless the plan is to archive the extension after removing its usage on Wikimedia sites, this task is still valid.