Modul:Unesco
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