Vorlagenprogrammierung | Diskussionen | Lua | Test | Unterseiten | ||
Modul | Deutsch
|
Modul: | Dokumentation |
Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus
-- Aufbau des Layouts
local Layout = {
{ -- Allgemeines Layout
"UE1", "IBBild",
-- Parameter Basisdaten
"UEBasisdaten", "ORT", "REGION_2", "REGION_1", "REGION_0", "LAGEPUNKT", "KoordKarte" , "VERW", "ZUGANG", "BESITZER", "ABRISS",
-- Parameter Sendeturm
"UETurmdaten", "T_BAU_ZEIT", "T_BAU_KOST", "T_BAU_HERR", "T_BAU_ARCH", "T_BAU_ST", "IBTBau", "T_BET_ZEIT", "T_UMBAU", "T_HOCH_GES", "T_HOCH_AUS", "T_HOCH_RES", "T_HOCH_BET", "IBTHoch", "T_GEW_GES", "T_VOL_GES", "T_A_STILL",
-- Parameter Sendeanlage
"UESendeanlage", "S_ANZAHL_T", "S_HOCH_GES", "S_BAU_ZEIT", "S_BET_ZEIT", "S_ANT_BAU", "IBSHoch",
-- Parameter Sendeanlage und Sendeturm
"S_UMBAU", "S_WELLE", "S_RUNDFUNK", "S_TYP", "S_STILL",
-- Parameter Tabellenfuss
"WEITERES", "FST", "NS", "EW", "POSKARTE", "Test"
},
Anlage = { "UETurmdaten", "T_BAU_ZEIT", "T_BAU_KOST", "T_BAU_HERR", "T_BAU_ARCH", "T_BAU_ST", "IBTBau", "T_BET_ZEIT", "T_UMBAU", "T_HOCH_GES", "T_HOCH_AUS", "T_HOCH_RES", "T_HOCH_BET", "IBTHoch", "T_GEW_GES", "T_VOL_GES", "T_A_STILL",
"NS", "EW"
},
Turm = {
"S_ANZAHL_T", "S_HOCH_GES", "S_BAU_ZEIT", "S_BET_ZEIT", "IBSHoch",
"NS", "EW",
"FST"
},
Mast = {
"S_ANZAHL_T", "S_HOCH_GES", "S_BAU_ZEIT", "S_BET_ZEIT", "IBSHoch",
"NS", "EW",
"FST"
},
Aussicht = {
"UESendeanlage", "S_ANZAHL_T", "S_HOCH_GES", "S_BAU_ZEIT", "S_BET_ZEIT", "S_ANT_BAU", "IBSHoch",
"S_UMBAU", "S_WELLE", "S_RUNDFUNK", "S_TYP", "S_STILL",
"NS", "EW",
"FST"
},
Fernseh = {
"S_ANZAHL_T", "S_HOCH_GES", "S_BAU_ZEIT", "S_BET_ZEIT", "IBSHoch",
"NS", "EW"
}
}
local p = {}
-- Darstellung der Infobox
p.InfoboxDarstellung = function( DSZusatz, Daten, DN, Kategorien, frame, LayoutExtern )
local IBD = ""
local LayoutIntern = { }
local Tabelle = DSZusatz.Tabelle
if LayoutExtern == "alle" then
LayoutIntern = { Layout[1] }
for LYk, LYv in pairs( Layout ) do
if LYk ~= 1 then LayoutIntern[LYk] = { } end
end
else
LayoutIntern = LayoutExtern or Layout
end
-- Kopf der Infobox
IBD = IBD .. "{| class=\"infobox float-right toptextcells rahmenfarbe1 hintergrundfarbe1\" style=\"width:300px; border-style:solid; border-width:1px; color:black; font-size:90%; margin-top:0; line-height:110%;\""
local Anzeiger = { }
-- Schleife durch das Layout
for IBDk, IBDv in pairs( LayoutIntern[1] ) do
-- Variablen
Anzeiger = {
DS = DN[IBDv], -- Datensatz, der zu verarbeiten ist, z.B. 'DN.ZUGANG'
Zeiger = Tabelle.Standard, -- soll 'DS' angezeit werden? 'true' oder 'false'
Anzeigen = true, -- Zahl, die die Datensatznummer der 'Tabelle' anzeigt
ausklappen = "" -- Text, der in die Bezeichnung 'ausklappen' eingefuegt wird
}
-- Abgleich, ob bei Beuwerktyp ausgeblendet werden muss
if LayoutIntern[DSZusatz.Typ] then
for IBXk, IBXv in pairs( LayoutIntern[DSZusatz.Typ] ) do
if IBXv == IBDv then Anzeiger.Anzeigen = false end
end
end
-- Einlesen des Layouts
if (Tabelle[Anzeiger.DS.BauTyp] and Tabelle[Anzeiger.DS.BauTyp] ~= "") then Anzeiger.Zeiger = Tabelle[Anzeiger.DS.BauTyp] end
Tabelle[Anzeiger.Zeiger] = Tabelle[Anzeiger.Zeiger] or { "", "", "", "" }
Tabelle[Anzeiger.Zeiger][1] = Tabelle[Anzeiger.Zeiger][1] or ""
Tabelle[Anzeiger.Zeiger][2] = Tabelle[Anzeiger.Zeiger][2] or ""
Tabelle[Anzeiger.Zeiger][3] = Tabelle[Anzeiger.Zeiger][3] or ""
Tabelle[Anzeiger.Zeiger][4] = Tabelle[Anzeiger.Zeiger][4] or ""
-- Zeile anzeigen
if (Anzeiger.DS.BauTyp ~= "Ausblenden" and Anzeiger.Anzeigen == true and Anzeiger.DS.WertZeile) then
-- einklappen, ausklappen
if Anzeiger.Zeiger == 6 then Anzeiger.ausklappen = Anzeiger.DS.ausklappen or "ausklappen" end
-- Anzeigen des Datensatzes
IBD = IBD .. Tabelle[Anzeiger.Zeiger][1] .. tostring( Anzeiger.DS.AnzLabel ) .. Tabelle[Anzeiger.Zeiger][2] .. Anzeiger.ausklappen .. Tabelle[Anzeiger.Zeiger][3] .. tostring( Anzeiger.DS.WertZeile ) .. Tabelle[Anzeiger.Zeiger][4]
end
end
IBD = IBD .. "\n|}"
return IBD
end
-- Darstellung der Kategorien
p.KategorieDarstellung = function( DSZusatz, Daten, DN, Kategorien, frame )
local IBKat = ""
local KatAnzeige = {
Text = "" -- Text als Liste
}
if DSZusatz.NSP == 0 then
KatAnzeige.vor = "\n[[Kategorie:"
KatAnzeige.nach = "]]"
KatAnzeige.keinKat = ""
KatAnzeige.Box = { "", "" }
else
KatAnzeige.vor = "[[:Kategorie:"
KatAnzeige.nach = "]] • "
KatAnzeige.keinKat = "\'\'keine Kategorisierung, da keine Kategorien automatisch generiert werden konnten.\'\'"
KatAnzeige.Box = {
"\n<div class=\"rahmenfarbe3 hintergrundfarbe8\" style=\"border-style:solid; border-width:1px; padding:.5em;margin:.25em\">\n\'\'\'Im Artikelnamensraum wird mittels der Infobox wie folgt kategorisiert:\'\'\'\n: • ",
"\n</div>"
}
end
if type( Kategorien ) == "table" then
if Kategorien[1] then
if Kategorien[1][1] then
for KATk, KATv in pairs( Kategorien ) do
KatAnzeige.mittel = ""
if ((KATv[2] == "GeoC" or KATv[2] == "Cat") and DSZusatz.NSP == 0) then KatAnzeige.mittel = "|" .. DSZusatz.CNAME end
KatAnzeige.Text = KatAnzeige.Text .. KatAnzeige.vor .. tostring( KATv[1] ) .. KatAnzeige.mittel .. KatAnzeige.nach
end
else
KatAnzeige.Text = KatAnzeige.Text .. KatAnzeige.keinKat
end
IBKat = IBKat .. KatAnzeige.Box[1] .. KatAnzeige.Text .. KatAnzeige.Box[2]
end
end
return IBKat
end
-- Rueckgabe Layout
function p.Layout()
return Layout
end
return p