Jump to content

Rozšíření:GlobalUsage

From mediawiki.org
This page is a translated version of the page Extension:GlobalUsage and the translation is 100% complete.
Příručka k rozšířením MediaWiki
GlobalUsage
Stav rozšíření: stabilní
Implementace Speciální stránka , API
Popis Umožňuje zobrazit globální využití obrázků na wiki farmě se sdíleným úložištěm obrázků
Autoři Bryan Tong Minh (Bryandiskuse)
Nejnovější verze 2.2.0
Zásady kompatibility Vydání snímků současně s MediaWiki. Hlavní vývojová větev není zpětně kompatibilní.
MediaWiki 1.28+
Změny v databázi Ano
Virtuální doména virtual-globalusage
  • $wgGlobalUsageSharedRepoWiki
  • $wgGlobalUsagePurgeBacklinks
Licence Licence MIT
Stáhnout
README
Přeložte rozšíření GlobalUsage, používá-li lokalizaci z translatewiki.net
Problémy Otevřené úkoly · Nahlásit chybu

Rozšíření GlobalUsage umožňuje zobrazit globální využití obrázků ve wiki farmě, která používá sdílené úložiště obrázků. Přidá Special:GlobalUsage a také seznam stránek, které obsahují obrázek na stránkách s popisem obrázku.

Instalace

  • Stáhněte soubor/y a vložte je do adresáře pojmenovaného GlobalUsage ve vaší složce extensions/.
    Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:
    cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalUsage
    
  • Na konec vašeho souboru LocalSettings.php přidejte následující kód:
    wfLoadExtension( 'GlobalUsage' );
    
  • Spusťte aktualizační skript, který automaticky provede všechny nezbytné databázové změny, jaké rozšíření vyžaduje.
  • V LocalSettings nastavte $wgGlobalUsageDatabase na identifikátor wiki, kde se nacházejí data GlobalUsage (obvykle název databáze). Mělo by to být ID wiki, jak ho používá load balancer (vyrovnávač zatížení). (tj. mělo by to být jméno databáze. Pokud se používá prefix tabulky, mělo by to být dbname-prefix). Příklad: $wgGlobalUsageDatabase = 'commonswiki';
    Toto jméno musí být také registrováno v load balanceru MediaWiki: Příručka:$wgLBFactoryConf . Tato konfigurační struktura mapuje názvy databází na databázové servery. Upozorňujeme, že pro fungování tohoto rozšíření je nutné v této struktuře zaregistrovat všechny databáze používané ve vaší wikifarmě, i když jsou všechny na stejném databázovém serveru.
  • Abyste mohli odkazovat na své další wikiny, musíte použít buď konfigurační systém webu $wgConf , nebo databázi Příručka:Databázová tabulka sites , aby GlobalUsage mohl odkazovat na vaše další wikiny. Nemusíte ho nutně používat pro veškerou konfiguraci wiki, ale je důležité ho používat pro $wgServer a $wgArticlePath.
  • Spusťte refreshGlobalimagelinks.php na všech wikinách ve vaší farmě. Bude to trvat dlouho, ale stačí to udělat pouze jednou při instalaci rozšíření: php extensions/GlobalUsage/maintenance/refreshGlobalimagelinks.php --pages=existing,nonexisting
  • Yes Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.

Konkrétní návod, jak propojit tabulku využití souborů podle webů

  1. Ujistěte se, že hodnoty $wgGlobalUsageDatabase a $wgLBFactoryConf byly správně nastaveny.
  2. Použijte údržbový skript importSites.php k vytvoření souboru seznamu webů ve formátu XML. (Instrukce naleznete zde: sitelist.txt, ukázkový soubor naleznete zde: sitelist-1.0.xsd.)
  3. Pro sdílení tabulky webů napříč všemi wikinami použijte $wgSharedDB = 'commonswiki'; a $wgSharedTables[] = 'sites';.
  4. Vyčistěte veškerou mezipaměť a vynuťte aktualizaci, například po nastavení refreshGlobalimagelinks.php.

Configuration for GlobalUsage (MediaWiki 1.43+)

Verze MediaWiki:
1.43

V novějších verzích GlobalUsage (REL1_45 a novějších) se $wgGlobalUsageDatabase již nepoužívá. Rozšíření nyní používá systém virtuálních domén MediaWiki. Správná konfigurační proměnná je $wgVirtualDomainsMapping.

Na každé obsahové wiki (wikiny, které používají soubory ze sdíleného repozitáře)

// Musí být nastaveno PŘED wfLoadExtension
$wgVirtualDomainsMapping['virtual-globalusage'] = [ 'db' => 'my_media_wiki_db' ];
$wgGlobalUsageSharedRepoWiki = 'my_media_wiki_db';

wfLoadExtension( 'GlobalUsage' );

Nahraďte hodnotu my_media_wiki_db hodnotou $wgDBname ze sdíleného úložiště médií/souborů vaší wiki.

Na wiki sdílených médií (wiki, která hostuje soubory)

// Musí být nastaveno PŘED wfLoadExtension
$wgVirtualDomainsMapping['virtual-globalusage'] = [ 'db' => 'my_media_wiki_db' ];
$wgGlobalUsageSharedRepoWiki = 'my_media_wiki_db';

wfLoadExtension( 'GlobalUsage' );

// Vyžadováno pro WikiMap k překladu ID wiki pro zobrazení názvů a URL adres.
// Bez tohoto se na stránkách souborů budou zobrazovat nezpracované názvy databází místo názvů wiki a odkazy na stránky na jiných wikin nebudou fungovat.
$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' ]; // Společná přípona sdílená vašimi názvy databází nebo libovolný řetězec

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

Přístup napříč databázemi

Uživatel databáze pro každou obsahovou wiki musí mít následující oprávnění k databázi mediální wiki: SELECT, INSERT, UPDATE, DELETE Pokud vaše wiki používají oddělené uživatele databáze, udělte přístup jako uživatel 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;

Spuštění souboru update.php

Po konfiguraci $wgVirtualDomainsMapping spusťte na každé wiki update.php. GlobalUsage používá addExtensionUpdateOnVirtualDomain, což vytváří tabulku globalimagelinks ve správné databázi (databázi mediální wiki).

Pokud byl globalimagelinks omylem vytvořen v nesprávné databázi (např. před nastavením $wgVirtualDomainsMapping), zrušte jej a znovu spusťte update.php:

DROP TABLE globalimagelinks;

Doplňování s refreshGlobalimagelinks.php

Spusťte obnovovací skript pouze z každé wiki obsahu – nikoli z mediální wiki. Skript použije hodnotu $wgDBname spouštěné wiki k označení pole gil_wiki a zapíše do databáze mediální wiki prostřednictvím mapování virtuální domény.

php extensions/GlobalUsage/maintenance/refreshGlobalimagelinks.php

NESPOUŠTĚJTE na repozitáři/commons wiki. Spuštění tohoto skriptu přímo ze samotné mediální wiki bude mít za následek, že všechny řádky budou označeny vlastním názvem databáze mediální wiki a nezobrazí se žádné použití napříč wiki.

Poznámky

  • $wgGlobalUsageDatabase je v REL1_45 a novějších verzích tiše ignorována. Pokud aktualizujete ze starší verze, nahraďte ji hodnotou $wgVirtualDomainsMapping, jak je uvedeno výše.
  • $wgVirtualDomainsMapping musí být nastavena před wfLoadExtension( 'GlobalUsage' ).
  • Pro fungování odkazů je nutné mít na mediální wiki nastavenou $wgConf. Bez nich se na stránkách souborů zobrazují nezpracované názvy databází (např. mywiki_db) bez hypertextového odkazu.
  • Virtuální doménové jméno používané tímto rozšířením je virtual-globalusage (pevně zakódované v extension.json).

API

Extension:GlobalUsage obsahuje rozšíření API, které umožňuje robotům a dalším programům dotazovat se na globální využití souboru. Například tento dotaz na Wikimedia Commons vrací globální použití Soubor:Příklad.jpg:

Výsledek
<?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>

Ve výchozím nastavení se zobrazí pouze 10 výsledků. Dalších 10 výsledků lze načíst pomocí parametru gucontinue=, který je součástí výše uvedeného výsledku:

Počet vrácených výsledků se nastavuje parametrem gulimit. Parametr guprop nastavuje, které vlastnosti se mají načíst. Parametr gufilterlocal, pokud je nastaven na 1, vyloučí použití na stejné wiki jako soubor (např. na Commons). Následující dotaz načte všechny vlastnosti a až 100 výsledků, s výjimkou lokálních použití: