Dieser Thread ist eine Verlegung der Diskussion "Farben im Tabber ändern" aus ElBossos Nachichtenseite. Die Titelfrage wurde bereits geklärt.
Dieser Thread ist eine Verlegung der Diskussion "Farben im Tabber ändern" aus ElBossos Nachichtenseite. Die Titelfrage wurde bereits geklärt.
Wow, da hast du dir laut Versionsvergleich aber viel Arbeit gemacht, aber das hat sich wirklich gelohnt.
Sehr nett von dir; vielen Dank! :D
Gern geschehen. :)
Nachdem du die Vorlage verbessert hattest, ist mir folgendes aufgefallen:
{{#ifeq:{{{Nummer dieses Bandes (Gib die Zahl 1 ein, wenn es nur einen Band gibt.)|}}}|1||{{!}}-
Kannst du mir, aus reinem Interesse, sagen, was dieses "{{#ifeq:
-Zeugs" ist, bzw. welche Wirkung es hat?
Danke! :)
20:21, 24. Okt. 2013 (UTC)
#ifeq ist eine Parser-Funktion.
Parser Funktionen sind dafür da, dass Inhalte dynamisch erstellt werden können um somit an die Seite besser angepasst zu werden.
Hier handelt es sich um eine Bedingungs-Abfrage:
WENN Bedingung1 = Bedingung 2 | DANN tu das | ODER das, wenn nicht
Übersetzt für Wikia sieht das dann so aus:
{{#ifeq: Bedingung1 | Bedingung2 |tu das|das, wenn nicht}}
Der Parser geht nun Wikia-Text von oben nach unten durch. Bei geschweiften Klammern ("{") wird er hellhörig und schaut genau hin. Zwei geschweifte Klammern sind für ihn Funktionen. Drei geschweifte Klammern sind für ihn Variablen. Während Funktionen in der Regel etwas bearbeiten, sind Variablen dafür da, Informationen zu speichern und wieder zu geben. Der Parser gelangt also an die Funktion. Das Schlüsselwort ifeq sagt ihm, dass er zwei TEXTE miteinander vergleichen soll. Nun erwartet er den Ersten Text (hier: "Bedingung1") um ihm zu sagen, dass das alles ist, verwendet man den senkrechten Strich ("|" - alt gr + </> Zeichen drücken). Danach erwartet der Parser den zweiten TEXT, mit dem er den ersten TEXT vergleichen soll. (Hier: "Bedingung2") Da die Texte nicht 100% gleich sind (die Zahl unterscheidet sich) wird er nicht die Anweisung ausführen (also den Inhalt des nächsten senkrechten Strichs überspringen) und dann direkt zum ODER-Teil gehen (das ist ein optionaler Bereich in dem man hinein schreiben kann, was passieren soll, wenn die IF-Anweisung nicht stimmt.
Nehmen wir an, dass die Texte gleich sind, dann würde er den ersten Teil ausführen und den Oder-Teil überspringen.
Ich bin der Meinung, dass man Funktionen / Programmieren ganz schwer erklären kann. Hier hilft nur selber probieren und ein Gefühl dafür bekommen, wie was funktioniert. Meist hat man dann AHA-Erlebnisse, die dir die besten Bücher nicht bescheren können.
Hier paar Codes, die du zum Einstieg nehmen kannst:
*{{#ifeq: Bedingung1 | Bedingung2 |tu das|das, wenn nicht}} *{{#ifeq: Bedingung1 | Bedingung1 |tu das|das, wenn nicht}} *{{#ifexpr: 1 > 0 |tu das|das, wenn nicht}} *{{#ifexpr: 1 > 1 |tu das|das, wenn nicht}} *{{#if: LEER |tu das|das, wenn nicht}} *{{#if: |tu das|das, wenn nicht}} *{{#if: LEER |tu das}} <<< ERGEBNIS *{{#if: |tu das}} <<< ERGEBNIS
Immer experimentieren. Das hilft am Besten.
Hm, hört sich kompliziert an.
Morgen habe ich mehr Zeit; dann werde ich das alles mal (versuchen zu) üben und ausprobieren.
Aber vielen Dank für deine Erklärung, ich glaube nicht, das man das hätte besser erklären könnte. :D
Bis morgen,
20:43, 24. Okt. 2013 (UTC)
Ich hab nur viel geschrieben. Wenn man es mal verstanden hat, dann ist es wirklich total einfach. - Nur halt schwer in Worte zu fassen :)
Viel Erfolg beim Probieren.
Das kann ich mir gut vorstellen ;) Danke.
Parser Funktionen sind dafür da, dass Inhalte dynamisch erstellt werden können um somit an die Seite besser angepasst zu werden.
Hier handelt es sich um eine Bedingungs-Abfrage:
WENN Bedingung1 = Bedingung 2 | DANN tu das | ODER das, wenn nicht
[...]
Hier paar Codes, die du zum Einstieg nehmen kannst:
*{{#ifeq: Bedingung1 | Bedingung2 |tu das|das, wenn nicht}} *{{#ifeq: Bedingung1 | Bedingung1 |tu das|das, wenn nicht}} *{{#ifexpr: 1 > 0 |tu das|das, wenn nicht}} *{{#ifexpr: 1 > 1 |tu das|das, wenn nicht}} *{{#if: LEER |tu das|das, wenn nicht}} *{{#if: |tu das|das, wenn nicht}} *{{#if: LEER |tu das}} <<< ERGEBNIS *{{#if: |tu das}} <<< ERGEBNIS
Immer experimentieren. Das hilft am Besten.
Ich brauche da noch ein bisschen Hilfe, am besten am folgenden Beispiel:
Ich möchte eine Art Aufzählung in einer Vorlage verwenden:
{{{Feld 1|}}} • {{{Feld 2|}}} • {{{Feld 3|}}}
Dabei müssen nicht alle Parameter ausgefüllt werden.
Für den Parameter {{{Feld 1|}}}
wird als Beispiel "Hallo" eingesetzt, die anderen beiden Parameter bleiben leer:
Die beiden Punkte sollen aber nicht erscheinen, daher habe ich folgendes aus deiner Hilfe abgeleitet:
{{{Feld1|}}} {{#ifeq: {{{Feld2|}}} | {{{Feld2}}} |• {{{Feld2}}}|}} {{#ifeq: {{{Feld3|}}} | {{{Feld3}}} |• {{{Feld3}}}|}}
Das funktioniert allerdings nicht.
Kannst du, 20M61, oder jemand anders, mir sagen, wo der Fehler liegt/was ich ändern muss?
Das würde mich sehr freuen.
Bis Bald,Der Fehler ist, dass dein Vergleich für den zweiten und dritten Parameter immer positiv ist, sobald der Parameter bei der Einbindung der Vorlage angegeben wird. Selbst wenn für den Parameter kein Wert angegeben wird, so wird doch immer noch ein leerer String mit einem leeren String verglichen. Als Folge dessen erhältst du damit einen Punkt, gefolgt vom leeren String.
Du musst also eigentlich darauf Testen, ob dem Parameter ein Wert übergeben wurde, der aus mindestens einem Zeichen besteht (wobei Leerzeichen nicht zählen). Es müsste also so aussehen:
Ah, okay, danke! :)