Jump to content

Extension:GlobalUsage

From mediawiki.org
This page is a translated version of the page Extension:GlobalUsage and the translation is 100% complete.
Manuel des extensions MediaWiki
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
  • $wgGlobalUsageSharedRepoWiki
  • $wgGlobalUsagePurgeBacklinks
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é GlobalUsage dans votre dossier extensions/.
    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 $wgGlobalUsageDatabase avec 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. Et dbname-prefix si 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
  • Yes 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

  1. Assurez-vous que $wgGlobalUsageDatabase et $wgLBFactoryConf sont correctement initialisés.
  2. 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).
  3. Utiliser $wgSharedDB = 'commonswiki'; et $wgSharedTables[] = 'sites'; pour partager la table des sites sur tous les wikis.
  4. Purger tout le cache et forcer la mise à jour comme par refreshGlobalimagelinks.php.

Configuration for GlobalUsage (MediaWiki 1.43+)

Version de MediaWiki :
1.43

Dans les versions plus récentes de GlobalUsage (REL1_45+), $wgGlobalUsageDatabase n'est plus utilisé. L'extension utilise maintenant le système de domaine virtuel de MediaWiki. La variable de configuration correcte est $wgVirtualDomainsMapping.

Sur chaque wiki de contenu (wikis qui utilisent les fichiers du dépôt partagé)

// Doit être initialisé AVANT wfLoadExtension
$wgVirtualDomainsMapping['virtual-globalusage'] = [ 'db' => 'my_media_wiki_db' ];
$wgGlobalUsageSharedRepoWiki = 'my_media_wiki_db';

wfLoadExtension( 'GlobalUsage' );

Remplacez my_media_wiki_db par les $wgDBname du wiki de votre dépôt partagé de médias et de fichiers.

Sur le media wiki partagé (le wiki qui héberge les fichiers)

// Doit être défini AVANT wfLoadExtension
$wgVirtualDomainsMapping['virtual-globalusage'] = [ 'db' => 'my_media_wiki_db' ];
$wgGlobalUsageSharedRepoWiki = 'my_media_wiki_db';

wfLoadExtension( 'GlobalUsage' );

// Nécessaire à WikiMap pour résoudre les IDs du wiki en affichant les noms et les URL.
// Sans cela, les pages des fichiers afficheront des noms de base de données bruts au lieu des noms de wiki, et les liens vers les pages des autres wikis ne fonctionneront pas.
$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' ]; // Suffixe commun partagé par les noms des bases de données, ou chaîne quelconque

$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',
    ],
];

Accès inter bases de données

L'utilisateur de la base de données pour chaque wiki de contenu doit avoir les privilèges suivants dans la base de données du wiki des médias : SELECT, INSERT, UPDATE, DELETE Si vos wikis ont des utilisateurs de base de données distincts, accordez l'accès en tant qu'utilisateur root MySQL/MariaDB :

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;

Exécuter update.php

Après avoir configuré $wgVirtualDomainsMapping, exécuter update.php sur chaque wiki. GlobalUsage utilise addExtensionUpdateOnVirtualDomain, ce qui crée la table globalimagelinks dans la base de données correcte (la base de données du wiki des médias).

Si globalimagelinks a été créé par accident dans la mauvaise base de données (par exemple avant que $wgVirtualDomainsMapping ne soit défini), ignorez et redémarrez update.php :

DROP TABLE globalimagelinks;

Remplissage avec refreshGlobalimagelinks.php

Exécutez le script de rafraîchissement de chaque wiki de contenu uniquement — mais pas le wiki des médias. Le script utilise $wgDBname du wiki d'exécution pour fixer le champ gil_wiki et écrit dans la base de données du wiki des médias via la correspondance du domaine virtuel.

php extensions/GlobalUsage/maintenance/refreshGlobalimagelinks.php

NE L'EXECUTEZ PAS sur le wiki du dépôt ni sur Commons. L'exécution de ce script à partir du wiki des médias lui-même entraînera que toutes les lignes recevront le même nom de la base de données du wiki des médias, et aucune utilisation inter wiki ne sera affichée.

Notes

  • $wgGlobalUsageDatabase est ignoré silencieusement dans REL1_45 et les versions plus récentes. Si vous mettez à jour une version plus ancienne, remplacez-la par $wgVirtualDomainsMapping comme indiqué ci-dessus.
  • $wgVirtualDomainsMapping doit être initialisé avant wfLoadExtension( 'GlobalUsage' ).
  • Les paramètres $wgConf sur le wiki des médias sont nécessaires pour que les liens fonctionnent. Sans eux, les pages des fichiers affichent les noms bruts de la base de données (par exemple mywiki_db) sans lien hypertexte.
  • Le nom du domaine virtuel utilisé par cette extension est virtual-globalusage (codé en dur dans extension.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&#039;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 renvoyé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 :