Extension:GlobalUsage
État de la version : stable |
|
|---|---|
| Implémentation | Page spéciale, API |
| Description | Permet de voir l'utilisation globale des images dans une ferme de wikis avec un dépôt d'images partagé |
| Auteur(s) | Bryan Tong Minh (Bryandiscussion) |
| Dernière version | 2.2.0 |
| Politique de compatibilité | Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière. |
| MediaWiki | 1.28+ |
| Modifie la base de données |
Oui |
| Domaine virtuel | virtual-globalusage |
|
|
| Licence | Licence MIT |
| Téléchargement | README |
| Traduire l’extension GlobalUsage sur translatewiki.net si elle y est disponible | |
| Problèmes | Tâches ouvertes · Signaler un bogue |
L'extension GlobalUsage permet de voir l'utilisation globale des images sur une ferme de wikis disposant d'un dépôt partagé d'images. Elle ajoute Special:GlobalUsage ainsi qu'une liste de pages qui incluent l'image sur les pages de description des images.
Installer
- Téléchargez et placez le(s) fichier(s) dans un répertoire appelé
GlobalUsagedans votre dossierextensions/.
Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalUsage
- Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
wfLoadExtension( 'GlobalUsage' );
- Exécutez le script de mise à jour qui va créer automatiquement les tables de base de données dont cette extension a besoin.
- Dans LocalSettings, initialiser
$wgGlobalUsageDatabaseavec l'identifiant du wiki où se trouvent les données GlobalUsage (généralement le nom de la base de données). Doit être l'ID du wiki utilisé par le partage de charge. (c'est-à-dire être le nom de la base de données. Etdbname-prefixsi vous utilisez un préfixe de table). Exemple :$wgGlobalUsageDatabase = 'commonswiki';- Ce nom doit également être déclaré pour le partage de charge de MediaWiki : Manuel:$wgLBFactoryConf. Cette structure de configuration fait correspondre le nom des bases de données au serveur correspondant. Remarque : vous devez enregistrer toutes les bases de données utilisées sur votre ferme de wikis dans cette structure, même si elles sont toutes sur le même serveur de base de données, pour que cette extension fonctionne.
- Vous devez utiliser soit le système de configuration de site $wgConf ou la base de données Manuel:Table des sites pour GlobalUsage afin de pouvoir lier vos autres wikis. Vous n'avez pas nécessairement besoin de l'utiliser pour toutes vos configurations de wiki, mais il est important de l'appliquer pour $wgServer et $wgArticlePath.
- Exécuter refreshGlobalimagelinks.php sur tous les wikis de la ferme de wikis. Cela prendra du temps, mais ne doit être fait qu'une seule fois à l'installation de l'extension :
php extensions/GlobalUsage/maintenance/refreshGlobalimagelinks.php --pages=existing,nonexisting
Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
Guide spécifique pour lier l'utilisation des fichiers par les tables des sites
- Assurez-vous que $wgGlobalUsageDatabase et $wgLBFactoryConf sont correctement initialisés.
- Utilisez le script de maintenance importSites.php pour créer un fichier de liste de sites au format XML. (Les instructions se trouvent ici : sitelist.txt, le fichier d'exemples se trouve ici: sitelist-1.0.xsd).
- Utiliser $wgSharedDB = 'commonswiki'; et $wgSharedTables[] = 'sites'; pour partager la table des sites sur tous les wikis.
- Purger tout le cache et forcer la mise à jour comme par refreshGlobalimagelinks.php.
Configuration for GlobalUsage (MediaWiki 1.43+)
| Version de MediaWiki : | ≥ 1.43 |
In newer versions of GlobalUsage (REL1_45 and newer), $wgGlobalUsageDatabase is no longer used.
The extension now uses MediaWiki's virtual domain system.
The correct configuration variable is $wgVirtualDomainsMapping.
On each content wiki (wikis that use files from the shared repo)
// Must be set BEFORE wfLoadExtension
$wgVirtualDomainsMapping['virtual-globalusage'] = [ 'db' => 'my_media_wiki_db' ];
$wgGlobalUsageSharedRepoWiki = 'my_media_wiki_db';
wfLoadExtension( 'GlobalUsage' );
Replace my_media_wiki_db with the $wgDBname of your shared media/file repository wiki.
On the shared media wiki (the wiki that hosts the files)
// Must be set BEFORE wfLoadExtension
$wgVirtualDomainsMapping['virtual-globalusage'] = [ 'db' => 'my_media_wiki_db' ];
$wgGlobalUsageSharedRepoWiki = 'my_media_wiki_db';
wfLoadExtension( 'GlobalUsage' );
// Required for WikiMap to resolve wiki IDs to display names and URLs.
// Without this, file pages will show raw database names instead of wiki names, and links to pages on other wikis will not work.
$wgLocalDatabases = [ 'my_wiki_1_db', 'my_wiki_2_db', 'my_media_wiki_db' ];
$wgConf->wikis = [ 'my_wiki_1_db', 'my_wiki_2_db', 'my_media_wiki_db' ];
$wgConf->suffixes = [ 'mysuffix' ]; // A common suffix shared by your DB names, or any string
$wgConf->siteParamsCallback = static function ( $conf, $wiki ) {
return [
'suffix' => 'mysuffix',
'lang' => 'en',
'params' => [],
'tags' => [],
];
};
$wgConf->settings = [
'wgServer' => [
'my_wiki_1_db' => 'https://wiki1.example.org',
'my_wiki_2_db' => 'https://wiki2.example.org',
'my_media_wiki_db' => 'https://media.example.org',
],
'wgArticlePath' => [
'default' => '/wiki/$1',
],
'wgSitename' => [
'my_wiki_1_db' => 'My Wiki',
'my_wiki_2_db' => 'My Wiki (DE)',
'my_media_wiki_db' => 'My Media Wiki',
],
];
Cross-database access
The DB user for each content wiki must have SELECT, INSERT, UPDATE, and DELETE privileges on the media wiki's database.
If your wikis use separate database users, grant access as a MySQL/MariaDB root user:
GRANT SELECT, INSERT, UPDATE, DELETE ON my_media_wiki_db.* TO 'wiki1_user'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON my_media_wiki_db.* TO 'wiki2_user'@'localhost';
FLUSH PRIVILEGES;
Running update.php
After configuring $wgVirtualDomainsMapping, run update.php on each wiki.
GlobalUsage uses addExtensionUpdateOnVirtualDomain, which creates the globalimagelinks table in the correct database (the media wiki's DB).
If globalimagelinks was accidentally created in the wrong database (e.g. before $wgVirtualDomainsMapping was set), drop it and re-run update.php:
DROP TABLE globalimagelinks;
Backfilling with refreshGlobalimagelinks.php
Run the refresh script from each content wiki only — not from the media wiki.
The script uses the executing wiki's $wgDBname to stamp the gil_wiki field, and writes to the media wiki's database via the virtual domain mapping.
php extensions/GlobalUsage/maintenance/refreshGlobalimagelinks.php
Do NOT run on the repository/commons wiki. Running this script from the media wiki itself will result in all rows being stamped with the media wiki's own DB name, and no cross-wiki usage will appear.
Notes
$wgGlobalUsageDatabaseis silently ignored in REL1_45 and newer versions. If you are upgrading from an older version, replace it with$wgVirtualDomainsMappingas shown above.$wgVirtualDomainsMappingmust be set beforewfLoadExtension( 'GlobalUsage' ).$wgConfsettings on the media wiki are required for links to work. Without them, file pages display raw database names (e.g.mywiki_db) with no hyperlink.- The virtual domain name used by this extension is
virtual-globalusage(hardcoded inextension.json).
API
Extension:GlobalUsage comprend une extension d'API qui permet aux robots et autres programmes d'interroger l'utilisation globale d'un fichier. Par exemple, cette requête sur Wikimedia Commons renvoie les utilisations globales de File:Example.jpg:
| Résultat |
|---|
<?xml version="1.0"?>
<api>
<query>
<pages>
<page pageid="6428847" ns="6" title="File:Example.jpg">
<globalusage>
<gu title="Ашаблон:Ацқьа" wiki="ab.wikipedia.org" url="http://ab.wikipedia.org/wiki/%D0%90%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%90%D1%86%D2%9B%D1%8C%D0%B0" />
<gu title="Wikipedia_ውይይት:Can't_see_the_font?" wiki="am.wikipedia.org" url="http://am.wikipedia.org/wiki/Wikipedia_%E1%8B%8D%E1%8B%AD%E1%8B%AD%E1%89%B5:Can%27t_see_the_font%3F" />
<gu title="አባል:Blockinblox" wiki="am.wikipedia.org" url="http://am.wikipedia.org/wiki/%E1%8A%A0%E1%89%A3%E1%88%8D:Blockinblox" />
<gu title="አባል_ውይይት:Hana.oww" wiki="am.wikipedia.org" url="http://am.wikipedia.org/wiki/%E1%8A%A0%E1%89%A3%E1%88%8D_%E1%8B%8D%E1%8B%AD%E1%8B%AD%E1%89%B5:Hana.oww" />
<gu title="አባል:Beza" wiki="am.wikipedia.org" url="http://am.wikipedia.org/wiki/%E1%8A%A0%E1%89%A3%E1%88%8D:Beza" />
<gu title="መደብ:ኪነት" wiki="am.wikipedia.org" url="http://am.wikipedia.org/wiki/%E1%88%98%E1%8B%B0%E1%89%A5:%E1%8A%AA%E1%8A%90%E1%89%B5" />
<gu title="መደብ_ውይይት:ተረትና_ምሳሌ" wiki="am.wikipedia.org" url="http://am.wikipedia.org/wiki/%E1%88%98%E1%8B%B0%E1%89%A5_%E1%8B%8D%E1%8B%AD%E1%8B%AD%E1%89%B5:%E1%89%B0%E1%88%A8%E1%89%B5%E1%8A%93_%E1%88%9D%E1%88%B3%E1%88%8C" />
<gu title="ስዕል:መርጡለ_ማርያም_ገዳም_.jpg" wiki="am.wikipedia.org" url="http://am.wikipedia.org/wiki/%E1%88%B5%E1%8B%95%E1%88%8D:%E1%88%98%E1%88%AD%E1%8C%A1%E1%88%88_%E1%88%9B%E1%88%AD%E1%8B%AB%E1%88%9D_%E1%8C%88%E1%8B%B3%E1%88%9D_.jpg" />
<gu title="User_talk:Rasheduzzaman_Raj" wiki="ang.wikipedia.org" url="http://ang.wikipedia.org/wiki/User_talk:Rasheduzzaman_Raj" />
<gu title="User:Danceteamcherleaders" wiki="ang.wikipedia.org" url="http://ang.wikipedia.org/wiki/User:Danceteamcherleaders" />
</globalusage>
</page>
</pages>
</query>
<query-continue>
<globalusage gucontinue="Example.jpg|arwiki|77967" />
</query-continue>
</api>
|
Par défaut, cela ne renvoie que 10 résultats. Les résultats 10 suivants peuvent être récupérés en utilisant le paramètre gucontinue= inclus dans le résultat ci-dessus :
Le nombre de résultats retournés est défini par le paramètre gulimit.
Le paramètre guprop indique la propriété à récupérer.
Le paramètre gufilterlocal, lorsqu'il vaut 1, exclura les utilisations sur le même wiki que celui du fichier (par exemple, sur Commons).
La requête suivante récupère toutes les propriétés et jusqu'à 100 résultats, à l'exclusion des utilisations locales :
| Cette extension est utilisée par au moins un des projets Wikimédia. Cela signifie probablement que l’extension est assez stable et fonctionnelle pour être utilisée sur des sites à fort trafic. Recherchez le nom de cette extension dans le CommonSettings.php de Wikimédia et dans le fichier de configuration InitialiseSettings.php pour situer les endroits où elle est installée. Une liste complète des extensions installées sur un Wiki donné peut être visualisée sur la page Special:Version de ce wiki. |
| Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : |
- Stable extensions/fr
- Special page extensions/fr
- API extensions/fr
- ArticleDeleteComplete extensions/fr
- FileDeleteComplete extensions/fr
- FileUndeleteComplete extensions/fr
- ImagePageAfterImageLinks extensions/fr
- ImagePageShowTOC extensions/fr
- LinksUpdateComplete extensions/fr
- LoadExtensionSchemaUpdates extensions/fr
- PageMoveComplete extensions/fr
- UploadComplete extensions/fr
- WgQueryPages extensions/fr
- MIT licensed extensions/fr
- Extensions in Wikimedia version control/fr
- All extensions/fr
- Extensions used on Wikimedia/fr
- Extensions included in Miraheze/fr
- Extensions included in Weird Gloop/fr
- Extensions for data exchange with other local wikis/fr
