The
GlobalCssJs
extension allows loading
CSS
and
JavaScript
(JS) from a central wiki.
It supports wiki farm-wide and individual site-wide "MediaWiki:Global.js"/"MediaWiki:Global.css" pages and per-user "User:$username/global.js"/"User:$username/global.css" pages on a specified central wiki. The term "global" is used to mean across a
wiki farm
(compare with
Extension:GlobalUsage
) and the capitalization ("Css" and "Js") is due to MediaWiki extension naming conventions.
If you are not using
shared user tables
or
CentralAuth
, this extension can open up a
XSS
vector, which allows other users to hijack the user's account, among other things. See
#Hook
for information on how to integrate your authentication extension with this one.
Installation
[
edit
]
- Download
and move the extracted
GlobalCssJs
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/GlobalCssJs
- Add the following code at the bottom of your
LocalSettings.php
file:
wfLoadExtension
(
'GlobalCssJs'
);
- Configure as required.
-
Done
? Navigate to
Special:Version
on your wiki to verify that the extension is successfully installed.
Configuration
[
edit
]
wgUseGlobalSiteCssJs
[
edit
]
Whether to enable MediaWiki:Global.js/MediaWiki:Global.css pages. By default enabled.
$wgUseGlobalSiteCssJs
=
true
;
wgGlobalCssJsConfig
[
edit
]
ResourceLoader configuration of the global wiki. By default, no global wiki is specified.
$wgGlobalCssJsConfig
=
[
'wiki'
=>
false
,
'source'
=>
false
,
];
'wiki'
should be set to the database name of the central wiki.
'source'
should be the name of the
ResourceLoader source
.
An example configuration might look like:
$wgGlobalCssJsConfig
=
[
'wiki'
=>
'metawiki'
,
'source'
=>
'metawiki'
,
];
// 'source' must point to a key in $wgResourceLoaderSources, like so:
// $wgResourceLoaderSources['metawiki'] = array(
// 'apiScript' => 'https://meta.wikimedia.org/w/api.php',
// 'loadScript' => 'https://meta.wikimedia.org/w/load.php',
//);
To test it our locally without a central repository, point it at the local wiki, like so:
$wgGlobalCssJsConfig
=
[
'wiki'
=>
$wgDBname
,
'source'
=>
'local'
,
];
Hook
[
edit
]
If you are not using shared user tables for managing users, you can use a hook to state whether a user on one wiki is equal to another.
public
static
function
onLoadGlobalCssJs
(
User
$user
,
$centralWiki
,
$localWiki
);
$centralWiki
is the wiki the JS/CSS is being taken from, and
$localWiki
is the current wiki the request is being executed on. The hook will not be called if
$centralWiki === $localWiki
.
The function should return true if the users are the same, and false if they are not. An example subscriber can be found in the CentralAuth extension.
Usage
[
edit
]
See
Help:Extension:GlobalCssJs
for details.
| This extension is being used on one or more
Wikimedia projects
. This probably means that the extension is stable and works well enough to be used by such high-traffic websites. Look for this extension's name in Wikimedia's
CommonSettings.php
and
InitialiseSettings.php
configuration files to see where it's installed. A full list of the extensions installed on a particular wiki can be seen on the wiki's
Special:Version
page.
|
| This extension is included in the following wiki farms/hosts and/or packages:
This is not an authoritative list.
Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here.
Always check with your wiki farms/hosts or bundle to confirm.
|