
![]() | Dieses Modul ist getestet und für den projektweiten Gebrauch geeignet. Es kann in Vorlagen benutzt und auf Hilfeseiten erläutert werden. Entwicklungen an dem Modul sollten auf Unesco/Test und die Anwendung auf der Spielwiese getestet werden, da wiederholte Trial-and-Error-Edits die Resourcen stark belasten können. |
![]() | Dieses Modul benutzt die Wikidata-Eigenschaften:
|
Verwendung
Dieses Modul dient dazu, auf Wikidata Länder- und Kontinent-Informationen von Artikeln auf Wikidata einzusammeln und Links und Kategorien für UNESCO-Vorlagen zu erstellen.
Versionsbezeichnung auf Wikidata: 2023-02-19
Funktionen
function unesco.getImage( file, size, text, country, continent )
Die Funktion liefert die Wikisyntax eines beschrifteten und verlinkten Unesco-Bilds. Sie wird üblicherweise in Lua-Modulen aufgerufen.
file
: Dateiname ohne Namensraum.size
: Bildbreite in Pixeln, ohne „px“.text
: Alternativer Tooltip-Text.nil
bedeutet kein Text.country
: Ländername in der Wiki-Sprache.continent
: Kontinentname in der Wiki-Sprache.
function unesco.unesco( frame )
Diese Funktion liefert ein Indikator-Bild mit einen Link auf den passenden Wikivoyage-Welterbe-Artikel und eine passende Kategorie für den Artikel, in welchem das Modul aufgerufen wird. Die Funktion wird von der Vorlage {{Unesco}} aufgerufen. Die möglichen Parameter sind in der genannten Vorlage beschrieben.
function unesco.getArticleFromWD( frame, catArray )
Diese Funktion liefert den passenden Wikivoyage-Welterbe-Artikel zum Objekt, in dem es aufgerufen wird. Da Wikidata im Regelfall bei Orten Land und Kontinent gepflegt hat, wurde auf eine optionale Parameterübergabe verzichtet. Werden keine Daten gefunden, wird einfach der Welterebe-Hauptartikel ausgegeben. Da das Ergebnis auch in Bildern eingebunden werden kann, wird das Ergebnis ohne Wikisyntax (eckige Klammern) geliefert.
Der erste Parameter ist ein frame
-Objekt oder nil
. Die Funktion kann somit sowohl in Vorlageaufrufen oder in Lua-Modulen benutzt werden. Das frame
-Objekt selbst wird nicht genutzt. Der zweite Parameter ist eine Tabelle zur Aufnahme verwendeter Wikidata-Properties und wird nur in Lua-Modulen verwendet.
Einbindung in anderen Modulen
Dieses Modul wird nicht in anderen Modulen verwendet.
Verwendung in anderen Vorlagen
- {{Unesco}} – Diese Vorlage dient dazu, eine Ortschaft als Unesco-Welterbe auszuweisen. Es liefert ein Indicator-Bild und eine Kategorie.
- {{Symbol Unesco}} – gibt ein UNESCO-Symbol aus. Das Symbol verlinkt zusätzlich auf einen passenden Welterbe-Artikel auf Wikivoyage.
Benötigte weitere Module
- Die obige Dokumentation wurde aus der Seite Modul:Unesco/Doku eingefügt. (bearbeiten | Versionsgeschichte) Die Kategorien für dieses Modul sollten in der Dokumentation eingetragen werden. Die Interwiki-Links sollten auf Wikidata eingepflegt werden.
- Liste der Unterseiten
-- documentation local Unesco = { suite = 'Unesco', serial = '2023-02-19', -- item = 12345678 } -- module import -- require( 'strict' ) local ui = require( 'Module:Unesco/i18n' ) local wu = require( 'Module:Wikidata utilities' ) local yn = require( 'Module:Yesno' ) -- module variable and administration local un = { moduleInterface = Unesco } -- get parameter value local function getParam( args, key ) return args[ ui.params[ key ] ] or args[ key ] end -- get id and label -- in case of the country itself P17 is set, too local function getId( id, property, label ) if id ~= '' then id = wu.getId( id, property ) if id ~= '' then label = label ~= '' and label or mw.wikibase.label( id ) or '' end end return id, label end -- get article name and image title local function getArticle( id, country, continent ) if id == '' then id = mw.wikibase.getEntityIdForCurrentPage() or '' -- article id end id, country = getId( id, ui.properties.country, country ) country = ui.aliases[ country ] or country or '' if country == '' then return ui.articles.default, ui.titles.default, '' end local article = ui.exceptions[ country ] or ui.strings.title:format( country ) -- try to get country article local title = mw.title.new( article ) if title and title.exists then return article, article, country end -- try to get the continent article if continent == '' then id, continent = getId( id, ui.properties.continent, continent ) end article = ui.articles[ continent ] if article then return article .. '#' .. country, ui.titles[ continent ], country end return ui.articles.default, ui.titles.default, country end -- create image with link and title function un.getImage( file, size, text, id, country, continent ) local link, title, country = getArticle( id, country, continent ) return mw.ustring.format( ui.strings.img, file, size, link, text or title ), country end -- getting linked Unesco image for instance for indicators function un.unesco( frame ) local args = frame:getParent().args for key, value in pairs( frame.args ) do if not args[ key ] then args[ key ] = value end end args.id = getParam( args, 'id' ) or '' args.continent = getParam( args, 'continent' ) or '' args.country = getParam( args, 'country' ) or '' args.image = getParam( args, 'image' ) or ui.defaults.image args.size = string.gsub( getParam( args, 'size' ) or '', 'px', '' ) args.text = getParam( args, 'text' ) args.noCateg = yn( getParam( args, 'noCateg' ) or '', false ) if args.image ~= '' then -- delete namespace for i = 1, #ui.strings.fileNS, 1 do args.image = mw.ustring.gsub( args.image, '^' .. ui.strings.fileNS[ i ] .. ':', '' ) end end args.size = tonumber( args.size ) or ui.defaults.size args.image, args.country = un.getImage( args.image, args.size, args.text, args.id, args.country, args.continent ) -- add categories local cat = '' local ns = mw.title.getCurrentTitle().namespace if ns ~= 10 and ns ~= 828 then cat = wu.getCategories( ui.strings.properties ) if args.country ~= '' and not args.noCateg then cat = cat .. mw.ustring.format( ui.strings.category, ui.categories[ args.country ] or mw.ustring.format( ui.strings.isIn, args.country ) ) end end return args.image .. cat end -- getting Unesco heritage article name from Wikidata function un.getArticleFromWD( frame ) return getArticle( '', '', '' ) end return un