27.167
Bearbeitungen
(Auslagerung Tabellen-Funktionen in Modul:Attribut/Tabelle) |
(anfangsbuchstabeGross() von Tabellenkopf) |
||
| (10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
local p = {} | local p = {} | ||
local dev = require("Modul:Development") | |||
local str = require("Modul:String") | |||
function p.getAttrAttributes(attr, klasse) | function p.getAttrAttributes(attr, klasse) | ||
-- Kommandozeile zum Debuggen: | |||
-- mw.logObject(p.getAttrAttributes("Ehemals")) | |||
-- mw.logObject(p.getAttrAttributes("BietetKartenzahlung")) | |||
local query = {"[[Attribut:" .. attr .. "]]", | local query = {"[[Attribut:" .. attr .. "]]", | ||
"?Datentyp#-", mainlabel = "-", limit = 1} | "?Datentyp#-", "?EhemalsAttribut", "?Anzeigegenauigkeit", | ||
mainlabel = "-", limit = 1} | |||
query = mw.smw.ask(query) | query = mw.smw.ask(query) | ||
if query ~= nil then | if query ~= nil then | ||
| Zeile 41: | Zeile 48: | ||
-- Mehrzahl von Einzahl von Attribut-Name übernehmen | -- Mehrzahl von Einzahl von Attribut-Name übernehmen | ||
query["Mehrzahl"] = query["Mehrzahl"] or query["Einzahl"] or attr | query["Mehrzahl"] = query["Mehrzahl"] or query["Einzahl"] or attr | ||
query["Einzahl"] = query["Einzahl"] or attr | query["Einzahl"] = query["Einzahl"] or query["Mehrzahl"] or attr | ||
-- Abfrage-String zusammenbauen | |||
query["ValueQuery"] = "?" .. attr | |||
if query["Anzeigeformat"] ~= nil then | |||
query["ValueQuery"] = | |||
query["ValueQuery"] .. "#" .. query["Anzeigeformat"] | |||
end | |||
if query["Einzahl"] ~= attr then | |||
query["ValueQuery"] = | |||
query["ValueQuery"] .. "=" .. | |||
str.anfangsbuchstabeGross(query["Einzahl"]) | |||
end | |||
-- Sonderbehandlung Delimiter | |||
if query["Delimiter"] == "Semikolon" then | |||
query["Delimiter"] = ";" | |||
elseif query["Delimiter"] == "keine Liste" or | |||
(query["Delimiter"] == "Default/leer" and klasse == nil) then | |||
query["Delimiter"] = nil | |||
end | |||
end | end | ||
return query | return query | ||
| Zeile 47: | Zeile 72: | ||
function p.AttrText(frame) -- Attribut-Anzeige-Texte | function p.AttrText(frame) -- Attribut-Anzeige-Texte | ||
local frame, _, args = dev.GetFrameAndParentArgs(frame) | |||
local attr, klasse = args[1], args[2] | |||
return p.attrText(attr, klasse) | |||
end | end | ||
function p.attrText(attr, klasse, mehrzahl) | function p.attrText(attr, klasse, mehrzahl) | ||
local query | local text | ||
if mehrzahl then | local query = p.getAttrAttributes(attr, klasse) | ||
if query == nil then | |||
text = attr | |||
elseif mehrzahl then | |||
text = query["Mehrzahl"] | text = query["Mehrzahl"] | ||
else | else | ||
| Zeile 58: | Zeile 88: | ||
end | end | ||
return text | return text | ||
end | |||
function p.AttrInfo(frame) | |||
local frame, _, args = dev.GetFrameAndParentArgs(frame) | |||
local attr, klasse = args[1], args[2] | |||
local info, delimiter = p.attrInfotextDelimiter(attr, klasse) | |||
if info ~= nil then | |||
info = info .. "." | |||
if delimiter ~= nil then | |||
info = info .. " Mehrere Eintragungen möglich, zu trennen per " .. | |||
delimiter | |||
end | |||
info = string.gsub(info, "%.%.", ".") | |||
info = frame:callParserFunction("#info", info, "note") | |||
end | |||
return info | |||
end | |||
function p.attrInfotextDelimiter(attr, klasse) | |||
local text, delimiter | |||
local query = p.getAttrAttributes(attr, klasse) | |||
if query ~= nil then | |||
text = query["Infotext"] | |||
delimiter = query["Delimiter"] | |||
end | |||
return text, delimiter | |||
end | |||
function p.AttrField(frame) | |||
local t = "" | |||
local frame, _, args = dev.GetFrameAndParentArgs(frame) | |||
local attr, klasse = args[1], args[2] | |||
local query = p.getAttrAttributes(attr, klasse) | |||
t = t .. "{{{field|" .. attr | |||
if query ~= nil and query["FieldArgs"] ~= nil then | |||
t = t .. "|" .. query["FieldArgs"] | |||
end | |||
t = t .. "}}}" | |||
return t | |||
end | |||
function p.AttrValueQuery(frame) -- Attribut-Abfragestring | |||
-- Kommandozeile zum Debuggen: | |||
-- =p.AttrValueQuery{args={"BietetKartenzahlung"}} | |||
local attr = frame.args[1] | |||
local klasse = frame.args[2] | |||
local query = p.getAttrAttributes(attr, klasse) | |||
return query["ValueQuery"] | |||
end | end | ||
return p | return p | ||