24.673
Bearbeitungen
(+ Behandlung leere Vor- und Nachnamen) |
(+ getAttrAttributes(), attrText()) |
||
| Zeile 84: | Zeile 84: | ||
function p.TableFooter(frame) | function p.TableFooter(frame) | ||
return htm.TableFooter(frame) | return htm.TableFooter(frame) | ||
end | |||
function p.getAttrAttributes(attr, klasse) | |||
local query = {"[[Attribut:" .. attr .. "]]", | |||
"?Datentyp#-", mainlabel = "-", limit = 1} | |||
query = mw.smw.ask(query) | |||
if query ~= nil then | |||
query = query[1] | |||
-- subobjects abfragen | |||
local sub_query = {} | |||
for _, k in ipairs{"Default", klasse} do | |||
sub_query[k] = {"[[-has subobject::Attribut:" .. attr .. "]]" .. | |||
"[[SubObjektTyp::AttributKlasse]]" .. | |||
"[[KlassenName::" .. k .."]]", | |||
"?Einzahl", "?Mehrzahl", | |||
"?Delimiter", "?FieldArgs", | |||
"?Infotext", "?Anzeigeformat", | |||
mainlabel = "-", limit = 1} | |||
sub_query[k] = mw.smw.ask(sub_query[k]) or {} | |||
sub_query[k] = sub_query[k][1] or {} | |||
end | |||
-- defaults in klasse integrieren | |||
if klasse ~= nil then | |||
for a, _ in pairs(sub_query["Default"]) do | |||
if a ~= "Einzahl" and a ~= "Mehrzahl" then -- Sonderbehandlung Einzahl/Mehrzahl ausschließen | |||
sub_query[klasse][a] = | |||
sub_query[klasse][a] or sub_query["Default"][a] | |||
end | |||
end | |||
-- Sonderbehandlung Einzahl/Mehrzahl | |||
if sub_query[klasse]["Einzahl"] == nil and | |||
sub_query[klasse]["Mehrzahl"] == nil then | |||
sub_query[klasse]["Einzahl"] = sub_query["Default"]["Einzahl"] | |||
sub_query[klasse]["Mehrzahl"] = sub_query["Default"]["Mehrzahl"] | |||
end | |||
end | |||
-- subobject in query integrieren | |||
for a, v in pairs(sub_query[klasse or "Default"]) do | |||
query[a] = v | |||
end | |||
-- Mehrzahl von Einzahl von Attribut-Name übernehmen | |||
query["Mehrzahl"] = query["Mehrzahl"] or query["Einzahl"] or attr | |||
query["Einzahl"] = query["Einzahl"] or attr | |||
end | |||
return query | |||
end | |||
function p.attrText(attr, klasse, mehrzahl) | |||
local query, text = p.getAttrAttributes(attr, klasse) | |||
if mehrzahl then | |||
text = query["Mehrzahl"] | |||
else | |||
text = query["Einzahl"] | |||
end | |||
return text | |||
end | end | ||
return p | return p | ||