Modul:Faktenbox: Unterschied zwischen den Versionen

Änderung 754478 von HeikoBot (Diskussion) rückgängig gemacht.
(p.zeile() Optimierungen)
Markierung: Zurückgesetzt
(Änderung 754478 von HeikoBot (Diskussion) rückgängig gemacht.)
Markierung: Rückgängigmachung
Zeile 9: Zeile 9:
local lfd = require("Modul:LinkFormDatum")
local lfd = require("Modul:LinkFormDatum")


local attr_text_anzeige = {
local attr_text = {
["TeilDesEnsembles"]="Teil des Ensembles",
["TeilDesEnsembles"]="Teil des Ensembles",
["TeilDesAreals"]="Teil des Areals",
["TeilDesAreals"]="Teil des Areals",
Zeile 50: Zeile 50:
p.bildTab(fbdata) ..
p.bildTab(fbdata) ..
p.kartenTab(fbdata) ..
p.kartenTab(fbdata) ..
p.datenUniversalTab(fbdata) ..
p.datenTabUniversal(fbdata) ..
"</tabs></div>"
"</tabs></div>"


Zeile 64: Zeile 64:
end
end


function p.datenUniversalTab(fbdata)
function p.datenTabUniversal(fbdata)
-- mw.log("datenUniversalTab(fbdata)")
-- mw.log("datenTab(fbdata)")
-- mw.logObject(fbdata)
-- mw.logObject(fbdata)
-- Konsolenzeile zum Debuggen (Achtung! Bug in Fehlerbereinigungskonsole! Kann nur 1x ausgeführt werden!):
-- Konsolenzeile zum Debuggen (Achtung! Bug in Fehlerbereinigungskonsole! Kann nur 1x ausgeführt werden!):
Zeile 311: Zeile 311:
local t = ""
local t = ""
for _, a in ipairs(attr_names) do
for _, a in ipairs(attr_names) do
t = t .. p.zeile{fbdata=fbdata, attr_name=a}
t = t .. p.zeile{attr_name=a, attr_text=attr_text[a], val=fbdata.pargs[a]}
end
end
-- mw.log("t = " .. t)
-- mw.log("t = " .. t)
Zeile 321: Zeile 321:
-- mw.logObject(args)
-- mw.logObject(args)
-- Konsolenzeile zum Debuggen:
-- Konsolenzeile zum Debuggen:
-- =p.zeile{attr_name="Vorgänger",attr_text="t",fbdata={pargs={["Vorgänger"]="; v11 , V12 ; v13 (a(b))"}},attr_val="; v1 ; v2, v3 (a(b))",val_prefix="pre",val_postfix="post",exclude_bracket_values=true,val_is_list=true, delimiter=","}
-- =p.zeile{attr_name="n",attr_text="t",val="; v1 ; v2 (a(b))",val_prefix="pre",val_postfix="post",exclude_bracket_values=true}
local t = ""
local t = ""
-- Attribut-Name/Wert aufbereiten (splitten, in table umwandeln)
if mw.smw.getPropertyType(args.attr_name) ~= nil then
local attr_name = args.attr_name
local val = args.val or ""
local attr_val = args.attr_val or (args.fbdata.pargs[attr_name] or {})
if type(val) ~= "table" then
if type(attr_val) ~= "table" then -- Liste in table umwandeln/zerteilen
val = str.splitAndStrip(val, ";")
if args.delimiter ~= nil or args.val_is_list == nil or args.val_is_list == true then -- default ist trennen mit Semikolon
attr_val = str.splitAndStrip(attr_val, args.delimiter or ";")
else
attr_val = { attr_val }
end
end
end
if #val > 0 then
-- Zeile zusammenbauen
local attr_text
if #attr_val > 0 then
if args.attr_text ~= nil then
-- Attribut-Text ermitteln und in Zeile übernehmen
attr_text = args.attr_text
local attr_text = args.attr_text or (attr_text_anzeige[attr_name] or attr_name)
elseif #val > 1 then
if #attr_val > 1 then
attr_text = mez.mehrzahl(args.attr_name)
attr_text = mez.mehrzahl(attr_text) -- Mehrzahl
else
end
attr_text = args.attr_name
t = t .. "<dt>" .. "[[Attribut:" .. attr_name .. "|" .. attr_text .. "]]</dt>"
end
-- Attribut-Werte in Zeile übernehmen
t = t .. "<dt>" .. "[[Attribut:" .. args.attr_name .. "|" .. attr_text .. "]]</dt><dd>"
t = t .. "<dd>"
if args.val_prefix ~= nil then
if args.val_prefix ~= nil then
t = t .. args.val_prefix .. " "
t = t .. args.val_prefix .. " " -- Prefix
end
for idx, val in ipairs(attr_val) do -- Werte-Liste
if idx > 1 then
t = t .. ", " -- Listen-Kommata
end
end
local val_bracket = ""
for i, v in ipairs(val) do
if com.isTrue(args.exclude_bracket_values) then -- Klammer-Text separieren (kein Attribut-Wert)
if i > 1 then
local first_bracket = string.find(val, "%(")
t = t .. ", "
local last_bracket = string.find(val, "%)", -1)
if first_bracket ~= nil and last_bracket ~= nil and first_bracket > 1 then
val_bracket = " " .. string.sub(val, first_bracket, last_bracket)
val = str.strip(string.sub(val, 1, first_bracket - 1))
end
end
local v_bracket = ""
-- Klammer-Text separieren (kein Attribut-Wert)
if com.isTrue(args.exclude_bracket_values) then
local first_bracket = string.find(v, "%(")
local last_bracket = string.find(v, "%)", -1)
if first_bracket ~= nil and last_bracket ~= nil and first_bracket > 1 then
v_bracket = " " .. string.sub(v, first_bracket, last_bracket)
v = str.strip(string.sub(v, 1, first_bracket - 1))
end
end
t = t .. "[[" .. args.attr_name .. "::" .. v .. "]]" .. v_bracket
end
end
t = t .. "[[" .. attr_name .. "::" .. val .. "]]" .. val_bracket
if args.val_postfix ~= nil then
t = t .. " " .. args.val_postfix
end
t = t .. "</dd>"
end
end
if args.val_postfix ~= nil then
t = t .. " " .. args.val_postfix -- Postfix
end
t = t .. "</dd>"
end
end
-- mw.log("t = " .. t)
-- mw.log("t = " .. t)