Modul:Vorlage:Auflistung: Unterschied zwischen den Versionen
Modul:Vorlage:Auflistung (Quelltext anzeigen)
Version vom 25. Oktober 2020, 17:45 Uhr
, vor 5 Jahren2020-10-23
(2020-10-22) |
(2020-10-23) |
||
| Zeile 1: | Zeile 1: | ||
local HorizontalList = { suite = "HorizontalList", | local HorizontalList = { suite = "HorizontalList", | ||
serial = "2020-10- | serial = "2020-10-23", | ||
item = 0 } | item = 0 } | ||
-- Horizontal list of items by HTML/CSS list | -- Horizontal list of items by HTML/CSS list | ||
| Zeile 6: | Zeile 6: | ||
local CSS = { classesBlock = { }, | local CSS = { classesBlock = { }, | ||
classesSep = { } } | |||
local Failsafe = HorizontalList | |||
| Zeile 196: | Zeile 197: | ||
end | end | ||
end -- HorizontalList.first() | end -- HorizontalList.first() | ||
Failsafe.failsafe = function ( atleast ) | |||
-- Retrieve versioning and check for compliance | |||
-- Precondition: | |||
-- atleast -- string, with required version | |||
-- or "wikidata" or "~" or "@" or false | |||
-- Postcondition: | |||
-- Returns string -- with queried version/item, also if problem | |||
-- false -- if appropriate | |||
-- 2020-08-17 | |||
local since = atleast | |||
local last = ( since == "~" ) | |||
local linked = ( since == "@" ) | |||
local link = ( since == "item" ) | |||
local r | |||
if last or link or linked or since == "wikidata" then | |||
local item = Failsafe.item | |||
since = false | |||
if type( item ) == "number" and item > 0 then | |||
local suited = string.format( "Q%d", item ) | |||
if link then | |||
r = suited | |||
else | |||
local entity = mw.wikibase.getEntity( suited ) | |||
if type( entity ) == "table" then | |||
local seek = Failsafe.serialProperty or "P348" | |||
local vsn = entity:formatPropertyValues( seek ) | |||
if type( vsn ) == "table" and | |||
type( vsn.value ) == "string" and | |||
vsn.value ~= "" then | |||
if last and vsn.value == Failsafe.serial then | |||
r = false | |||
elseif linked then | |||
if mw.title.getCurrentTitle().prefixedText | |||
== mw.wikibase.getSitelink( suited ) then | |||
r = false | |||
else | |||
r = suited | |||
end | |||
else | |||
r = vsn.value | |||
end | |||
end | |||
end | |||
end | |||
end | |||
end | |||
if type( r ) == "nil" then | |||
if not since or since <= Failsafe.serial then | |||
r = Failsafe.serial | |||
else | |||
r = false | |||
end | |||
end | |||
return r | |||
end -- Failsafe.failsafe() | |||
| Zeile 212: | Zeile 271: | ||
frame ) | frame ) | ||
end -- p.f | end -- p.f | ||
p.failsafe = function ( frame ) | |||
-- Versioning interface | |||
local s = type( frame ) | |||
local since | |||
if s == "table" then | |||
since = frame.args[ 1 ] | |||
elseif s == "string" then | |||
since = frame | |||
end | |||
if since then | |||
since = mw.text.trim( since ) | |||
if since == "" then | |||
since = false | |||
end | |||
end | |||
return Failsafe.failsafe( since ) or "" | |||
end -- p.failsafe | |||
p.HorizontalList = function () | p.HorizontalList = function () | ||