Návod:Interwiki
Interwiki odkazy jsou odkazy na stránky z jiných projektů, které kombinují interní odkazy s prefixy.
Těmito odkazy můžete prolinkovat svoji vlastní wiki se stránkami z Wikipedie, Wikiknih, Wikinews, aj. v různých jazycích. (Viz Manual:Wiki family .)
Odkaz jako [[Wikipedia:Main Page]]
se objeví takto: Wikipedia:Main Page a přesměruje vás na hlavní stránku Wikipedie.
Interwiki odkazy na jiné projekty
Tabulka a dotaz API
Odkazy Interwiki jsou hostovány v tabulce interwiki v databázi MediaWiki.
Seznam interwiki můžete načíst z vlastnosti interwikimap meta dotazu API siteinfo , jinými slovy vytvořením požadavku API jako
api.php?action=query&meta=siteinfo&siprop=interwikimap
Výchozí
Několik projektů Wikimedia (a dalších) je ve výchozím nastavení připraveno pro propojení interwiki, takže je můžete použít bez úprav databáze.
Následuje několik příkladů předpon interwiki, které jsou standardně dostupné (Wikipedia je má k dispozici také od verze 1.10 a mladší):
předpona | cílová adresa URL | příklad použití |
---|---|---|
commons | https://commons.wikimedia.org/wiki/ | [[commons:MediaWiki]]
|
mediazilla | http://bugzilla.wikimedia.org/ | [[mediazilla:1209]]
|
metawikimedia (before version 1.23: metawikipedia) | https://meta.wikimedia.org/wiki/ | [[metawikimedia:Main Page]]
|
Úplný seznam výchozích předpon interwiki je k dispozici na maintenance/interwiki.list
Úplné informace o propojení z / do projektů Wikimedia najdete v m:Help:Interwiki linking.
[[metawikipedia:Main Page]]
.Přidání nového webu pro propojení interwiki
- Interwiki odkazy jsou nastaveny v tabulce
interwiki
databáze. - Chcete-li je upravit, budete muset upravit databázi, jak je uvedeno níže.
Doporučuje se použít rozšíření "Interwiki", které proces usnadňuje.
Protože Wikipedia není před verzí 1.10 ve výchozím nastavení nastavena, můžete ji přidat (a další projekty, které si přejete).
Níže uvedené příklady ukazují, jak nastavit w:
jako odkaz na anglickou Wikipedii.
Záměrem je vložit řádek do formuláře:
('prefix', 'URL format string', 1, 0)
do tabulky interwiki
.
Jeden řádek
Pokročilí uživatelé mohou používat jeden příkazový řádek takto:
- MySQL a PostgreSQL
MediaWiki versions: | 1.10 – 1.16 |
INSERT INTO interwiki (iw_prefix, iw_url, iw_local, iw_trans) VALUES ('w', 'https://en.wikipedia.org/wiki/$1', 1, 0);
Novější verze MediaWiki vyžadují některá další pole, například iw_wikiid
.
Export, přidání, opětovný import
Případně můžete použít následující vícekrokový proces, který exportuje tabulku interwiki
, přidá řádek a znovu jej importuje:
- Exportujte tabulku databáze
interwiki
- na konec tabulky přidejte řádek následujícího formuláře (jako příklad použijte anglickou wikipedii):
('w', 'https://en.wikipedia.org/wiki/$1', 1, 0);
- Importujte tabulku databáze
interwiki
Testování
Testování konfigurace:
- Přejděte na svůj web,
- vytvořte článek s následujícím obsahem:
[[w:Wikipedia:Village pump|]]
- To by mělo zobrazovat odkaz na stránku 'Village pump' na en.Wikipedia.org (url
https://en.wikipedia.org/wiki/Wikipedia:Village_pump
)
Dokumentace polí
Podrobně jsou pole databázové tabulky interwiki
následující:
iw_prefix
: vyberte předponu, která se používá pro propojení interwiki, např. „wikipedia“ pro odkaz na Wikipedii.- Předpony musí být malými písmeny.
iw_url
: zadejte adresu URL projektu, např.https://en.wikipedia.org/wiki/$1
pro Wikipedii. Nezapomeňte na$1
, protože je nahrazen názvem článku, na který odkazujete ([[Wikipedia:Main Page]]
odkazy nahttps://en.wikipedia.org/wiki/Main_Page
).- Pokud je iw_url binární pole BLOB (verze SVN, ale vyskytuje se také ve verzi 1.11.0, chyba?), nebude to fungovat přímo. Musíte jej zadat jako binární. Existují dvě možná řešení: 1. Uložte adresu URL do prostého textového souboru a poté ji importujte pomocí phpmyadmin. 2. Můžete přímo zadat dotaz SQL.
iw_local
: Pokud 1, vaše wiki přesměruje i externí odkazy ve tvaru iw_prefix:title, nejen ty z vlastních stránek; potřebujete to, pokud chcete použít funkci přesměrování mimo vaši wiki nebo jinou wiki, použijte vaše transwiki funkce pro vnořené transwiki odkazy (jako w:en:fr:Wikipédia:Accueil). Viz m:Help:Interwiki linking#Non-local interwikis. Vyžaduje, aby byl viw_url
specifikován protokol.iw_trans
: "transwiki transclusion" - nastaveno na 1, pokud chcete používat stránky z druhé wiki jako šablony. Budete také muset nastavit $wgEnableScaryTranscluding = true ve svých LocalSettings.php. Vyžaduje to protokol, který bude uveden viw_url
.iw_api
: URL na MediaWiki API, např.nowiki>https://en.wikipedia.org/w/api.php</nowiki>
(volitelné).iw_wikiid
: Název databáze wiki (je-li lokálně přístupný). Může být použit (později?) Pro transwiki interwiki. (volitelný)
Tip pro správce wiki: Několik stránek nápovědy odkazuje na Manual jmenný prostor MediaWiki.org. Chcete-li, aby tyto odkazy fungovaly na vaší místní wiki, přidejte odkaz na interwiki s iw_prefix=manual a iw_url=http://www.mediawiki.org/wiki/Manual:$1
Tip pro správce wiki: $wgTranscludeCacheExpiry ve vašem LocalSettings.php by mělo být nastaveno, pokud jsou provedeny změny v přenesené wiki. Alternativně můžete vyčistit plochu transcache na místní wiki.
Interwiki odkazy na jiné jazykové verze
Pokud jste nainstalovali Wiki family , můžete odkazovat z článku v angličtině na článek v němčině (pokud máte i německý projekt). Můžete nastavit MediaWiki, aby tyto odkazy zobrazoval na postranním panelu, hned pod panelem nástrojů.
Ve vašem souborovém systému je podsložka vaší instalace MediaWiki, nazvaná "jazyky".
Jděte tam a podívejte se na "Names.php
". Obsahuje seznam známých jazyků a jejich předpony.
Např. chcete přidat svůj německý projekt, hledejte „Names.php
“ pro „Deutsch“ a poznamenejte si předponu „de“.
Pokud znáte správnou předponu, upravte svou databázi přidáním nového řádku do tabulky interwiki
:
iw_prefix
: prefix jazyka (např. "de" pro němčinu), který je uveden v "Names.php
"iw_url
: URL na váš projekt wiki (např.http://de.example.org/index.php/$1
)iw_local
: stejné jako výše "Přidání dalších"iw_trans
: stejné jako výše "Přidání dalších"
Nyní můžete propojit článek se stejným v jiných jazycích.
Přidáním <nowicki></nowiki>
na svou anglickou Main_Page vytvoří odkaz „Deutsch“ pod panelem nástrojů, což vede k Main_Page německé wiki (Hauptseite) .
Tento odkaz je zobrazen v části postranního panelu, pouze, nikoli uvnitř článku.
Pokud chcete vytvořit odkaz uvnitř textu, musíte přidat před dvojtečku před: [[:de:Hauptseite]]
nebo nastavit $wgInterwikiMagic na false .
Export tabulky interwiki z wiki
Následující kód JavaScript provede dotaz API k načtení mapy interwiki existující wiki a poté zobrazí příkazy SQL INSERT, aby vyplnily tabulku interwiki na nové wiki. Spustíte jej například vložením kódu pomocí vývojových nástrojů vašeho prohlížeče nebo umístěním do Special:MyPage/skinname.js a náhledu.
function ExtractInterwikiMapTable() {
$.getJSON(mw.config.get('wgScriptPath') + '/api.php?action=query&meta=siteinfo&siprop=interwikimap&format=json', function(data) {
var iw_prefix, iw_url, iw_local, iw_api, re_escape = /(')/g, result = '';
for (var i = 0, iwm = data.query.interwikimap; i < iwm.length; i++) {
iw_prefix = "'" + iwm[i].prefix.replace(re_escape, '\\$1') + "'";
iw_url = "'" + iwm[i].url.replace(re_escape, '\\$1') + "'";
iw_local = (typeof iwm[i].local == 'string') ? '1' : '0';
iw_api = "'" + (iwm[i].iw_api || '').replace(re_escape, '\\$1') + "'";
result += 'INSERT INTO interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api) VALUES ('+iw_prefix+', '+iw_url+', '+iw_local+', 0, '+iw_api+');\n'
}
$('<textarea style="width:800px;height:400px;"/>').val(result).appendTo(document.body);
});
}
$(ExtractInterwikiMapTable);