Zum Inhalt springen

Hilfe:Vorlagenprogrammierung

Aus Wikivoyage
Themenübersicht > Bausteine > Vorlagen > Vorlagenprogrammierung

Um Vorlagen zu programmieren kann fundiertes Wissen nicht schaden, gute Ideen sind aber auf jeden Fall hilfreich. Bis sie fehlerfrei sind, sollten sie auf keinen Fall in fertigen Seiten eingesetzt werden. Und auch dann sollte erst mal ein Administrator einen Blick auf das Endprodukt werfen.

Bau einer Beispielvorlage

[Bearbeiten]

Im folgenden wird der Aufbau einer einfachen Umrechnung gezeigt: Temperatur von den in den USA üblichen Grad Fahrenheit in unsere Grad Celsius.

  • Anlegen einer leeren Vorlage. Dazu kann man die Seite Vorlage:Testvorlage benutzen, sie sollte leer sein. Wenn nicht, einfach diese Seite leeren und abspeichern
  • Grundstruktur anlegen:
  • Vorlagenteil mit den Tags
<includeonly> und
</includeonly> anlegen,
  • den Dokumentationsteil mit den Tags
<noinclude> und
einem ersten Hinweis auf den Zweck der Vorlage
</noinclude> anlegen.

Wie die Umrechnung funktioniert, findet man z.B. auf der Seite Celsius-Fahrenheit. Danach geht die Berechnung so:

  • Fahrenheit minus 32, das ganze zuerst mal 5 und dann durch 9. Oder anders herum.

Parser-Funktion #if:

[Bearbeiten]

Aber wie in die Vorlage schreiben? Zunächst muss der Wert übernommen werden, es ist der erste und einzige Parameter, also heißt er {{{1}}}. Es gibt immer den Sonderfall, dass irgend ein User keinen Wert für diesen Parameter angibt. Für diesen Fall brauchen wir folgende Konstruktion:

  • Wenn Parameter 1 nicht leer, dann werte den Ausdruck aus, sonst bringe einen Hinweis.

Das sieht dann so aus: #if: {{{1| }}} | dann Bedingung 1 | sonst ... }} Nun wird ausgewertet.

Parser-Funktion #expr:

[Bearbeiten]

Werte den Begriff aus: 5 * Wert -32, das ganze zusammen in Klammern und dann durch 9.

Das sieht dann in der Schreibweise der Vorlage so aus:

  • {{#if: {{{1| }}} | {{#expr: (5* ( {{{1}}} - 32) /9 ) }} | kein Wert eingegeben }}

Unsere Vorlagen-Testseite heißt jetzt Vorlage:Vorlagentest, und wir rufen sie auf mit einem Zahlenwert, also mit 1 Parameter oder 1 Variable. Dazu braucht man eine Seite zum Testen des Aufrufs. Geeignet ist z.B. die Seite Hilfe:Spielwiese, mit der man experimentieren darf. Als Zahlenwert nehmen wir mal die Zahl 86, weil sie das ganzzahlige Ergebnis 30 liefert. Der Aufruf wird geschrieben:

{{Vorlage:Vorlagentest|86}}. Wenn unsere Vorlage gespeichert ist, liefert die Vorschau den Wert 30


Allerdings hat das noch einen Schönheitsfehler: es können je nach Parameter auch Dezimalzahlen mit 6 Nachkommastellen als Ergebnis kommen, als muss man das Ergebnis runden:

Rundung mit round

[Bearbeiten]

Eine Rundung mit round 1 rundet auf 1 Dezimale, round 3 auf 3 Dezimalen, round 0 auf ganze Zahlen.

  • {{#if: {{{1| }}} | {{#expr: ((5* ( {{{1}}} - 32) /9 ) round 1 ) }} | kein Wert eingegeben }}.

Jetzt wird gerundet: {{Vorlage:Vorlagentest}} liefert jetzt 37.8 , nur bei der Aufgabe von Dezimalwerten muss man aufpassen: Dezimalpunkt, kein Komma verwenden! Also nicht 72,5, sondern 72.5!

Einordnen der Vorlage

[Bearbeiten]

Die fertige Vorlage erhält jetzt durch Verschieben ihren richtigen Namen, Sie ist jetzt abgespeichert unter Vorlage:T-F-C. Gleichzeitig wurde sie durch [[Kategorie:Mathematical function templates|T-F-C]] in eine passende Kategorie eingeordnet.

Beispiele:

  • {{T-F-C|73}} liefert 22.8
  • {{T-F-C|98}} liefert 36.7


Auch die Umkehrung von Celsius in Fahrenheit ist auf die gleiche Weise ausgeführt und steht unter Vorlage:T-C-F

Beispiel:

  • {{T-C-F|23}} liefert 73
  • {{T-C-F|36.5}} liefert 98


Da die Fahrenheit-Grade hier ganzzahlig berechnet werden, gibt es Rundungsdifferenzen.

Besonderheiten der Vorlagenprogrammierung

[Bearbeiten]

Für Vorlagen reservierte Zeichen

[Bearbeiten]

Gemein wird es, wenn der auszugebende Text Zeichen enthält, die eigentlich der Vorlagenprogrammierung direkt dienen. Dann reagiert die Vorlage zu recht verwirrt. Hier helfen dann nur noch HTML-Entitäten. Hier findest du ein paar wichtige Klassiker:

Zeichen { | } = [ ] * # : ; Leerzeichen < >
Entity &#123; &#124; &#125; &#61; &#91; &#93; &#42; &#35; &#58; &#59; &#32; &#lt; &#gt;

Nun sind die Codes nicht immer leicht zu merken. Dafür habe wir noch ein paar Hilfsmittel parat. Einige wichtige Zeichen haben wir in Vorlagen verpackt. Somit lässt sich die Wikisoftware in geregelte Bahnen lenken. So erzeugt ein {{=}} ein Gleichheitszeichen, nur interpretiert der Parser dies dann nicht ungewollt als Parameter, sondern als ganz normalen Text. Du findest diese praktischen Helfer in der Kategorie:Syntaxhilfe.

Übergabe von Tabellen

[Bearbeiten]

Da das Zeichen „|“ zur Trennung von Parametern dient, darf es nicht selbst in Parameterwerten vorkommen. Um dennoch eine funktionstüchtige Tabelle zu erhalten, sind die nachstehenden Hilfsvorlagen zu benutzen:

Vorlage {{!}} {{!-}} oder {{!}}- {{!!}} {{!-!}} {{!}}+ {{(!}} oder {{{!}} {{!)}} oder {{!}}}
Inhalt | |- || |-
|
|+ {| |}

Alle Vorlagen findest du in der Kategorie:Syntaxhilfe. Größere Tabellenteile können auch auf eine Unterseite der Vorlage ausgelagert und von dort eingebunden werden. Ist auch das nicht praktikabel, kann immer noch auf HTML (<td> usw.) zurückgegriffen werden.