Jump to content

InstantCommons

From mediawiki.org
This page is a translated version of the page InstantCommons and the translation is 100% complete.
Vložte název obrázku na Commons do jakékoli běžící MediaWiki...
...obrázek se načte z Commons a vloží se do stránky.

InstantCommons je funkce MediaWiki, která dovoluje použití jakéhokoli mediálního souboru nahraného na servery Wikimedia Commons v jakémkoliv projektu MediaWiki na celém světě.

Zdůvodnění

V listopadu 2023 obsahovalo centrální mediální úložiště Nadace WikimediaWikimedia Commons – přes 100 milionů souborů. Každý z těchto souborů je dostupný pod svobodnou licencí nebo jako zcela volné dílo. Další omezení použití (s výjimkou zobrazení oficiálních log či obchodních značek) tedy neexistují. Licence, které omezují komerční využití souboru, nelze považovat za svobodné.

Jak roste všeobecné povědomí o Commons, roste i žádostivost cizích subjektů používat jeho obsah a přispívat také svými materiály. Technicky vzato je dnes možné načítat obrázky přímo ze serverů Wikimedia v kontextu jakékoliv webové stránky. Takovýto "hotlinking" není zakázaný, nicméně z mnoha důvodů může přinášet problémy:

  • Nerespektuje licenční podmínky uvedené u obrázku a nepřenáší ani jeho metadata.
  • Ztrácí se informace o autorství souboru a jeho umístění na serveru Wikimedia.
  • Při každém zobrazení stránky dochází k použití datového toku ze serveru Wikimedia (platí v případě, že obrázek nezůstane uložený v cache klienta nebo proxy; tato funkce je aktuálně ve výchozím nastavení zakázána)
  • Nepodporuje užitečné nástroje pro práci s obrázky (vytváření náhledů, titulky v obraze apod.) a obtížně se aplikuje v souvislostech encyklopedií, zejména kvůli standardnímu rozložení stránek.
  • Zdroj je určen odkazovanou adresou URL, což ztěžuje zrcadlení.
  • Dochází k nekontrolovanému vnějšímu využívání, přičemž jakákoliv změna na straně Wikimedia nevyhnutelně ovlivní vnější uživatele.
  • Neumožňuje prohlížení offline, které je ale v zemích s přetržitým přístupem k internetu klíčové.

InstantCommons si klade za cíl vyrovnat se se všemi výše zmiňovanými problémy tak, že poskytuje snadné načítání obrázků a metadat z cache serverů Wikimedia. Přestože je funkce ukládání do mezipaměti součástí cíle, byla od verze MediaWiki 1.27.2/1.28.1 zakázána. NInstantCommons byl poprvé implementován v rámci MediaWiki a umožňoval transparentní provádění všech operací s obrázky MediaWiki (miniatury, titulky, galerie atd.). I ostatní wiki mohou nicméně implementovat funkce podobné InstantCommons, a to pomocí API operací popisovaných níže.

Základní funkce

Správce stránky si během instalace může vybrat, zda funkci InstantCommons povolí. Ideálně by funkce měla být ve výchozím stavu povolena (za předpokladu, že je určena zapisovatelná složka pro načítání), aby tak co největší počet uživatelů mohl využívat obsah z Wikimedia Commons.

Pokud je funkce povolena, wikistránka se chová jako jeden z projektů Wikimedia - to znamená, že pokud je volán obrázek (nebo jiný soubor) z Commons, lze jej na wikistránku vložit jako místně načtený soubor pomocí jeho názvu. Názvy místních souborů mají přednost před názvy souborů na Commons.

Nastavení

Výchozí metoda: $wgUseInstantCommons

Pro povolení InstantCommons v MediaWiki (verze 1.16 či pozdější) stačí přidat do Vašeho LocalSettings.php tento řádek (pro další informace se podívejte na stránku $wgUseInstantCommons ):

$wgUseInstantCommons = true;

Klasické InstantCommons s místním ukládáním do mezipaměti

Výchozí InstantCommons, jak je povoleno prostřednictvím $wgUseInstantCommons, používá miniaturní obrázky s hotlinky z Wikimedia.[1] To může být pomalé a může také narušovat ukládání souborů do mezipaměti (nefunkční odkazy). Pokud byste chtěli generovat a používat náhledy na místním serveru, nepoužívejte $wgUseInstantCommons. Místo toho vložte tento kód do LocalSettings.php, jak je popsáno zde: Příručka:$wgForeignFileRepos#Použití.

$wgForeignFileRepos[] = [
	'class' => ForeignAPIRepo::class,
	'name' => 'commonswiki', // Musí to být odlišný název
	'apibase' => 'https://commons.wikimedia.org/w/api.php',
	'hashLevels' => 2,
	'fetchDescription' => true, // Volitelné
	'descriptionCacheExpiry' => 43200, // 12 hodin, volitelné (hodnoty jsou sekundy)
	'apiThumbCacheExpiry' => 86400, // 24 hodin, volitelné, ale nutné pro místní ukládání do mezipaměti palce
];

Použití souborů přes InstantCommons

Obrázek z Wikimedia Commons, vložený do této wiki

Pokud InstantCommons funguje, můžete zvolit kterýkoliv soubor z Wikimedia Commons (v našem případě třeba tento), kliknout na tlačítko "Použít tento soubor" (u tlačítka se nachází ikona ) a zkopírovat kód do své wiki. V našem případě zkopírujeme

[[File:Wikipedia-Marker-commons.svg|thumb|Obrázek z Wikimedia Commons, vložený do této wiki]]

a výsledek se zobrazí jako náhled (jak lze vidět vpravo).

Samozřejmě musíte stále dávat pozor na licenční ujednání či jiné právní požadavky. Více o využívání obsahu mimo projekty Wikimedia se dočtete zde.

Řešení problémů

Běžné velikosti miniatur

Od začátku roku 2026 obrazové servery Wikimedie preferují generování náhledových obrázků s předdefinovanými šířkami. Omezení rychlosti aplikované na velikosti mimo předdefinované šířky je poměrně přísné. The Common thumbnail sizes can be used along with $wgThumbnailSteps to limit the image sizes used in the ‎<img> HTML tags generated by MediaWiki. Pokud jsou tato nastavení aktivní, vaše MediaWiki vygeneruje HTML kód, který přidá libovolné atributy width a height k vygenerovaným tagem ‎<img> a zároveň vybere přesnou shodu nebo další největší šířku z velikostí kroku pro obrázek požadovaný od tagu upload.wikimedia.org. Přidáním $wgThumbnailSteps = [20, 40, 60, 120, 250, 330, 500, 960, 1280, 1920, 3840]; a $wgThumbnailStepsRatio = 1; do LocalSettings.php bude velikost vašeho souboru MediaWiki odpovídat očekávaným rozměrům.

Zásady pro User-Agent

Pokud je vaše wiki omezena Wikimedia Commons, aktualizujte prosím na MediaWiki 1.45.0 (nebo MediaWiki 1.39.14+, 1.43.4+ nebo 1.44.1+), aby splňovala Zásady pro uživatele-agenty.

Od roku 2025 může Wikimedia Commons kategorizovat vaši wiki jako neidentifikovaný původ a omezit nebo blokovat její požadavky. Důvodem je prosazování Zásad pro uživatele-agenty Wikimedia Foundation, jejichž cílem je zmírnit nárůst automatizovaného scrapingu.

Před verzí MediaWiki 1.45 neobsahovala hlavička User-Agent v InstantCommons zdrojovou URL adresu, jak vyžadovaly zásady. Pokud se při používání InstantCommons zobrazí zpráva o omezení rychlosti, aktualizujte prosím na MediaWiki 1.45.0 (nebo MediaWiki 1.39.14+, 1.43.4+ nebo 1.44.1+), která nastavuje kompatibilní hlavičku obsahující URL adresu serveru wiki. Wikiny s vysokou návštěvností mohou navíc muset splňovat požadavky na provoz robotů ověřením rozsahu IP adres serveru.

HTTPS

Od června 2015 je Wikimedia Commons dostupné pouze přes protokol HTTPS. Některé edice mohou postrádat seznam kořenových certifikátů, což znemožňuje spojení MediaWiki s Commons přes HTTPS. Pokud Vám InstantCommons přestalo fungovat, můžete zkusit:

  • Nainstalovat rozšíření php curl. (Je obecně spolehlivější a je pravděpodobné, že bude mít správné certifikáty předinstalovány.) Na Debian/Ubuntu: sudo apt-get install php-curl
  • Ověřte, že máte aktuální seznam kořenových certifikátů. Pokud máte nainstalované rozšíření php curl, následujte instrukce na webaware nebo Talk:InstantCommons#Stop_working.
  • * Ujistěte se, že funkce PHP curl_exec() není na vašem webovém serveru zakázána.

SElinux

Pokud Váš server běží na systému SElinux, přečtěte si příslušný oddíl na stránce nastavení SELinux a zkontrolujte, že HTTPD skripty a moduly mají možnost úspěšně komunikovat se sítí. Pokud SElinux brání HTTPD skriptům a modulům připojit se k úložišti Wikimedia Commons, pak InstantCommons jednoduše nemůže fungovat.

Přístup přes firewall

Pokud je server, na kterém je wiki provozována, ukrytý za firewall, musí mu být umožněno odesílat odchozí http/https požadavky na commons.wikimedia.org a upload.wikimedia.org, jinak Instant Commons nebude fungovat. Rozsah IP adres lze nalézt na wikitech:IP addresses.

Pokud potřebujete použít proxy pro přístup k internetu zpoza firewallu, podívejte se na stránku $wgHTTPProxy .

Související odkazy

Poznámky pod čarou