„Modul:Infobox” változatai közötti eltérés
[ellenőrzött változat] | [ellenőrzött változat] |
Tartalom törölve Tartalom hozzáadva
wd-entity paraméter koordinátáknál is |
a Visszaállítottam a lap korábbi változatát Tacsipacsi (vita) szerkesztéséről JulesWinnfield-hu szerkesztésére Címke: Visszaállítás |
||
1. sor: | 1. sor: | ||
require"Modul:No globals" |
require"Modul:No globals" |
||
local getArgs = require"Modul:Arguments".getArgs |
local getArgs = require"Modul:Arguments".getArgs |
||
⚫ | |||
local p = {} |
local p = {} |
||
p |
p["ország"] = function (frame) |
||
args = getArgs( |
local args = getArgs(frame, { wrappers = "Sablon:Infobox/Ország" }) |
||
⚫ | |||
local val, label, group, undertag |
|||
val = args[1] |
|||
⚫ | |||
return nil |
return nil |
||
end |
end |
||
local function countryRow(value) |
|||
⚫ | |||
⚫ | |||
label = '[[' .. args[3] .. '|' .. args[2] .. ']]' |
|||
:tag"td" |
|||
else |
|||
:css("vertical-align", "top") |
|||
label = args[2] |
|||
⚫ | |||
⚫ | |||
:tag"td" |
|||
⚫ | |||
:allDone() |
|||
) |
|||
end |
end |
||
local country, size = args[1], args[4] |
|||
if country then |
|||
undertag = not (not args['címke alatt']) |
|||
return countryRow(frame:expandTemplate{ title = "Zászló2", args = { country, size = size } }) |
|||
local row = mw.html.create('tr') |
|||
⚫ | |||
row:addClass( 'csoport-' .. tostring(group) ) |
|||
end |
end |
||
local |
local item = mw.wikibase.getEntity() |
||
⚫ | |||
labeltag:addClass(undertag and 'cimkealatt' or 'cimke') |
|||
⚫ | |||
⚫ | |||
labeltag:css('font-weight', 'bolder') |
|||
end |
end |
||
local countries = {} |
|||
labeltag:wikitext(label) |
|||
for _, s in ipairs(item:getBestStatements"P17") do |
|||
labeltag:done() |
|||
table.insert(countries, frame:expandTemplate{ title = "Zászló2", args = { |
|||
local valtag = row:tag('td') |
|||
wd.formatStatement(s, { link = "nem" }), size = size } }) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
return countryRow(table.concat(countries, "<br>")) |
|||
end |
end |
||
p[" |
p["kép"] = function (frame) |
||
local args = getArgs(frame, { |
local args = getArgs(frame, {wrappers = "Sablon:Infobox/Kép"}) |
||
⚫ | |||
if args[1] == "-" then |
if args[1] == "-" then |
||
return nil |
return nil |
||
end |
end |
||
⚫ | |||
return p.row{ |
|||
⚫ | |||
cdata{ [1] = args[1], ['size'] = args[4] }, |
|||
⚫ | |||
⚫ | |||
} |
|||
end |
|||
p.image = function (filename, legend, property, entityId) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
if (not filename) and property then |
|||
⚫ | |||
if not item then |
if not item then |
||
return |
return nil |
||
end |
end |
||
local image = item:getBestStatements( |
local image = item:getBestStatements(args["wd-property"])[1] |
||
if image and image.mainsnak.snaktype == |
if image and image.mainsnak.snaktype == "value" then |
||
filename = image.mainsnak.datavalue.value |
filename = image.mainsnak.datavalue.value |
||
legend = nil |
legend = nil |
||
if image.qualifiers and image.qualifiers.P2096 then |
if image.qualifiers and image.qualifiers.P2096 then |
||
for _, snak in ipairs(image.qualifiers.P2096) do |
for _, snak in ipairs(image.qualifiers.P2096) do |
||
if snak.snaktype == |
if snak.snaktype == "value" then |
||
if snak.datavalue.value.language == |
if snak.datavalue.value.language == "hu" then |
||
legend = snak.datavalue.value.text |
legend = snak.datavalue.value.text |
||
elseif snak.datavalue.value.language == |
elseif snak.datavalue.value.language == "en" and not legend then |
||
legend = snak.datavalue.value.text |
legend = snak.datavalue.value.text |
||
end |
end |
||
72. sor: | 67. sor: | ||
end |
end |
||
else |
else |
||
return |
return nil |
||
end |
|||
⚫ | |||
return filename, legend |
|||
end |
|||
p["kép"] = function (frame) |
|||
local args = getArgs(frame, {wrappers = "Sablon:Infobox/Kép"}) |
|||
⚫ | |||
if not filename then |
|||
⚫ | |||
end |
|||
local filesize = args[2] |
|||
if not filesize then |
|||
local title = mw.title.new('Media:' .. filename) |
|||
if ( |
|||
title and title.file.width and title.file.width < 250 |
|||
and title.file.mimeType ~= 'image/svg' and title.file.mimeType ~= 'image/svg+xml' |
|||
) then |
|||
filesize = title.file.width |
|||
else |
|||
filesize = 250 |
|||
end |
end |
||
filesize = tostring(filesize) .. 'px' |
|||
end |
end |
||
local link = "[[Fájl:" .. filename .. "|" .. |
local link = "[[Fájl:" .. filename .. "|" .. (args[2] or "250px") |
||
if legend then |
if legend then |
||
link = link .. "|" .. legend |
link = link .. "|" .. legend |
||
161. sor: | 134. sor: | ||
return nil |
return nil |
||
end |
end |
||
return |
return frame:expandTemplate{title = 'Koord', args = coorArgs} |
||
end |
end |
||
196. sor: | 169. sor: | ||
end |
end |
||
else |
else |
||
local item = mw.wikibase.getEntity( |
local item = mw.wikibase.getEntity() |
||
if item and item.claims and item.claims.P625 then |
if item and item.claims and item.claims.P625 then |
||
mapArgs.lat = item.claims.P625[1].mainsnak.datavalue.value.latitude |
mapArgs.lat = item.claims.P625[1].mainsnak.datavalue.value.latitude |
||
249. sor: | 222. sor: | ||
end |
end |
||
if not args[1] or not args[5] then |
if not args[1] or not args[5] then |
||
local item = mw.wikibase.getEntity( |
local item = mw.wikibase.getEntity() |
||
if item and item.claims and item.claims.P625 then |
if item and item.claims and item.claims.P625 then |
||
args.lat = item.claims.P625[1].mainsnak.datavalue.value.latitude |
args.lat = item.claims.P625[1].mainsnak.datavalue.value.latitude |
A lap 2018. augusztus 17., 12:48-kori változata
Infobox[mi ez?] • [dokumentáció: mutat, ] • [tesztek: létrehozás]
Függ az alábbi moduloktól: |
A megvalósított sablonok dokumentációját lásd a Sablon:Infobox lapon.
require"Modul:No globals"
local getArgs = require"Modul:Arguments".getArgs
local wd = require"Modul:Wikidata"
local p = {}
p["ország"] = function (frame)
local args = getArgs(frame, { wrappers = "Sablon:Infobox/Ország" })
if args[1] == "-" then
return nil
end
local function countryRow(value)
return tostring(mw.html.create"tr"
:tag"td"
:css("vertical-align", "top")
:wikitext"'''Ország'''"
:done()
:tag"td"
:wikitext(value)
:allDone()
)
end
local country, size = args[1], args[4]
if country then
return countryRow(frame:expandTemplate{ title = "Zászló2", args = { country, size = size } })
end
local item = mw.wikibase.getEntity()
if not item then
return nil
end
local countries = {}
for _, s in ipairs(item:getBestStatements"P17") do
table.insert(countries, frame:expandTemplate{ title = "Zászló2", args = {
wd.formatStatement(s, { link = "nem" }), size = size } })
end
if #countries == 0 then
return nil
end
return countryRow(table.concat(countries, "<br>"))
end
p["kép"] = function (frame)
local args = getArgs(frame, {wrappers = "Sablon:Infobox/Kép"})
if args[1] == "-" then
return nil
end
local filename, legend = args[1], args[3]
if not filename then
local item = mw.wikibase.getEntity()
if not item then
return nil
end
local image = item:getBestStatements(args["wd-property"])[1]
if image and image.mainsnak.snaktype == "value" then
filename = image.mainsnak.datavalue.value
legend = nil
if image.qualifiers and image.qualifiers.P2096 then
for _, snak in ipairs(image.qualifiers.P2096) do
if snak.snaktype == "value" then
if snak.datavalue.value.language == "hu" then
legend = snak.datavalue.value.text
elseif snak.datavalue.value.language == "en" and not legend then
legend = snak.datavalue.value.text
end
end
end
end
else
return nil
end
end
local link = "[[Fájl:" .. filename .. "|" .. (args[2] or "250px")
if legend then
link = link .. "|" .. legend
end
link = link .. "]]"
local result = tostring(mw.html.create"tr"
:tag"td"
:attr("colspan", "2")
:css("text-align", "center")
:wikitext(link)
:allDone()
)
if legend then
result = result .. tostring(mw.html.create"tr"
:tag"td"
:attr("colspan", "2")
:css("text-align", "center")
:css("font-size", "92%")
:wikitext(legend)
:allDone()
)
end
return result
end
local function coordRow(coordinatesLink)
return '<tr><td colspan="2" style="text-align:center">' .. coordinatesLink .. '</td></tr>'
end
--[[
Helyi értékű paramétereket átalakítja szám szerinti paraméterekké.
Modul:Pozíciós térkép-ből is.
--]]
function p.coord(frame, args)
local coorArgs = {args[9], display = args.display, format = 'dms'}
if args[1] and args[5] then
local hemisphereMultipliers = {
longitude = { W = -1, w = -1, E = 1, e = 1, NY = -1, Ny = -1, ny = -1, K = 1, k = 1 },
latitude = { S = -1, s = -1, N = 1, n = 1, D = -1, d = -1, ['É'] = 1, ['é'] = 1 }
}
table.insert(coorArgs, 1, hemisphereMultipliers.latitude[args[4]] and args[4] or 'N')
table.insert(coorArgs, 2, hemisphereMultipliers.longitude[args[8]] and args[8] or 'E')
table.insert(coorArgs, 1, args[1])
table.insert(coorArgs, 3, args[5])
if args[2] and args[6] then
table.insert(coorArgs, 2, args[2])
table.insert(coorArgs, 5, args[6])
if args[3] and args[7] then
table.insert(coorArgs, 3, args[3])
table.insert(coorArgs, 7, args[7])
end
else
if not args[4] or not args[8] then
table.remove(coorArgs, 4)
table.remove(coorArgs, 2)
end
end
elseif args.lat and args.long then
table.insert(coorArgs, 1, args.lat)
table.insert(coorArgs, 2, args.long)
coorArgs.precision = 'wikidata'
else
return nil
end
return frame:expandTemplate{title = 'Koord', args = coorArgs}
end
p["pozíciós térkép"] = function (frame)
local args = getArgs(frame, {wrappers = "Sablon:Infobox/Pozíciós térkép"})
if args[4] == '-' or args[8] == '-' then
return nil
end
local mapArgs = {
args[1],
['felirat'] = "'''" .. (args[2] ~= '{{{név}}}' and args[2] or require'Modul:String'.simpletitle{args = {}}) .. "'''",
['keret'] = 'none',
['felirat pozíciója'] = args[3],
['jel'] = args.jel or 'Green pog.svg',
['felirat mérete'] = '100',
['méret'] = '248',
['igazítás'] = 'none',
['térképtípus'] = args['térképtípus'],
['meta'] = args.meta,
['jel mérete'] = args['jel mérete']
}
if args[4] and args[8] then
mapArgs['szélesség'] = args[7]
mapArgs['hosszúság'] = args[11]
mapArgs['szélességi fok'] = args[4]
mapArgs['hosszúsági fok'] = args[8]
if args[5] and args[9] then
mapArgs['szélességi ívperc'] = args[5]
mapArgs['hosszúsági ívperc'] = args[9]
if args[6] and args[10] then
mapArgs['szélességi ívmásodperc'] = args[6]
mapArgs['hosszúsági ívmásodperc'] = args[10]
end
end
else
local item = mw.wikibase.getEntity()
if item and item.claims and item.claims.P625 then
mapArgs.lat = item.claims.P625[1].mainsnak.datavalue.value.latitude
mapArgs.long = item.claims.P625[1].mainsnak.datavalue.value.longitude
else
return nil
end
end
local result = {}
local trackWikidata = false
if not args[1] then
if not args['koordinátakategória nélkül'] then
table.insert(result, '[[Kategória:Koordináták térkép nélkül]]')
end
elseif args[1] ~= '-' then
local title = mw.title.new('Sablon:Pozíciós térkép ' .. args[1])
if title and title.exists then
local success, map = pcall(require'Modul:Pozíciós térkép'.many, frame, mapArgs)
if not success then
map = '<strong class="error">' .. map .. '</strong>[[Kategória:Hibásan használt pozícióstérkép-sablonok]]'
else
trackWikidata = true
end
table.insert(result, '<tr><td colspan="2" align="center">' .. map .. '</td></tr>\n')
else
table.insert(result, '[[Kategória:Pozíciós térképet hiányoló lapok]]')
end
end
if args['koordináta a térkép alatt'] then
table.insert(result, coordRow(p.coord(frame, {args[4], args[5], args[6], args[7],
args[8], args[9], args[10], args[11], args.meta, display = args['koordináta a cím alatt'] and 'inline,title',
lat = mapArgs.lat, long = mapArgs.long})))
trackWikidata = true
elseif args['koordináta a cím alatt'] then
table.insert(result, p.coord(frame, {args[4], args[5], args[6], args[7],
args[8], args[9], args[10], args[11], args.meta, display = 'title',
lat = mapArgs.lat, long = mapArgs.long}))
trackWikidata = true
end
if trackWikidata and mapArgs.lat then
table.insert(result, '[[Kategória:Wikidata koordinátákat használó lapok]]')
end
return table.concat(result)
end
p["koordináta"] = function (frame)
local args = getArgs(frame, {wrappers = "Sablon:Infobox/Koordináta"})
if args[1] == '-' or args[5] == '-' then
return nil
end
if not args[1] or not args[5] then
local item = mw.wikibase.getEntity()
if item and item.claims and item.claims.P625 then
args.lat = item.claims.P625[1].mainsnak.datavalue.value.latitude
args.long = item.claims.P625[1].mainsnak.datavalue.value.longitude
else
return nil
end
end
return coordRow(p.coord(frame, args))
end
return p