Modul:Faktenbox: Unterschied zwischen den Versionen

Aus FürthWiki

(div. Optimierungen)
(+ p.karten_args)
 
(98 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
p = {}
local p = {}
local com = require("Modul:Common")
local str = require("Modul:String")
local wik = require("Modul:Wiki")
local geo = require("Modul:Geocode")
local que = require("Modul:Queries")
local lfd = require("Modul:LinkFormDatum")


function p.zeile(attr_name, val, attr_text)
local geo = require("Modul:Geo")
-- mw.log("zeile(" .. (attr_name or "nil") .. ", val, " .. (attr_text or "nil") .. ")")
local kar = require("Modul:Karte")
-- mw.logObject(val or {})
local t = ""
if mw.smw.getPropertyType(attr_name) ~= nil then
if type(val) ~= "table" then
val = str.splitAndStrip(val or "", ";")
end
if #val > 0 then
t = t .. "<dt>" .. "[[Attribut:" .. attr_name .. "|" .. (attr_text or attr_name) .. "]]</dt><dd>"
for i, v in ipairs(val) do
if i > 1 then
t = t .. ", "
end
t = t .. "[[" .. attr_name .. "::" .. v .. "]]"
end
t = t .. "</dd>"
end
end
-- mw.log("t = " .. t)
return t
end


function p.zeileKategorieSeite(klasse, kategorie)
local fab_common = require("Modul:Faktenbox/Common")
-- mw.log("zeileKategorieSeite(" .. kategorie .. ")")
local fab_zeilen = require("Modul:Faktenbox/Zeilen")
local t = ""
local fab_tabs = require("Modul:Faktenbox/Tabs")
local fullpagename = wik.fullpagename()
local fab_tabs_karte = require("Modul:Faktenbox/Tabs/Karte")
t = t .. "<dt>[[:Kategorie:" .. kategorie .. "|" .. klasse .. "]]</dt><dd>[[Seite::" .. fullpagename .. "]]</dd>"
local fab_tabs_adressen = require("Modul:Faktenbox/Tabs/Adressen")
-- mw.log("t = " .. t)
return t
end


function p.zeileStrasseHnr(strasse_hnr)
function p.Faktenbox(frame)
-- mw.log("zeileStrasseHnr(strasse_hnr)")
-- mw.log("Faktenbox(frame)")
-- mw.logObject(strasse_hnr)
-- mw.logObject(frame)
-- Konsolenzeile zum Debuggen:
-- Konsolenzeile zum Debuggen:
-- =p.zeileStrasseHnr({strasse = {{name = "Erlanger Straße", hausnummer = {"11", "13"}}, {name = "XY Straße" , hausnummer = {}}}})
-- =p.Faktenbox{pargs={Bild="Schwabacher Straße 12 Dez 2020 1.jpg",["Straße"]="Schwabacher Straße",location="Rathaus Fürth",Objekt="Häusle"}}
local t = ""
local t = ""
for is, sh in ipairs(strasse_hnr.strasse) do -- Straßen/Hausnummer-Kombis durchiterieren
t = t .. "<dt>"
if is > 1 then
t = t .. is .. ". " -- Numerierungsanzeige "2., "3." usw.
else
is = "" -- kein 2, 3, ... für weitere Verwendung
end
t = t .. "[[Attribut:Straße|Straße]]"
if #sh.hausnummer > 0 then
t = t .. " / " .. "[[Attribut:Hausnummer|Hausnummer]]" -- nur wenn Hausnummern vorhanden
end
t = t .. "</dt><dd>[[Straße" .. is .. "::" .. sh.name .. "]]"
for ih, h in ipairs(sh.hausnummer) do -- Hausnummern durchiterieren
local strasse_hnr_ = sh.name .. " " .. h
if ih > 1 then
t = t .. "," -- Kommas davor ab 2. Hausnummer
end
if wik.pageexists(strasse_hnr_) then -- Link, wenn Seite vorhanden
t = t .. " [[" .. strasse_hnr_ .. "|" .. h .. "]]"
else
t = t .. " " .. h
end
mw.smw.set({["Hausnummer" .. is] = h, ["StraßeHnr"] = strasse_hnr_})
end
t = t .. "</dd>"
end
mw.smw.set({["AnzahlGebäude"] = strasse_hnr.anzahlGebaeude})
-- mw.log("t = " .. t)
return t
end


function p.zeilenDenkmalschutz(denkmalstatusbesteht, aktennr)
-- Basis-Faktenbox-Daten (Klasse/Kategorie/Formular)
-- mw.log("zeilenDenkmalschutz(" .. (denkmalstatusbesteht or "nil") .. ", " .. (aktennr or "nil") .. ")")
-- Kein(e) Klasse/Kategorie/Formular!
-- Konsolenzeile zum Debuggen: =p.zeilenDenkmalschutz("Ja","D-5-63-000-1464")
local fbdata = fab_common.getFbdata_(frame)
local t = ""
fbdata.hide_loc_latlon = "nein" -- Karte darf GeoJson und Objekt-Lokationen haben
if com.isTrue(denkmalstatusbesteht) then
fbdata.attr.noattr = true -- Keine Attribute setzen
t = t .. p.zeile("DenkmalstatusBesteht", denkmalstatusbesteht, "Denkmalstatus besteht")
aktennr = str.splitAndStrip(aktennr or "", ";")
if #aktennr > 0 then
t = t .. "<dt>" .. "[[Attribut:AktenNr|Akten-Nr.]]</dt><dd>"
for i, a in ipairs(aktennr) do
if i > 1 then
t = t .. ",<br>"
end
t = t .. "{{#queryformlink:form=Abfrage Denkmalschutz|link text=[[AktenNr::" .. a .. "]]|query string=Abfrage Denkmalschutz[AktenNr]=" .. a .. "&_run}}"
p = que.getPages("[[:+]][[AktenNr::" .. a .. "]]", true)
t = t .. " (" .. #p .. ")"
end
t = t .. "</dd>"
end
end
-- mw.log("t=" .. t)
return t
end


function p.zeileGeokoordinate(frame, noframe)
-- Tabs einsammeln und zusammenfügen
-- mw.log("zeileGeokoordinate()")
t = t .. fab_tabs.bildTab_(fbdata)
local t = ""
if kar.kartenArgsVorhanden(fbdata.pargs) then
local fullpagename = wik.fullpagename()
t = t .. fab_tabs_karte.kartenTab_(fbdata)
local geokoordinate = que.getValues(fullpagename, "Geokoordinate", true)
if #geokoordinate > 0 then
t = t .. "<dt>[[Attribut:Geokoordinate|Geokoordinate]]</dt><dd>"
for i, g in ipairs(geokoordinate) do
if i > 1 then
t = t .. ",<br>"
end
if noframe then
t = t .. g
else
t = t .. geo.osmLink(frame, g)
end
end
t = t .. "</dd>"
end
end
-- mw.log("t = " .. t)
t = t .. fab_tabs.universalDatenTab_(fbdata)
return t
t = fab_tabs.factbox_header_footer_(t)
end


function p.zeileDatum(args)
-- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...)
-- mw.log("zeileDatum(args)")
t = t .. fab_common.postprocess_(fbdata, false)
-- mw.logObject(args)
-- mw.logObject(t, "t")
-- Konsolenzeile zum Debuggen:
-- =p.zeileDatum({attr_date="Weihedatum",date="1959/11/15",attr_day="Weihetag",attr_year="Weihejahr"})
local t = ""
local date = str.strip(args.date or "")
if date ~= "" then
t = t .. "<dt>" .. "[[Attribut:" .. args.attr_date .. "|" .. args.attr_date .. "]]</dt><dd>"
t = t .. lfd.linkFormDate(date, args.attr_date, args.attr_day, args.attr_year)
t = t .. "</dd>"
end
-- mw.log("t = " .. t)
return t
end


function p.faktenboxSemantikBrowsen()
-- Pre-Processing und String-Länge checken
-- mw.log("faktenboxSemantikBrowsen()")
t = fbdata.frame:preprocess(t)
local t = ""
-- mw.logObject(t, "t")
t = t .. "<dl class = 'dataTable'>"
t = t .. "<dt>[[Bild:IconSearch.svg|16px|semantisches Browsen|link=[[Spezial:Durchsuchen/{{FULLPAGENAME}}]]]]</dt>"
t = t .. "<dd>[[Spezial:Durchsuchen/{{FULLPAGENAME}}|semantisches Browsen]]</dd>"
t = t .. "</dl>"
-- mw.log("t = " .. t)
return t
return t
end
end


function p.bildTab(bild, seite)
-- wrapper für functions von Modul:Faktenbox/Tabs
-- mw.log("bild(" .. (bild or "nil") .. ", " .. (seite or "nil") .. ")")
function p.universalDatenTab(...) return fab_tabs.universalDatenTab_(...) end
local t = ""
function p.bildTab(...) return fab_tabs.bildTab_(...) end
local beschreibung = que.getValues("Datei:" .. (bild or ""), "Beschreibung")
function p.kartenTab(...) return fab_tabs_karte.kartenTab_(...) end
local beschreibung = beschreibung[1] or ""
function p.getKartenArgs(...) return fab_tabs_karte.getKartenArgs_(...) end
if not com.isEmpty(bild) and wik.pageexists("Bild:" .. bild) then
function p.benennungenTab(...) return fab_tabs.benennungenTab_(...) end
t = t .. '{| class = "factbox_imagetable" border = "0" cellpadding = "0" cellspacing = "0" width = "100%"\n'
function p.adressenTab(...) return fab_tabs_adressen.adressenTab_(...) end
t = t .. '|-\n'
function p.tab(...) return fab_tabs.tab_(...) end
t = t .. '|[[Bild::Datei:' .. bild .. '|768px|link=' .. (seite or '') .. ']]\n'
function p.table_header_footer(...) return fab_tabs.table_header_footer_(...) end
if beschreibung ~= "" then
function p.factbox_header_footer(...) return fab_tabs.factbox_header_footer_(...) end
t = t .. '|-\n'
t = t .. '|' .. beschreibung .. '\n'
end
t = t .. '|}'
end
-- Tab draus machen
t = p.tab(t, "Bild")
-- mw.log("t = " .. t)
return t
end


function p.common(args)
p.karten_args = fab_tabs_karte.karten_args
-- mw.log("common(args)")
-- mw.logObject(args)
-- Konsolenzeile zum Debuggen:
-- =p.common{formular="Gebäude/Work",bild="Angie Oeckl.JPG",klasse="Klasse",kategorie="Gebäude",strasse_hnr={suspekt=true},ehemals="Ja",denkmalstatusbesteht="Ja",stadtteil="Ronhof; Nordstadt "}
local t = ""
 
-- Formular
t = t .. "{{#default_form:" .. args.formular .. "}}"
 
-- Kategorien
if com.isTrue(args.ehemals) then
t = t .. "[[Kategorie:" .. args.kategorie .. " (ehemals)]]"
else
t = t .. "[[Kategorie:" .. args.kategorie .. "]]"
end
if args.kategorie2 ~= nil then
if com.isTrue(args.ehemals) then
t = t .. "[[Kategorie:" .. args.kategorie2 .. " (ehemals)]]"
else
t = t .. "[[Kategorie:" .. args.kategorie2 .. "]]"
end
end
if com.isTrue(args.denkmalstatusbesteht) then
t = t .. "[[Kategorie:Denkmalliste]]"
end
local stadtteil = str.splitAndStrip(args.stadtteil or "", ";")
for _, s in ipairs(stadtteil) do
s = str.strip(tostring(s or ""))
t = t .. "[[Kategorie:" .. s .. "]]"
end


-- Wartungs-Kategorien
-- wrapper für functions von Modul:Faktenbox/Zeilen
if com.isEmpty(args.bild) then
function p.zeileKategorieSeite(...) return fab_zeilen.zeileKategorieSeite_(...) end
t = t .. "[[Kategorie:" .. args.kategorie .. " ohne Bild]]"
function p.zeileStrasseHnr(...) return fab_zeilen.zeileStrasseHnr_(...) end
elseif not wik.pageexists("Bild:" .. args.bild) then
function p.zeileAktenNr(...) return fab_zeilen.zeileAktenNr_(...) end
t = t .. "[[Kategorie:Bild nicht gefunden]]"
function p.zeileGeoDaten(...) return fab_zeilen.zeileGeoDaten_(...) end
end
function p.zeileDatum(...) return fab_zeilen.zeileDatum_(...) end
local pagename = wik.pagename()
function p.zeileEndeDatum(...) return fab_zeilen.zeileEndeDatum_(...) end
if string.find(pagename, ";") ~= nil then
function p.zeileEndeJahr(...) return fab_zeilen.zeileEndeJahr_(...) end
t = t .. "[[Kategorie:Hat Semikolon]]"
function p.zeileSemantikBrowsenAbfrage(...) return fab_zeilen.zeileSemantikBrowsenAbfrage_(...) end
end
function p.zeileTeilDesEnsembles(...) return fab_zeilen.zeileTeilDesEnsembles_(...) end
if string.find(pagename, "/") ~= nil then
function p.zeile(...) return fab_zeilen.zeile_(...) end
t = t .. "[[Kategorie:Hat Slash]]"
end
if args.strasse_hnr.suspekt then
t = t .. "[[Kategorie:Gebäude mit verdächtiger Straße-Hausnummer-Kombination]]"
end
if positionscheck and (args.lat or "") == "" and (args.lon or "") == "" and (args.location or "") == "" and not wik.pageexists("GeoJson:" .. (args.location or pagename)) then
if com.isTrue(args.ehemals) then
t = t .. "[[Kategorie:" .. args.kategorie .. " (ehemals) ohne Position]]"
else
t = t .. "[[Kategorie:" .. args.kategorie .. " ohne Position]]"
end
end
-- mw.log("t = " .. t)
return t
end


function p.tab(t, name)
-- wrapper für functions von Modul:Faktenbox/Common
-- mw.log("tab(t)")
function p.postprocess(...) return fab_common.postprocess_(...) end
-- mw.logObject(t)
function p.getFbdata(...) return fab_common.getFbdata_(...) end
if t ~= "" then
function p.addWartungsmeldung(...) return fab_common.addWartungsmeldung_(...) end
t = "<tab name = ".. name .. ">" .. t .. "</tab>"
end
-- mw.log("t = " .. t)
return t
end


return p
return p

Aktuelle Version vom 18. Februar 2026, 12:24 Uhr

Seiten-Übersicht

Zur Klasse Faktenbox gehörende Seiten:
Hauptseite Unterseiten
Allgemein
Faktenbox Vorlagen
Formulare
Module
Abfrage Vorlagen


Formulare


Sonstige


Dieses Modul enthält gemeinsame Funktionen, um eine Faktenbox zu füllen

Funktionen Modul:Faktenbox

Faktenbox()

Universelle Faktenbox ohne Formular/Klasse/Gebäude. Sie kann als zusätzliche Faktenboxen auf einer Seite eingebaut werden ähnlich Vorlage:Tabbox. Sie setzt ebenso Attribute wie die regulären Faktenboxen z.B. von Gebäuden, Straßen, Personen usw.

Wrapper

Funktionsaufrufe von Modul:Faktenbox werden an die Unterseiten-Module weitergereicht.

Funktionen Modul:Faktenbox/Tabs

universalDatenTab()

Universeller Daten-Tab zeigt alle seine übergebenen Parameter außer die für Karte und Bild an.

bildTab()

Selbsterklärend...

benennungenTab()

Tab mit Liste der Benennungen.

tab()

Vervollständigt Tab-Inhalt zu einem Tab.

table_header_footer()

Baut die HTML-Tags für eine table herum.

factbox_header_footer()

Baut die HTML-Tags für eine factbox herum.

Funktionen Modul:Faktenbox/Tabs/Karte

kartenTab()

Selbsterklärend...

getKartenArgs()

Karten-Argumente übernehmen und aufbereiten.

Funktionen Modul:Faktenbox/Tabs/Adressen

adressenTab()

Tab mit Liste der Adressen. Die Adressen werden bestmöglich chronologisch aufsteigend sortiert.

p.sortIndex() und p.smwDate2SortIndex()

Erstellen Sortierindizes anhand Datum und Schlüsselwörtern (z.B. Geburtshaus ganz oben) für chronologische Sortierung.

Funktionen Modul:Faktenbox/Zeilen

zeileKategorieSeite()

Diese Zeile ist die oberste Zeile eines Daten-Tabs, welche nochmal den Namen des Objekts und einen Link zur Klassen-Kategorie anzeigt setzt.

zeileStrasseHnr()

Wie zeile(attr, attrText, val), aber speziell ausgrichtet, um Attribut:Straße, Attribut:Hausnummer, Attribut:StraßeHnr und Attribut:AnzahlGebäude zu setzen und anzuzeigen.

zeileAktenNr()

Wie zeile(attr, attrText, val), aber speziell ausgrichtet, um Attribut:AktenNr zu setzen und anzuzeigen. Die AktenNr werden als Query-Link und mit Seitenanzahl mit dieser AktenNr angezeigt.

zeileGeoDaten()

Zeile um alle Attribut:Geokoordinaten mit OSM-Link und die Attribut:GeoJson-Karte zu anzuzeigen.

zeileDatum()

Zeile um ein Datum standardisiert per linkFormDateAttrList() anzuzeigen.

zeileEndeDatum()

Wie zeileDatum(), aber dass Ende-Attribute (Attribut:Ehemals, Attribut:Verstorben, ...) automatisch gesetzt und nicht angezeigt wird, wenn Ende-Datum (Attribut:Schließungsdatum, Attribut:Todesdatum, ...) angegeben.

zeileEndeJahr()

Wie zeileDatum(), aber dass Ende-Attribute (Attribut:Ehemals, ...) automatisch gesetzt und nicht angezeigt wird, wenn Ende-Jahr (Attribut:Abrissjahr, ...) angegeben.

zeileTeilDesEnsembles()

Wie zeile(), nur dass dem Attribut-Wert "Ensemble " am Anfang hinzugefügt wird.

zeileSemantikBrowsenAbfrage()

Zeile mit Link zum semantischen Browsen (Datensicht) und zur Abfrage.

zeile()

Standard-Zeile um ein Attribut zu setzen und anzuzeigen. Wenn es sich beim Attribut-Wert um eine Liste mit mehreren Elementen handelt, wird vom Attribut-Anzeigetext automatisch die Mehrzahl gebildet.

Parameter Beschreibung
attr_name Attribut-Name
attr_text Optionaler Attribut-Anzeigetext. Default: attr_name. Siehe auch attr_text_anzeige
attr_val Attribut-Wert. Wenn nicht übergeben, werden die von der #invoke:-Vorlage übergegebenen Parameter (fbdata.pargs) verwendet.
fbdata fbdata-Daten-table mit von der #invoke:-Vorlage übergegebenen Parameter (fbdata.pargs).
delimiter Trennzeichen bei Werte-Listen. Bei Nicht-Übergabe wird Attribut-Wert auch nicht als Liste behandelt.
val_prefix Attribut-Wert-Prefix z.B. "ca."
val_postfix Attribut-Wert-Postfix z.B. "km"
val_show_only Attribut-Wert nur anzeigen, aber nicht setzen

setPageAttr()

Setzen eines Attributs vom Datentyp Seite in folgender Prüf- und Setzreihenfolge:

  1. Wenn val problematische Wikitext/HTML-Inhalte enthält, dann wird
    • val 1:1 angezeigt und ggf. gerendert (nicht innerhalb [[Attribut::Wert]])
    • Attribut name mit val per {{#set:Attribut=Wert}} unsichtbar im Hintergrund gesetzt, auch wenn das Verarbeitungsfehler provoziert (gewollt)
  2. Ansonsten wenn val als Seite existiert, wird diese 1:1 gesetzt und angezeigt ([[Attribut::Wert]])
  3. Ansonsten wenn val Klammerungen am Anfang oder am Ende enthält (Beispiel: "(BlaBlub) Rathaus (BlaBla)"), wird geprüft, ob eine Seite ohne die Klammerungen (also Rathaus) existiert. Wenn ja, wird "(BlaBlub) Rathaus (BlaBla)" angezeigt und das Attribut mit nur "Rathaus" gesetzt.
  4. Ansonsten wird
    • val 1:1 angezeigt und ggf. gerendert (nicht innerhalb [[Attribut::Wert]])
    • Attribut name mit val per {{#set:Attribut=Wert}} unsichtbar im Hintergrund gesetzt, auch wenn das Verarbeitungsfehler provoziert (gewollt)

setUrlAttr()

Setzen eines URL-Attributs (https:/http:).

setEmailAttr()

Setzen eines E-Mail-Attributs (mailto:).

setTelAttr()

Setzen eines Telefon-Attributs (tel:).

setStandardAttr()

Setzen eines Standard-Attributs. Klammerwerte werden optional abgetrennt und Attribut-Wert wird optional nur angezeigt, aber nicht gesetzt.

getTelUri()

Standard-konformes Bilden einer Telefon-URI.

Modul:Faktenbox/Zeilen/RedLinks

Enthält Tabelle mit Attributen, die nicht als rote Links angezeigt werden sollen.

Funktionen Modul:Faktenbox/Common

postprocess()

Sonstige gemeinsame Dinge anfügen

  • Klasse
  • Formular
  • Kategorien
  • Wartung

Ebenso werden die Attribute final gesetzt, sofern keine transcludierte Unterseite.

getFbdata()

Erstellt Faktenbox-Daten-Tabelle. Außerdem:

  • Setzt Attribut:Seite und Attribut:TopSeite
  • Berechnet und setzt Attribut:Hash auf Basis aller fbdata.pargs
  • Prüft, ob die Seite mit der Faktenbox eine transcludierte Unterseite ist, und setzt fbdata.transcluded

addWartungsmeldung()

Wartungsmeldung zu Attribut:Wartungsmeldung hinzufügen. Wird final gesetzt in postprocess().

fbdata-Daten-table

Um die Parameter-Übergabe zu obigen Funktionen zu vereinfachen wird die fbdata-Daten-table verwendet, in der folgende Daten abgelegt werden:

  • fbdata.frame = frame von Faktenbox(frame)
  • fbdata.args = frame.args. Beispiel: fbdata.args["Ehemals"] oder fbdata.args.Ehemals
  • fbdata.pargs = frame:getParent().args. Beispiel: fbdata.pargs["Ehemals"] oder fbdata.pargs.Ehemals
  • fbdata.workmode = fbdata.pargs["Work"] ist true
  • fbdata.klasse Klassen-table. Beispiel Kirche: fbdata.klasse = {"Kirche", "Gebäude"} ("Kirche" ist primäre und "Gebäude" sekundäre Klasse)
  • fbdata.kategorie Kategorien-table. Beispiel Kirche: fbdata.kategorie = {"Kirchen", "Gebäude"} ("Kirchen" ist primäre und "Gebäude" sekundäre Kategorie)
  • fbdata.kategorie_einzahl Einzahl-Kategorien-table als Alternative zu fbdata.klasse. Beispiel Kirche: fbdata.kategorie_einzahl = {"Kirche", "Gebäude"} ("Kirche" ist primäre und "Gebäude" sekundäre Kategorie)
  • fbdata.formular Formular
  • Pagesnames
    • fbdata.fullpagename
    • fbdata.pagename
    • fbdata.subpagename
  • fbdata.strasse_hnr Untertabelle für Straße/Hausnummer-Daten
    • fbdata.strasse_hnr.strasse Untertabelle für Straßen
      • fbdata.strasse_hnr.strasse.name Straßenname
      • fbdata.strasse_hnr.strasse.hausnummer Hausnummern-table dieser Straße
      • fbdata.strasse_hnr.strasse.suspekt Suspekte Formular-Werte dieser Straße
    • fbdata.strasse_hnr.suspekt Suspekte Formular-Werte aller Straßen
    • fbdata.strasse_hnr.anzahlGebaeude Anzahl aller gültigen Straße/Hausnummer-Kombinationen
  • fbdata.attr Attribute
    • fbdata.attr.list = Attribute-Liste (table)
    • fbdata.attr.subid = Sobobject-Indentifier
    • fbdata.attr.noattr = Attribute nicht setzen Flag
  • fbdata.geoobjects = Geo-Objekte von Modul:Karte gefüllt
  • fbdata.transcluded = Faktenbox ist in transcludierte Unterseite
  • Ggf. weitere Klassen-abhängige Einträge

attr_text_anzeige

Sofern kein attr_text angegeben, wird i. A. attr_name angezeigt. Jedoch wird bei manchen attr_name-Attributen stattdessen automatisch die ausgeschriebene Version angezeigt.

Beispiel: Beim Attribut:TeilDesEnsembles wird anhand der table attr_text_anzeige "Teil des Ensembles" angezeigt.

Diese Übersetzung von attr_name zur Anzeige-Version ist in attr_text_anzeige abgelegt und erfolgt global bei allen Faktenboxen.

Unterseiten

Siehe auch


local p = {}

local geo = require("Modul:Geo")
local kar = require("Modul:Karte")

local fab_common = require("Modul:Faktenbox/Common")
local fab_zeilen = require("Modul:Faktenbox/Zeilen")
local fab_tabs = require("Modul:Faktenbox/Tabs")
local fab_tabs_karte = require("Modul:Faktenbox/Tabs/Karte")
local fab_tabs_adressen = require("Modul:Faktenbox/Tabs/Adressen")

function p.Faktenbox(frame)
--	mw.log("Faktenbox(frame)")
--	mw.logObject(frame)
	-- Konsolenzeile zum Debuggen:
	-- =p.Faktenbox{pargs={Bild="Schwabacher Straße 12 Dez 2020 1.jpg",["Straße"]="Schwabacher Straße",location="Rathaus Fürth",Objekt="Häusle"}}
	local t = ""

	-- Basis-Faktenbox-Daten (Klasse/Kategorie/Formular)
	-- Kein(e) Klasse/Kategorie/Formular!
	local fbdata = fab_common.getFbdata_(frame)
	fbdata.hide_loc_latlon = "nein"												-- Karte darf GeoJson und Objekt-Lokationen haben
	fbdata.attr.noattr = true													-- Keine Attribute setzen

	-- Tabs einsammeln und zusammenfügen
	t = t .. fab_tabs.bildTab_(fbdata)
	if kar.kartenArgsVorhanden(fbdata.pargs) then
		t = t .. fab_tabs_karte.kartenTab_(fbdata)
	end
	t = t .. fab_tabs.universalDatenTab_(fbdata)
	t = fab_tabs.factbox_header_footer_(t)

	-- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...)
	t = t .. fab_common.postprocess_(fbdata, false)
--	mw.logObject(t, "t")

	-- Pre-Processing und String-Länge checken
	t = fbdata.frame:preprocess(t)
--	mw.logObject(t, "t")
	return t
end

-- wrapper für functions von Modul:Faktenbox/Tabs
function p.universalDatenTab(...)			return fab_tabs.universalDatenTab_(...)				end
function p.bildTab(...)						return fab_tabs.bildTab_(...)						end
function p.kartenTab(...)					return fab_tabs_karte.kartenTab_(...)				end
function p.getKartenArgs(...)				return fab_tabs_karte.getKartenArgs_(...)			end
function p.benennungenTab(...)				return fab_tabs.benennungenTab_(...)				end
function p.adressenTab(...)					return fab_tabs_adressen.adressenTab_(...)			end
function p.tab(...)							return fab_tabs.tab_(...)							end
function p.table_header_footer(...)			return fab_tabs.table_header_footer_(...)			end
function p.factbox_header_footer(...)		return fab_tabs.factbox_header_footer_(...)			end

p.karten_args = fab_tabs_karte.karten_args

-- wrapper für functions von Modul:Faktenbox/Zeilen
function p.zeileKategorieSeite(...)			return fab_zeilen.zeileKategorieSeite_(...)			end
function p.zeileStrasseHnr(...)				return fab_zeilen.zeileStrasseHnr_(...)				end
function p.zeileAktenNr(...)				return fab_zeilen.zeileAktenNr_(...)				end
function p.zeileGeoDaten(...)				return fab_zeilen.zeileGeoDaten_(...)				end
function p.zeileDatum(...)					return fab_zeilen.zeileDatum_(...)					end
function p.zeileEndeDatum(...)				return fab_zeilen.zeileEndeDatum_(...)				end
function p.zeileEndeJahr(...)				return fab_zeilen.zeileEndeJahr_(...)				end
function p.zeileSemantikBrowsenAbfrage(...)	return fab_zeilen.zeileSemantikBrowsenAbfrage_(...)	end
function p.zeileTeilDesEnsembles(...)		return fab_zeilen.zeileTeilDesEnsembles_(...)		end
function p.zeile(...)						return fab_zeilen.zeile_(...)						end

-- wrapper für functions von Modul:Faktenbox/Common
function p.postprocess(...)					return fab_common.postprocess_(...)					end
function p.getFbdata(...)					return fab_common.getFbdata_(...)					end
function p.addWartungsmeldung(...)			return fab_common.addWartungsmeldung_(...)			end

return p