[voir] [modifier] [historique] [purger]
See also
[modifier le wikicode]La documentation de ce module est générée par le modèle {{Documentation}}.
Elle est incluse depuis la page Module:MapLink/doc. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
--[[ Source script: https://it.wikivoyage.org/wiki/Modulo:MapLink Maintainer: Andyrom75 ]] local WDI = require('Module:WikidataIB') local i18n = require( 'Module:MapLink/i18n' ) local function _isDefined(s) return s ~= '' and s end local function _toNumber(s) if type(s) == 'number' then return s end if type(s) == 'string' then local n = tonumber(s) return n end return nil end local function _getQid(qid, pid) if not _isDefined(qid) then return nil end local res = WDI._followQid{ qid = qid, props = pid, all = false -- ritorna solo il primo valore } -- Nota: Se non trova valori per 'props', restituisce il qid di input. -- Trattiamo questo caso come "nessun valore" -> nil. if res == qid then return nil end return res end local function _getCountryQid(listingQid) -- 1) prova dal listing (se fornito) local countryQid = listingQid and _getQid(listingQid, 'P17') or nil if countryQid then return countryQid end -- 2) fallback logico: QID della pagina corrente local pageQid = mw.wikibase.getEntityIdForCurrentPage() if pageQid then countryQid = _getQid(pageQid, 'P17') end return countryQid end local function _MapLink(frame) local args = frame.args local lat = args and args.lat and _toNumber(args.lat) -- se args.lat == NA => lat = nil local long = args and args.long and _toNumber(args.long) -- se args.long == NA => long = nil if _isDefined(lat) and _isDefined(long) then args.map = string.lower(args.map) local icon = i18n.icons[args.map] local link = i18n.links[args.map] local msg = i18n.msg[args.map] local size = i18n.sizes[args.map] if _isDefined(icon) and _isDefined(link) and _isDefined(msg) then local countryQid = _getCountryQid(args.wikidata) local blockedCountries = i18n.blockedCountries[args.map] or {} if countryQid and blockedCountries[countryQid] then return '' else return ' [[File:' .. icon .. '|' .. size .. '|class=listing-sister-' .. args.map .. '|link=' .. link .. lat .. ','.. long ..'|' .. msg .. ']]' end end end return '' end local p = {} function p.MapLinkTemplate(frame) return _MapLink(frame:getParent()) end function p.MapLinkInvoke(frame) return _MapLink(frame) end function p.MapLinkModule(frame) local Cframe = mw.getCurrentFrame() Cframe.args = frame.args return _MapLink(Cframe) end return p 
French
Deutsch