Extension:SiteMatrix

This extension is made for Wikimedia wikis. It does work for other wikis, but note that the extension contains Wikimedia-specific text.
MediaWiki extensions manual
SiteMatrix
Release status: stable
Implementation Special page , API
Description adds a special page with a matrix of all Wikimedia sites
Author(s) Tim Starling, Brooke Vibber, Victor Vasiliev, Alexandre Emsenhuber
Latest version 1.4.0 (2016-07-22)
MediaWiki >= 1.43
License GNU General Public License 2.0 or later
Download
Example Special:SiteMatrix
  • $wgSiteMatrixSites
  • $wgSiteMatrixFishbowlSites
  • $wgSiteMatrixFile
  • $wgSiteMatrixClosedSites
  • $wgSiteMatrixPrivateSites
Quarterly downloads 2 (Ranked 127th)
Public wikis using 897 (Ranked 272nd)
Translate the SiteMatrix extension if it is available at translatewiki.net
Issues Open tasks · Report a bug

The SiteMatrix extension adds a special page with a matrix of all sites of the Wikimedia Foundation. First a table of all normal language wikis, with blue links for existing wikis and red links for non-existing wikis. Below a list of other special projects (like Meta, Commons, Wikimania, ...), mostly the sites like *.wikimedia.org. It also adds a NUMBEROFWIKIS parserfunction which shows the total number of wikis[1].

Installation

  • Download and move the extracted SiteMatrix folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/SiteMatrix
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'SiteMatrix' );
    
  •   Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Configuration

There are some variables that you need to change:

  • $wgSiteMatrixFile - The path to a list of language codes recognised by MediaWiki (example).
  • $wgSiteMatrixPrivateSites - The path to a list of wiki databases that are private (optional)
  • $wgSiteMatrixFishbowlSites - The path to a list of wiki databases that are public, but only logged in users can edit. (optional)
  • $wgSiteMatrixClosedSites - The path of a list of wiki databases that "closed" (optional)

You would also need to customise $wgSiteMatrixSites to list the different wikis in your own wikifarm. To add a new site, follow the template in extension.json as a guide (but be sure to convert the syntax to PHP). As this has been removed for better compatibility, use the code below as a reference:

	"wiki": {
		"name": "Wikipedia",
		"host": "www.wikipedia.org",
		"prefix": "w"
	},
	"wiktionary": {
		"name": "Wiktionary",
		"host": "www.wiktionary.org",
		"prefix": "wikt"
	}

Additional requirements

To ensure that the extension works correctly to your needs, there are a few dependencies to this extension:

  • $wgLocalDatabases - To tell the extension all the wiki databases that exist in your wikifarm.
  • $wgConf - To feed the extension with the correct links to the different wikis in your wikifarm.

API

This extension adds an API module that provides the same information as Special:SiteMatrix: a set of language groups plus special wikis.


action=sitematrix (sm)

(main | sitematrix)

Get Wikimedia sites list.

The code (technically dbname/wikiid) is either the language code + project code for content projects or the subdomain + main domain for all the others.

Specific parameters:
Other general parameters are available.
smtype

Filter the Site Matrix by type:

special
One off and multilingual Wikimedia projects.
language
Wikimedia projects under this language code.
Values (separate with | or alternative): language, special
Default: special|language
smstate

Filter the Site Matrix by wiki state.

Values (separate with | or alternative): all, closed, fishbowl, nonglobal, private
Default: all
smlangprop

Which information about a language to return.

Values (separate with | or alternative): code, dir, localname, name, site
Default: code|name|site|dir|localname
smsiteprop

Which information about a site to return.

Values (separate with | or alternative): code, dbname, lang, sitename, url
Default: url|dbname|code|sitename
smlimit

Maximum number of results.

Type: integer or max
The value must be between 1 and 5,000.
Default: 5000
smcontinue

When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.

Example:
Show the site matrix
api.php?action=sitematrix [open in sandbox]


More examples

Show site matrix (only parts are shown here)
Result
{
    "sitematrix": {
        "count": 892,
        "0": {
            "code": "aa",
            "name": "Qafár af",
            "site": [
                {
                    "url": "https://aa.wikipedia.org",
                    "dbname": "aawiki",
                    "code": "wiki",
                    "sitename": "Wikipedia",
                    "closed": ""
                },
                {
                    "url": "https://aa.wiktionary.org",
                    "dbname": "aawiktionary",
                    "code": "wiktionary",
                    "sitename": "Wiktionary",
                    "closed": ""
                },
                {
                    "url": "https://aa.wikibooks.org",
                    "dbname": "aawikibooks",
                    "code": "wikibooks",
                    "sitename": "Wikibooks",
                    "closed": ""
                }
            ],
            "localname": "Afar"
        },
        "1": {
            "code": "ab",
            "name": "Аҧсшәа",
            "site": [
                {
                    "url": "https://ab.wikipedia.org",
                    "dbname": "abwiki",
                    "code": "wiki",
                    "sitename": "Авикипедиа"
                },
                {
                    "url": "https://ab.wiktionary.org",
                    "dbname": "abwiktionary",
                    "code": "wiktionary",
                    "sitename": "Wiktionary",
                    "closed": ""
                }
            ],
            "localname": "Abkhazian"
        },
        ...CUT...
        "290": {
            "code": "zu",
            "name": "isiZulu",
            "site": [
                {
                    "url": "https://zu.wikipedia.org",
                    "dbname": "zuwiki",
                    "code": "wiki",
                    "sitename": "Wikipedia"
                },
                {
                    "url": "https://zu.wiktionary.org",
                    "dbname": "zuwiktionary",
                    "code": "wiktionary",
                    "sitename": "Wiktionary"
                },
                {
                    "url": "https://zu.wikibooks.org",
                    "dbname": "zuwikibooks",
                    "code": "wikibooks",
                    "sitename": "Wikibooks",
                    "closed": ""
                }
            ],
            "localname": "Zulu"
        },
        "specials": [
            {
                "url": "https://advisory.wikimedia.org",
                "dbname": "advisorywiki",
                "code": "advisory",
                "sitename": "Advisory Board",
                "closed": ""
            },
            {
                "url": "https://ar.wikimedia.org",
                "dbname": "arwikimedia",
                "code": "arwikimedia",
                "sitename": "Wikimedia Argentina"
            },
            {
                "url": "https://arbcom-de.wikipedia.org",
                "dbname": "arbcom_dewiki",
                "code": "arbcom-de",
                "sitename": "Arbitration Committee",
                "private": ""
            },
            ...CUT...
            {
                "url": "https://login.wikimedia.org",
                "dbname": "loginwiki",
                "code": "login",
                "sitename": "Wikimedia Login Wiki"
            },
            {
                "url": "https://www.mediawiki.org",
                "dbname": "mediawikiwiki",
                "code": "mediawiki",
                "sitename": "MediaWiki"
            },
            {
                "url": "https://meta.wikimedia.org",
                "dbname": "metawiki",
                "code": "meta",
                "sitename": "Meta"
            },
            ...CUT...
            {
                "url": "https://zero.wikimedia.org",
                "dbname": "zerowiki",
                "code": "zero",
                "sitename": "Wikipedia",
                "private": ""
            }
        ]
    }
}

See also