Guten Abend zusammen,
ich bastle mal wieder an einer Infobox herum und bin immer noch fasziniert von theme-source
als Möglichkeit, die Infoboxen einzufärben.
<group> <header>Allgemeines</header> ... <data source="Typ"><label>Typ</label><format>[[{{{Typ}}}]]</format></data> </group> <group layout="horizontal"> <data source="Typ1"><label>1. Typ</label><format>[[{{{Typ1}}}]]</format></data> <data source="Typ2"><label>2. Typ</label><format>[[{{{Typ2}}}]]</format></data> </group>
Ich versuche, die Farbe der Infobox mittels theme-source
abhängig vom Parameter zu machen, der bei Typ oder bei Typ1 eingegeben wird. Es ist immer nur ein "oder". Entweder steht ein Wert bei "Typ" in einer Infobox oder gemeinsam jeweils ein Wert bei "Typ1" und "Typ2". Es gibt keinen Fall, in dem bei allen drei Parametern etwas steht. "Typ2" spielt bei der Färbung allerdings keine Rolle/soll keine spielen.
Von daher wäre mir eine Lösung wie bspw. <infobox theme source="Typ";"Typ1">
etc. am liebsten gewesen.
Da das scheinbar nicht möglich ist, versuchte ich, nach Hinweisen von Amon, nur den Parameter "Typ" als theme-source
zu benutzen (zusätzlich anstelle von "Typ1"). Generell kein schlechter Einfall, aber die Vorlage will nicht drauf anspringen. Logisch, wenn ich zweimal den gleichen Parameter für unterschiedliche Fälle nutzen möchte.
Also ging ich davon aus, dass mir die ParserFunctions (vorrangig #if) hier weiterhelfen könnten.
Aber wie ich auch probierte, ich bekam kein gewünschtes Ergebnis hin. Was auch wieder am gleichen Parameter lag.
Daher schreibe ich hier mal als Text, was die ParserFunction im Idealfall beschreiben soll:
- Wenn "Typ2" leer ist, soll nur das obere "Typ" angezeigt werden (das untere "Typ" soll logischerweise verschwinden).
- Wenn "Typ2" nicht leer ist, soll nur das untere "Typ" angezeigt werden (das obere "Typ" soll logischerweise verschwinden).
Grob gesagt wäre das hier das, was ich meine, aber der Kenner sieht gleich den Irrsinn: {{#if:{{{Typ2|}}}|{{{Typ|}}}(Anmerkung:Das untere "Typ" ist gemeint.)|{{{Typ|}}}(Anmerkung:Das obere "Typ" ist gemeint.)}}
Ich hoffe, dass es eine Funktion gibt, die mir helfen kann.