20.658
Bearbeitungen
(Umstellung Publikation) |
(- smw.addAttrToList(fbdata.attr.list, "Seite", fbdata.fullpagename) verschoben nach Modul:Faktenbox/Common) |
||
| (12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
local com = require("Modul:Common") | local com = require("Modul:Common") | ||
local str = require("Modul:String") | local str = require("Modul:String") | ||
local | local wob = require("Modul:Wörterbuch") | ||
local wik = require("Modul:Wiki") | |||
local smw = require("Modul:SMW") | |||
local fab = require("Modul:Faktenbox") | local fab = require("Modul:Faktenbox") | ||
function p.Faktenbox(frame) | function p.Faktenbox(frame) | ||
-- mw.log("Faktenbox(frame)") | -- mw.log("Faktenbox(frame)") | ||
-- mw.logObject(frame) | -- mw.logObject(frame, "frame") | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p.Faktenbox{pargs={Titel="Bla",Ausfuehrung="1234",Genre="Stadtgeschichte;Biografie"}} | -- =p.Faktenbox{pargs={Titel="Bla",Ausfuehrung="1234",Genre="Stadtgeschichte;Biografie"}} | ||
-- Basis-Faktenbox-Daten (Klasse/Kategorie/Formular) | -- Basis-Faktenbox-Daten (Klasse/Kategorie/Formular) | ||
local fbdata = fab. | local fbdata = fab.getFbdata(frame) | ||
fbdata.klasse = {frame.args["Klasse"] or "Publikation"} | fbdata.klasse = {frame.args["Klasse"] or "Publikation"} | ||
if frame.args["KategorieEinzahl"] ~= nil then | if frame.args["KategorieEinzahl"] ~= nil then | ||
fbdata.kategorie_einzahl = {frame.args["KategorieEinzahl"]} | fbdata.kategorie_einzahl = {frame.args["KategorieEinzahl"]} | ||
fbdata.kategorie = { | fbdata.kategorie = {wob.mehrzahl(frame.args["KategorieEinzahl"])} | ||
else | else | ||
fbdata.kategorie = {frame.args["Kategorie"] or "Publikationen"} | fbdata.kategorie = {frame.args["Kategorie"] or "Publikationen"} | ||
| Zeile 23: | Zeile 25: | ||
fbdata.formular = frame.args["Formular"] or frame.args["KategorieEinzahl"] or "Publikation" -- ggf. "Publikation/Work" | fbdata.formular = frame.args["Formular"] or frame.args["KategorieEinzahl"] or "Publikation" -- ggf. "Publikation/Work" | ||
fbdata.positionscheck = false | fbdata.positionscheck = false | ||
-- Titel | |||
fbdata.pargs["Titel"] = fbdata.pargs["Titel"] or fbdata.pagename | |||
-- Index-Seite | |||
fbdata.indexpage = "Index:" .. (fbdata.pargs["Index"] or fbdata.pagename) | |||
if wik.pageExists(fbdata.indexpage) then | |||
smw.addAttrToList(fbdata.attr.list, "Index", fbdata.indexpage) | |||
fbdata.bildlink = fbdata.indexpage | |||
else | |||
fbdata.indexpage = nil | |||
end | |||
-- Tabs einsammeln und zusammenfügen | -- Tabs einsammeln und zusammenfügen | ||
local | local t = fab.bildTab(fbdata) .. p.datenTab(fbdata) | ||
t = fab.factbox_header_footer(t) | |||
-- Buch-spezifische Kategorien usw. | -- Buch-spezifische Kategorien usw. | ||
| Zeile 35: | Zeile 46: | ||
-- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...) | -- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...) | ||
t = t .. fab.postprocess(fbdata) | |||
-- mw. | -- Pre-Processing | ||
-- mw.logObject(t, "t") | |||
t = fbdata.frame:preprocess(t) | |||
return t | |||
return | |||
end | end | ||
| Zeile 56: | Zeile 64: | ||
-- Zusammenbau | -- Zusammenbau | ||
t = t .. | t = t .. p.zeileKategorieSeite(fbdata) | ||
t = t .. fab.zeile{fbdata = fbdata, attr_name = "Untertitel", delimiter = ";"} | |||
t = t .. fab.zeile{ | t = t .. p.zeileReihe(fbdata) | ||
t = t .. | t = t .. fab.zeile{fbdata = fbdata, attr_name = "Band"} | ||
t = t .. fab.zeile{attr_name = " | |||
t = t .. p.zeileGenre(fbdata) | t = t .. p.zeileGenre(fbdata) | ||
t = t .. fab.zeile{attr_name = "Ausfuehrung" | t = t .. fab.zeile{fbdata = fbdata, attr_name = "Ausfuehrung"} | ||
t = t .. fab.zeile{attr_name = "Autor" | t = t .. fab.zeile{fbdata = fbdata, attr_name = "Autor", delimiter = ";"} | ||
t = t .. fab.zeile{attr_name = "Herausgeber", | t = t .. fab.zeile{fbdata = fbdata, attr_name = "Herausgeber", delimiter = ";"} | ||
t = t .. fab.zeile{attr_name = "Erscheinungsjahr", | t = t .. fab.zeile{fbdata = fbdata, attr_name = "Erscheinungsjahr", delimiter = ";"} | ||
t = t .. fab.zeile{attr_name = "Verlag" | t = t .. fab.zeile{fbdata = fbdata, attr_name = "Verlag", delimiter = ";"} | ||
t = t .. fab.zeile{attr_name = "Auflage" | t = t .. fab.zeile{fbdata = fbdata, attr_name = "Auflage"} | ||
t = t .. fab.zeile{attr_name = "Seitenzahl", | t = t .. fab.zeile{fbdata = fbdata, attr_name = "Seitenzahl", delimiter = ";"} | ||
t = t .. fab.zeile{attr_name = "ISBNnr" | t = t .. fab.zeile{fbdata = fbdata, attr_name = "ISBNnr", delimiter = ";"} | ||
t = t .. fab.zeile{attr_name = "Besonderheit", | t = t .. fab.zeile{fbdata = fbdata, attr_name = "Besonderheit", delimiter = ";"} | ||
t = t .. fab.zeile{attr_name = "BestandArchivFuerthWiki", | t = t .. fab.zeile{fbdata = fbdata, attr_name = "BestandArchivFuerthWiki", delimiter = ";"} | ||
t = t .. "</ | if fbdata.indexpage ~= nil then | ||
t = t .. "<dt>" .. wob.attrText("Index") .. " 👓</dt>" | |||
t = t .. "<dd>'''[[" .. fbdata.indexpage .. "|" .. string.sub(fbdata.indexpage, 7) .. "]]'''</dd>" | |||
end | |||
t = fab.table_header_footer(t) | |||
t = t .. fab.zeileSemantikBrowsenAbfrage(fbdata) | t = t .. fab.zeileSemantikBrowsenAbfrage(fbdata) | ||
-- Tab draus machen | -- Tab draus machen | ||
t = fab.tab(t, "Daten") | t = fab.tab(t, "Daten") | ||
-- mw. | -- mw.logObject(t, "t") | ||
return t | return t | ||
end | |||
function p.zeileKategorieSeite(fbdata, kindex) | |||
-- mw.log(fbdata, "zeileKategorieSeite(fbdata, " .. (kindex or 1) .. ")") | |||
-- mw.logObject(fbdata, "fbdata") | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.zeileKategorieSeite({pagename="fpn",kategorie={"kat1","kat2"},kategorie_einzahl={"k1","k2"},klasse={"kla1","kla2"},pargs={["Titel"]="T"}}, 2) | |||
local t = "" | |||
local kategorie_einzahl | |||
if fbdata.kategorie_einzahl ~= nil then | |||
kategorie_einzahl = fbdata.kategorie_einzahl[kindex or 1] | |||
else | |||
kategorie_einzahl = fbdata.klasse[kindex or 1] | |||
end | |||
t = t .. "<dt>[[:Kategorie:" .. fbdata.kategorie[kindex or 1] .. "|" .. kategorie_einzahl .. "-Titel]]</dt>" | |||
if fbdata.indexpage ~= nil then | |||
t = t .. "<dd>'''[[" .. fbdata.indexpage .. "|" .. fbdata.pargs["Titel"] .. "]]'''</dd>" | |||
else | |||
t = t .. "<dd>'''" .. fbdata.pargs["Titel"] .. "'''</dd>" | |||
end | |||
smw.addAttrToList(fbdata.attr.list, "Publikationstitel", fbdata.pargs["Titel"]) | |||
-- mw.logObject(t, "t") | |||
return t | |||
end | |||
function p.zeileReihe(fbdata) | |||
-- mw.log("zeileReihe(fbdata)") | |||
-- mw.logObject(fbdata.pargs, "fbdata.pargs") | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.zeileReihe{pargs={Reihe=" Chronik Geschichtswerkstatt ; Durch Fürth geführt (Buchreihe) ; BlaBla "}} | |||
local t = "" | |||
local reihe = str.splitAndStrip(fbdata.pargs["Reihe"], ";") | |||
if #reihe > 0 then | |||
if #reihe > 1 then | |||
t = t .. "<dt>" .. "[[Attribut:Reihe|Reihen]]</dt><dd>" | |||
else | |||
t = t .. "<dt>" .. "[[Attribut:Reihe|Reihe]]</dt><dd>" | |||
end | |||
for i, r in ipairs(reihe) do | |||
if i > 1 then | |||
t = t .. ", " | |||
end | |||
-- "(Buchreihe)" abschneiden (r_ohne) bzw. zu r hinzufügen | |||
local r_ohne | |||
if string.find(r, "(Buchreihe)") ~= nil then | |||
r_ohne = str.strip(string.sub(r, 1, string.len(r) - 11)) | |||
else | |||
r_ohne = r | |||
local r_mit = r .. " (Buchreihe)" | |||
if wik.pageExists(r_mit) or not wik.pageExists(r) then | |||
r = r_mit | |||
end | |||
end | |||
if wik.pageExists(r) then | |||
t = t .. "[[" .. r_ohne .. "]]" | |||
else | |||
t = t .. r_ohne | |||
end | |||
smw.addAttrToList(fbdata.attr.list, "Reihe", r) | |||
end | |||
t = t .. "</dd>" | |||
end | |||
-- mw.logObject(t, "t") | |||
return t | |||
end | end | ||
function p.zeileGenre(fbdata) | function p.zeileGenre(fbdata) | ||
-- mw.log("zeileGenre(fbdata)") | -- mw.log("zeileGenre(fbdata)") | ||
-- mw.logObject(fbdata.pargs) | -- mw.logObject(fbdata.pargs, "fbdata.pargs") | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p.zeileGenre{pargs={Genre="Stadtgeschichte;Biografie"}} | -- =p.zeileGenre{pargs={Genre="Stadtgeschichte;Biografie"}} | ||
local t = "" | local t = "" | ||
local genre = str.splitAndStrip(fbdata.pargs["Genre"] | local genre = str.splitAndStrip(fbdata.pargs["Genre"], ";") | ||
if #genre > 0 then | if #genre > 0 then | ||
if #genre > 1 then | if #genre > 1 then | ||
| Zeile 98: | Zeile 173: | ||
t = t .. ", " | t = t .. ", " | ||
end | end | ||
t = t .. "[[:Kategorie:" .. g .. "|" .. g .. "]][[Kategorie:" .. g .. "]] | t = t .. "[[:Kategorie:" .. g .. "|" .. g .. "]][[Kategorie:" .. g .. "]]" | ||
smw.addAttrToList(fbdata.attr.list, "Genre", g) | |||
end | end | ||
t = t .. "</dd>" | t = t .. "</dd>" | ||
end | end | ||
-- mw. | -- mw.logObject(t, "t") | ||
return t | return t | ||
end | end | ||
return p | return p | ||