Rozšíření: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 |
|
|
| 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
GlobalUsageve vaší složceextensions/.
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
$wgGlobalUsageDatabasena 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ýtdbname-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
Dokončeno – Přejděte na stránku Special:Versionvaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Konkrétní návod, jak propojit tabulku využití souborů podle webů
- Ujistěte se, že hodnoty $wgGlobalUsageDatabase a $wgLBFactoryConf byly správně nastaveny.
- 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.)
- Pro sdílení tabulky webů napříč všemi wikinami použijte $wgSharedDB = 'commonswiki'; a $wgSharedTables[] = 'sites';.
- 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
$wgGlobalUsageDatabaseje 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.$wgVirtualDomainsMappingmusí být nastavena předwfLoadExtension( '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é vextension.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'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í:
| Toto rozšíření se používá na jednom nebo více projektech Wikimedia. Pravděpodobně to znamená, že rozšíření je stabilní a funguje dostatečně dobře, aby jej mohly používat weby s tak vysokou návštěvností. Vyhledejte tento název rozšíření v konfiguračních souborech CommonSettings.php a InitialiseSettings.php Wikimedie, abyste viděli, kde je nainstalováno. Úplný seznam rozšíření nainstalovaných na konkrétní wiki lze vidět na stránce wiki Special:Version. |
| Toto rozšíření je zahrnuto v následujících wiki farmách/hostitelích a/nebo balíčcích: |
- Stable extensions/cs
- Special page extensions/cs
- API extensions/cs
- ArticleDeleteComplete extensions/cs
- FileDeleteComplete extensions/cs
- FileUndeleteComplete extensions/cs
- ImagePageAfterImageLinks extensions/cs
- ImagePageShowTOC extensions/cs
- LinksUpdateComplete extensions/cs
- LoadExtensionSchemaUpdates extensions/cs
- PageMoveComplete extensions/cs
- UploadComplete extensions/cs
- WgQueryPages extensions/cs
- MIT licensed extensions/cs
- Extensions in Wikimedia version control/cs
- All extensions/cs
- Extensions used on Wikimedia/cs
- Extensions included in Miraheze/cs
- Extensions included in Weird Gloop/cs
- Extensions for data exchange with other local wikis/cs
