Modul:Auszeichnung
Seiten-Übersicht
| Hauptseite | Unterseiten | ||
|---|---|---|---|
| Allgemein | |||
| Faktenbox | Vorlagen | ||
| Formulare |
|
||
| Module | |||
| Abfrage | Vorlagen |
| |
| Formulare |
| ||
| Sonstige | |||
Unterseiten
Siehe auch
- Auszeichnungen
- Kategorie:Personen
- Kategorie:Auszeichnungen
- Formular:Abfrage Auszeichnungen
- Vorlage:Abfrage Auszeichnungen
p = {}
local dev = require("Modul:Development")
local str = require("Modul:String")
local wik = require("Modul:Wiki")
function p.AbfrageAuszeichnungen(frame)
mw.log("AbfrageAuszeichnungen(frame)")
mw.logObject(frame, "frame")
-- Konsolenzeile zum Debuggen:
-- p.AbfrageAuszeichnungen{pargs={["Aufschlüsselung"]="Auszeichnungen"}}
-- p.AbfrageAuszeichnungen{pargs={["Aufschlüsselung"]="Personen"}}
local t = ""
-- Attribut-Werte übernehmen
local frame, pargs = dev.GetFrameAndParentArgs(frame)
local attr_list = {
"Auszeichnung", "Aufschlüsselung",
"VerleihungVon", "VerleihungBis",
"GeburtsdatumVon", "GeburtsdatumBis",
"Geburtsort", "Geschlecht"}
local attr, empty = wik.getArgs(frame.args, attr_list) -- Filter-Werte können direkt oder
if empty then -- indirekt (ParentArgs) übergeben werden
attr = wik.getArgs(pargs, attr_list)
end
-- Seiten-Selektoren für die Abfragen
local page_selector_basis, page_selector_ort,
page_selector_ort_fuerth, page_selector_ort_nicht_fuerth,
page_selector_maennlich, page_selector_weiblich,
page_selector_divers, page_selector_geschlecht,
top_prefix, top_postfix, sub_prefix, sub_postfix =
"", "", "", "", "", "", "", ""
if attr["Aufschlüsselung"] == "Auszeichnungen" then
top_prefix, top_postfix = "[[-has subobject::<q>", "</q>]]" -- Abfrage aus Sicht der Auszeichnung-subobject-Ebene
sub_prefix, sub_postfix = "", "" -- top-Attribute brauchen "-has subobject" drumherum
elseif attr["Aufschlüsselung"] == "Personen" then
top_prefix, top_postfix = "", "" -- Abfrage aus Sicht der Personen-top-Ebene (nicht-subobject-Ebene)
sub_prefix, sub_postfix = "[[has subobject::<q>", "</q>]]" -- subobject-Attribute brauchen "has subobject" drumherum
end
-- Basis-Selektor
page_selector_basis = top_prefix .. "[[:+]][[Kategorie:Personen]]" .. top_postfix
page_selector_basis = page_selector_basis .. sub_prefix .. "[[SubObjektTyp::Auszeichnung]]" .. sub_postfix
if attr["Auszeichnung"] ~= nil then
local auszeichnungen = str.split2(attr["Auszeichnung"], ",")
auszeichnungen = table.concat(auszeichnungen, "||")
page_selector_basis = page_selector_basis .. sub_prefix .. "[[Auszeichnung::" .. auszeichnungen .. "]]" .. sub_postfix
end
if attr["VerleihungVon"] ~= nil then
page_selector_basis = page_selector_basis .. sub_prefix .. "[[VerleihungAm::>" .. attr["VerleihungVon"] .. "]]" .. sub_postfix
end
if attr["VerleihungBis"] ~= nil then
page_selector_basis = page_selector_basis .. sub_prefix .. "[[VerleihungAm::<" .. attr["VerleihungBis"] .. "]]" .. sub_postfix
end
if attr["GeburtsdatumVon"] ~= nil then
page_selector_basis = page_selector_basis .. top_prefix .. "[[Geburtsdatum::>" .. attr["GeburtsdatumVon"] .. "]]" .. top_postfix
end
if attr["GeburtsdatumBis"] ~= nil then
page_selector_basis = page_selector_basis .. top_prefix .. "[[Geburtsdatum::<" .. attr["GeburtsdatumBis"] .. "]]" .. top_postfix
end
mw.logObject(page_selector_basis, "page_selector_basis")
-- Geburtsort-Selektoren
page_selector_ort_fuerth = top_prefix .. "[[Geburtsort::Fürth]]" .. top_postfix
if attr["Geburtsort"] == "Fürth" then
page_selector_ort = page_selector_ort_fuerth
end
if attr["Geburtsort"] == "außerhalb" then
page_selector_ort = top_prefix .. "[[Geburtsort::!Fürth]]" .. top_postfix
end
mw.logObject(page_selector_ort_fuerth, "page_selector_ort_fuerth")
mw.logObject(page_selector_ort, "page_selector_ort")
-- Geschlecht-Selektoren
page_selector_maennlich = top_prefix .. "[[Geschlecht::männlich]]" .. top_postfix
page_selector_weiblich = top_prefix .. "[[Geschlecht::weiblich]]" .. top_postfix
page_selector_divers = top_prefix .. "[[Geschlecht::divers]]" .. top_postfix
if attr["Geschlecht"] ~= nil then
page_selector_geschlecht = top_prefix .. "[[Geschlecht::" .. attr["Geschlecht"] .. "]]" .. top_postfix
end
mw.logObject(page_selector_maennlich, "page_selector_maennlich")
mw.logObject(page_selector_weiblich, "page_selector_weiblich")
mw.logObject(page_selector_divers, "page_selector_divers")
mw.logObject(page_selector_geschlecht, "page_selector_geschlecht")
-- Statistik
t = t .. "<br>'''{{#ask: " .. page_selector_basis .. page_selector_ort .. page_selector_geschlecht .. "| format=count | limit=10000 }} "
if attr["Aufschlüsselung"] == "Personen" then
t = t .. "Personen mit "
end
t = t .. "Auszeichnungen gefunden"
if attr["Geschlecht"] == nil then
t = t .. "; davon {{#ask: " .. page_selector_basis .. page_selector_ort .. page_selector_weiblich .. "| format=count | limit=10000 }} Frauen"
t = t .. ", {{#ask: " .. page_selector_basis .. page_selector_ort .. page_selector_maennlich .. "| format=count | limit=10000 }} Männer"
t = t .. " und {{#ask: " .. page_selector_basis .. page_selector_ort .. page_selector_divers .. "| format=count | limit=10000 }} Divers '''(ggf. Rest nicht angegeben)'''"
end
if attr["Geburtsort"] == nil then
t = t .. "; davon {{#ask: " .. page_selector_basis .. page_selector_ort_fuerth .. page_selector_geschlecht .. "| format=count | limit=10000 }} gebürtige Fürther"
end
t = t .. "<br>'''"
-- die eigentliche Tabelle
t = t .. "{{#ask:" .. page_selector_basis .. page_selector_ort .. page_selector_geschlecht
if attr["Aufschlüsselung"] == "Auszeichnungen" then
t = t .. "|mainlabel=-"
t = t .. "|?-has subobject.Seite=Person"
t = t .. "|?-has subobject.Geburtsdatum"
t = t .. "|?-has subobject.Geburtsort"
t = t .. "|?-has subobject.Geschlecht"
t = t .. "|?Auszeichnung"
t = t .. "|?VerleihungAm=Verleihung"
t = t .. "|?AuszeichnungBemerkung=Bemerkung"
elseif attr["Aufschlüsselung"] == "Personen" then
t = t .. "|mainlabel=Person"
t = t .. "|?Geburtsdatum"
t = t .. "|?Geburtsort"
t = t .. "|?Geschlecht"
t = t .. "|?Beruf"
t = t .. "|?has subobject.Auszeichnung"
end
t = t .. "|format=table"
t = t .. "|limit=200"
t = t .. "|default=<br/>'''Es konnten keine " .. attr["Aufschlüsselung"] .. " mit diesen Eingaben gefunden werden.'''<br/>"
t = t .. "}}"
mw.logObject(t, "t")
t = frame:preprocess(t)
return t
end
return p