Modul:Faktenbox/Zeilen: Unterschied zwischen den Versionen

Bessere Tel.-Anzeige
(p.zeile_() => wob.attr_text(attr_name, args.fbdata.klasse[1]) mit Klasse)
(Bessere Tel.-Anzeige)
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 17: Zeile 17:
-- =p.zeileKategorieSeite_({pagename="fpn",kategorie={"kat1","kat2"},kategorie_einzahl={"k1","k2"},klasse={"kla1","kla2"}}, 2)
-- =p.zeileKategorieSeite_({pagename="fpn",kategorie={"kat1","kat2"},kategorie_einzahl={"k1","k2"},klasse={"kla1","kla2"}}, 2)
local t = ""
local t = ""
local kategorie_einzahl
local kategorie = wob.mehrzahl((fbdata.kategorie or fbdata.klasse)[kindex or 1])
if fbdata.kategorie_einzahl ~= nil then
local kategorie_einzahl = (fbdata.kategorie_einzahl or fbdata.klasse)[kindex or 1]
kategorie_einzahl = fbdata.kategorie_einzahl[kindex or 1]
t = t .. "<dt>[[:Kategorie:" .. kategorie .. "|" .. kategorie_einzahl .. "]]</dt>"
else
kategorie_einzahl = fbdata.klasse[kindex or 1]
end
t = t .. "<dt>[[:Kategorie:" .. fbdata.kategorie[kindex or 1] .. "|" .. kategorie_einzahl .. "]]</dt>"
if wik.pageExists("Kategorie:" .. fbdata.pagename) then
if wik.pageExists("Kategorie:" .. fbdata.pagename) then
t = t .. "<dd>[[:Kategorie:" .. fbdata.pagename .. "|" .. fbdata.pagename .. "]]</dd>"
t = t .. "<dd>[[:Kategorie:" .. fbdata.pagename .. "|" .. fbdata.pagename .. "]]</dd>"
else
else
t = t .. "<dd>'''" .. fbdata.pagename .. "'''</dd>"
t = t .. "<dd>'''" .. fbdata.fullpagename .. "'''</dd>"
end
end
smw.addAttrToList(fbdata.attr.list, "Seite", fbdata.pagename)
-- mw.logObject(t, "t")
-- mw.logObject(t, "t")
return t
return t
Zeile 40: Zeile 35:
-- =p.zeileStrasseHnr_{strasse_hnr={strasse={{name="Erlanger Straße",hausnummer={"11", "13"}},{name="XY Straße",hausnummer={}}},anzahlGebaeude=3}}
-- =p.zeileStrasseHnr_{strasse_hnr={strasse={{name="Erlanger Straße",hausnummer={"11", "13"}},{name="XY Straße",hausnummer={}}},anzahlGebaeude=3}}
local t = ""
local t = ""
for is, sh in ipairs(fbdata.strasse_hnr.strasse) do -- Straßen/Hausnummer-Kombis durchiterieren
for is, sh in ipairs(fbdata.strasse_hnr.strasse) do -- Straßen/Hausnummer-Kombis durchiterieren
t = t .. "<dt>"
t = t .. "<dt>"
if is > 1 then
if is > 1 then
t = t .. is .. ". " -- Numerierungsanzeige "2., "3." usw.
if is == 2 and #sh.hausnummer == 0 then
t = t ..  "Ecke " -- Sonderfall Ecke
else
t = t .. is .. ". " -- Numerierungsanzeige "2., "3." usw.
end
else
else
is = "" -- keine 1, aber 2, 3, ... für weitere Verwendung
is = "" -- keine 1, aber 2, 3, ... für weitere Verwendung
end
end
t = t .. "Straße"
t = t .. "Straße"
if #sh.hausnummer > 0 then
if #sh.hausnummer > 0 then
t = t .. " / " .. "Hausnummer" -- nur wenn Hausnummern vorhanden
t = t .. " / " .. "Hausnummer" -- nur wenn Hausnummern vorhanden
if #sh.hausnummer > 1 then
if #sh.hausnummer > 1 then
t = t .. "n" -- Mehrzahl
t = t .. "n" -- Mehrzahl
end
end
end
end
t = t .. "</dt><dd>[[" .. sh.name .. "]]"
t = t .. "</dt><dd>[[" .. sh.name .. "]]"
smw.addAttrToList(fbdata.attr.list, "Straße" .. is, sh.name)
smw.addAttrToList(fbdata.attr.list, "Straße" .. is, sh.name)
for ih, h in ipairs(sh.hausnummer) do -- Hausnummern durchiterieren
for ih, h in ipairs(sh.hausnummer) do -- Hausnummern durchiterieren
local strasse_hnr_ = sh.name .. " " .. h
local strasse_hnr_ = sh.name .. " " .. h
if ih > 1 then
if ih > 1 then
t = t .. "," -- Kommas davor ab 2. Hausnummer
t = t .. "," -- Kommas davor ab 2. Hausnummer
end
end
if wik.pageExists(strasse_hnr_) then -- Link, wenn Seite vorhanden
if wik.pageExists(strasse_hnr_) then -- Link, wenn Seite vorhanden
t = t .. " [[" .. strasse_hnr_ .. "|" .. h .. "]]"
t = t .. " [[" .. strasse_hnr_ .. "|" .. h .. "]]"
else
else
Zeile 203: Zeile 202:
if #attr_val > 0 then
if #attr_val > 0 then
-- Attribut-Text ermitteln und in Zeile übernehmen
-- Attribut-Text ermitteln und in Zeile übernehmen
local attr_text = args.attr_text or wob.attr_text(attr_name, args.fbdata.klasse[1])
local attr_text = args.attr_text or wob.attrText(attr_name, args.fbdata.klasse[1])
if #attr_val > 1 then
if #attr_val > 1 then
attr_text = wob.mehrzahl(attr_text) -- Mehrzahl
attr_text = wob.mehrzahl(attr_text) -- Mehrzahl
Zeile 217: Zeile 216:
t = t .. ", " -- Listen-Kommata
t = t .. ", " -- Listen-Kommata
end
end
if mw.smw.getPropertyType(attr_name) == "_wpg" then -- Seiten-Attribute Spezialbehandlung
if not wik.pageExists("Attribut:" .. attr_name) then -- Spezialbehandlung Attribut nicht vorhanden
t = t .. p.setPageAttr(args.fbdata.attr.list, attr_name, val, args.val_show_only)
t = t .. p.setStandardAttr(args.fbdata.attr.list, attr_name, val, args.exclude_bracket_values, args.val_show_only)
elseif mw.smw.getPropertyType(attr_name) == "_tel" then -- Telefon-Attribute Spezialbehandlung
t = t .. p.setTelAttr(args.fbdata.attr.list, attr_name, val, args.val_show_only)
else
else
t = t .. p.setStandardAttr(args.fbdata.attr.list, attr_name, val, args.exclude_bracket_values, args.val_show_only)
mw.logObject(attr_name, "attr_name")
local attr_type = mw.smw.getPropertyType(attr_name)
mw.logObject(attr_type, "attr_type")
if attr_type == "_wpg" then -- Seiten-Attribute Spezialbehandlung
t = t .. p.setPageAttr(args.fbdata.attr.list, attr_name, val, args.val_show_only)
elseif attr_type == "_ema" then -- E-Mail-Attribute Spezialbehandlung
t = t .. p.setEmailAttr(args.fbdata.attr.list, attr_name, val, args.val_show_only)
elseif attr_type == "_tel" then -- Telefon-Attribute Spezialbehandlung
t = t .. p.setTelAttr(args.fbdata.attr.list, attr_name, val, args.val_show_only)
else -- Standard-Attribute
t = t .. p.setStandardAttr(args.fbdata.attr.list, attr_name, val, args.exclude_bracket_values, args.val_show_only)
end
end
end
end
end
Zeile 262: Zeile 270:
end
end
-- mw.logObject(t, "t")
-- mw.logObject(t, "t")
return t
end
function p.setEmailAttr(attrlist, name, val, val_show_only)
local t = ""
local val_pre_bracket, email, val_post_bracket = str.bracketSplitAndStrip(val) -- nach Klammern suchen und aufteilen
if val_pre_bracket ~= "" then
t = t .. val_pre_bracket .. " "
end
t = t .. "[mailto:" .. email .. " " .. email .. "]"
if val_post_bracket ~= "" then
t = t .. " " .. val_post_bracket
end
if not val_show_only then
smw.addAttrToList(attrlist, name, email)
end
mw.logObject(t, "t")
return t
return t
end
end
Zeile 267: Zeile 292:
function p.setTelAttr(attrlist, name, val, val_show_only)
function p.setTelAttr(attrlist, name, val, val_show_only)
local t = ""
local t = ""
local val_pre_bracket, tel, val_post_bracket = str.bracketSplitAndStrip(val) -- nach Klammern suchen und aufteilen
local val_pre_bracket, tel, val_post_bracket = -- nach Klammern suchen und aufteilen
local tel = val_pre_bracket .. " " .. tel -- Klammer am Anfang wieder anfügen
str.bracketSplitAndStrip(val)
tel = val_pre_bracket .. " " .. tel -- Klammer am Anfang wieder anfügen
tel = p.getTelUri(tel)
tel = p.getTelUri(tel)
if string.sub(tel, 1, 1) == "+" then
if string.sub(tel, 1, 1) == "+" then
Zeile 276: Zeile 302:
end
end
if not val_show_only then
if not val_show_only then
smw.addAttrToList(attrlist, name, val)
smw.addAttrToList(attrlist, name, tel)
end
end
-- mw.logObject(t, "t")
-- mw.logObject(t, "t")