Modul:Attribut: Unterschied zwischen den Versionen

Aus FürthWiki

anfangsbuchstabeGross() von Tabellenkopf
(mw.logObject)
(anfangsbuchstabeGross() von Tabellenkopf)
 
(9 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
return p.attrText(frame.args[1], frame.args[2])
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)
mw.log("attrText(attr, klasse, mehrzahl)")
local text
mw.logObject(attr, "attr")
local query = p.getAttrAttributes(attr, klasse)
mw.logObject(klasse, "klasse")
if query == nil then
mw.logObject(mehrzahl, "mehrzahl")
text = attr
local query, text = p.getAttrAttributes(attr, klasse)
elseif mehrzahl then
if mehrzahl then
text = query["Mehrzahl"]
text = query["Mehrzahl"]
else
else
Zeile 62: 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