Zum Inhalt springen

Hilfe Diskussion:Vorlagenprogrammierung

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 3. Januar 2007 um 16:48 Uhr durch Rhododendronbusch (Diskussion | Beiträge) ([[Vorlage:R-Sätze]] und [[Vorlage:S-Sätze]] in mehrfacher Einbindung). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Letzter Kommentar: vor 18 Jahren von Rhododendronbusch in Abschnitt Vorlage:R-Sätze und Vorlage:S-Sätze in mehrfacher Einbindung

Guter Code, schlechter Code

Gibt es irgendwo Beispiele für guten Code vs. schlechten Code? Mit Wikitext lässt sich inzwischen ganz schön konfus Programmieren, deshalb auch meine Forderung, alle Vorlagen ohne Dokumentation zu löschen. Allerdings sind Whitespaces und die Zeichen ':', '|' und '=' ein Problem (oder Bestandteil von Bugs). -- Nichtich 18:35, 4. Mai 2006 (CEST)Beantworten

Beispiele wüsste ich direkt keine. Für komplizierte Vorlagen, so sie denn wirklich sein müssen, sollte nicht nur ihre Verwendung dokumentiert sein, sondern auch ihre Implementierung. (Ich sitze allerdings im sprichwörtlichen Glashaus: Die Implementation einiger Vorlagen auf Wikinews, die auf meinem Mist gewachsen sind, ist vollkommen undokumentiert.) Sonst kommt mir nur noch das KISS-Prinzip in den Sinn. —da Pete (ばか) 20:54, 4. Mai 2006 (CEST)Beantworten
Mir fällt da spontan ein Negativbeispiel ein: Kategorie:Kalendernavigation, ein schier unüberschaubarer Brocken, und trotzdem vieles nur Geschnipsel. Die etwa von 5. Mai oder Juli 2002 verwendeten Kalender sind nur spärlich zusammengefasst auf Vorlage Diskussion:Kalender Monat Jahr beschrieben, mal eben in eine der Vorlagen reinzuschauen und sie undokumentiert zu verstehen ist nahezu unmöglich, vor allem, weil für den fertigen Kalender wie gesagt eine Vielzahl von Vorlagen verwendet wird. Durch Parameter kann ein Großteil der Kategorie sicher eingespart werden (wie von mir angestrebt). Niemand braucht zum Beispiel mehrere Kalenderköpfe für die einzelnen Monate, wenn man etwa eine Vorlage:Vormonat anlegt.
Soll nur ein kleiner Einblick in das Problem gewesen sein. Hier findet ihr alle meine Unterseiten, darunter sind auch die Entwürfe für ein neues Kalendernavigationssystem. --CyRoXX (?) 21:14, 4. Mai 2006 (CEST)Beantworten
Nachtrag: Das Front-End dieses Entwurfs ist Benutzer:CyRoXX/Kalender. --CyRoXX (?) 21:24, 4. Mai 2006 (CEST)Beantworten

Zeichenkettenvergleich

Hi, klärt mich auf, wenn ich falsch liege, aber der Abschnitt erweckt den Eindruck, daß es möglich ist Zeichenketten zu vergleichen, dabei ist nur das Vorhandensein prüfbar. --chrislb 问题 11:00, 5. Mai 2006 (CEST)Beantworten

Zeichenkettenvergleich ist mit #ifeq oder #switch möglich. Der Abschnitt ist also nicht sehr gut benannt. -- sebmol ? ! 11:15, 5. Mai 2006 (CEST)Beantworten
Wenn wir schon Arithmetische Operationen haben, dann vermisse ich auch Zeichenkettenoperationen. Bräuchte eine substring-Operation --chrislb 问题 11:37, 5. Mai 2006 (CEST)Beantworten
Da bist du nicht der Erste. Auf m:Talk:ParserFunctions wurde das schon angesprochen, aber (bisher?) nicht umgesetzt. —da Pete (ばか) 12:33, 5. Mai 2006 (CEST)Beantworten
Hab den Abschnitt mal in "Überprüfung von Zeichenketten" umbenannt. Bei der Übertragung und Namensgebung des Abschnitts habe ich mich wohl zu sehr von der Vorlage:Booleq leiten lassen. --CyRoXX (?) 10:30, 9. Mai 2006 (CEST)Beantworten

Tabellenspalten ausblenden?

Moin! Kann man hiermit auch Tabellenzeilen ausblenden, wenn sie leer sind? Tabellen enthalten ja auch |-Zeichen, scheint nicht die beste Wahl gewesen zu sein, hier einfach nur | und nicht etwa |: oder so zu verwenden. Bisher nutze ich class="{{{Bild|}}}HiddenStructure", um Zeilen auszublenden, siehe Vorlage:Koreanischer Begriff. -- iGEL·대화 10:00, 9. Mai 2006 (CEST)Beantworten

Ja, kann man, allerdings erst mal nur mit Vorlagenhack. Über eine Nachbesserung der Syntax für solche populäre Verwendung der Parserfunktionen wird gerade diskutiert. "hiddenStructure" ist auf jeden Fall keine gute Lösung und sollte unbedingt vermieden werden. -- sebmol ? ! 10:08, 9. Mai 2006 (CEST)Beantworten
Danke für die Antwort. Soll ich dann einen solchen Hack benutzen oder warten, bis es eine Änderung der Syntax gibt? -- iGEL·대화 11:21, 9. Mai 2006 (CEST)Beantworten
Idealerweise warten. Wenn das nicht möglich ist, benutz den {{!}}-Hack. Dadurch wird es einfacher, alle Vorkommen dann zu finden, sobald die Syntaxerweiterung steht. -- sebmol ? ! 11:32, 9. Mai 2006 (CEST)Beantworten
Ich hab jetzt erstmal die Tabelle mit dem alten HTML-Syntax gebaut, nun kann ich das auch einsetzen. Ist natürlich auch nicht besonders schön, zumal es ja auch Bots gibt, die die HTML-Tabellen ersetzen. -- iGEL·대화 09:37, 18. Mai 2006 (CEST)Beantworten

Hi, bei allen Vorlagen, die Links enthalten gibt es das Problem, das der Link dann fett wird, wenn die Vorlage im Linkziel verwendet wird. So würde die Vorlage:zh, die einen Link auf Chinesische Schrift beinhaltet, auf selbiger Seite nicht mehr wie sonst aussehen, weswegen sie auch dort noch nicht eingesetzt wird. Hat jemand eine Idee, wie sich das generell beheben lässt? --chrislb 问题 17:29, 10. Mai 2006 (CEST)Beantworten

Ich glaube nicht, dass das möglich ist. Die Fettschreibung wird von der Software so festgelegt. Die einzige Möglichkeit wäre, den CSS-Code innerhalb der Seite zu überschreiben. Das ist aber ledier nicht unbedingt auf alle Browser anwendbar und auch für den Bearbeiter nicht nachvollziehbar, was da passiert. Hast du mal ein Beispiel, wo das besonders stört? -- sebmol ? ! 17:36, 10. Mai 2006 (CEST)Beantworten
Naja, es gibt außer dieser Vorlage noch andere, die für Namen ohne Lateinische Buchstaben verwendet werden. Wir diskutieren grade, die Vorlage zu erweitern, dann hätten wir drei Links, und somit drei Seiten, wo es stören würde.
Statt
chin. 休息 xiūxī
erscheint dann
chin. 休息 xiūxī,
wenn es auf der Seite Chinesische Schrift steht, und das direkt neben dem Hauptlemma, das allein fett sein soll. --chrislb 问题 20:22, 10. Mai 2006 (CEST)Beantworten
Ja, ich glaube nicht, dass das möglich ist. Übrigens möchte ich nebenbei auch noch sehr Vorlage:lang ans Herzen legen. Damit kann für fremdsprachige Texte dme Browser die erwartete Sprache angegeben werden. -- sebmol ? ! 20:31, 10. Mai 2006 (CEST)Beantworten
Ich habe gerade noch ne Idee, wie das u.U. doch gelöst werden kann. Ich werd mich heute nacht mal daran setzen und hoffentlich morgen eine Lösung bereithaben. -- sebmol ? ! 20:33, 10. Mai 2006 (CEST)Beantworten
Meine Lösung würde lediglich darauf hinauslaufen, dass man eine #ifeg:-Abfrage verwendet, die überprüft, ob das Link-Ziel gleich der Seite ist, auf der die Vorlage verwendet wird. Wenn dem so ist, wird chin. als ganz normaler Text ausgegeben, ansonsten als Link. Das müsste man dann entsprechend in jeder der Vorlagen realisieren. Ich bin aber natürlich auch gespannt, was sebmol in seinem stillen Kämmerlein zu diesem Thema ausheckt ;-) --CyRoXX (? ±) 20:39, 10. Mai 2006 (CEST)Beantworten
Was kreativeres ist mir auch nicht eingefallen, nur dass ich diese Funktionalität in eine extra Vorlage:NoSelfLink geschrieben habe. -- sebmol ? ! 10:54, 11. Mai 2006 (CEST)Beantworten
@sebmol: Bin "Hauptautor" der Vorlage Diskussion:lang ;) --chrislb 问题 21:28, 10. Mai 2006 (CEST)Beantworten

Projekt:Infobox Medien

kann mir jemand bitte mal den Fehler, den ich hier gemacht habe erklären und/oder vielleicht mal in den Vorlagen:Buch und Buchvorlage korrigieren
Eiragorn Let's talk about... Horst Fuchs 18:28, 11. Mai 2006 (CEST)Beantworten

sieht das ok aus fürs erste? schau dir mal in der versionsgeschichte kurz an, was ich gemacht hab, hab nämlich grad keine zeit (RL ruft nach mir) --CyRoXX (? ±) 18:46, 11. Mai 2006 (CEST)Beantworten
Vielen Dank für deine ganze Hilfe, glaub ich habe das ganze endlich kapiert und den endgültigen Quelltext herausgefunden (Vorlage:Infobox Serie). Hier ist jetzt nämlich alles perfekt übersichtlich, hab mit subst: in meinem Benutzerraum herumgebastelt
Eiragorn Let's talk about... Horst Fuchs 17:47, 12. Mai 2006 (CEST)Beantworten

Rechnen und ausgeben grosser Zahlen

Ich möchte gerne grosse Zahlen formatiert ausgeben (also mit tausenderpunkt) und trotzdem mit ihnen rechnen. gebe ich die zahl gleich mit tausenderpunkt an, dürfte ich ja nicht mehr mit ihnen rechnen können. Any idea? --Huebi 22:08, 25. Mai 2006 (CEST)Beantworten

Auch wenn ich schon bisschen Alkohol intus habe; Also da mehrere Tausenderpunkte vorkommen können, denke ich kommst du um eine if-Abfrage (Größe) nicht rum. Dann würde ich die Zahl in Abschnitte zerlegen, durch entrechenden Tausenderwert dividieren (runden) und als String mit Punkt verbinden. -- Ολλίμίνατορέ 23:29, 25. Mai 2006 (CEST)Beantworten
Ich brauche keinen staatlich festgelegten Tag, um mich zu betrinken :) Aber ich habs schon befürchtet, wie es zu gehen hat, Zahl unformatiert übergeben und aufbereitet ausgeben, was aber schon bei nur 2 Tausenderpunkten ein ziemlciher #expr Truemmer wird. --Huebi 06:37, 26. Mai 2006 (CEST)Beantworten
Hat sich mittlerweile jemand weiter mit der Problematik Tausendertrennzeichen beschäftigt? Wir haben nämlich auf der Vorlage:Infobox Flughafen gleich mehrere Dinge, die damit versehen werden sollen. Ich finde bei dieser Problematik sollte daran gedacht werden, dass die Zahlen am Besten ohne Tausendertreenzeichen gespeichert werden sollten, da sie so für viele Dinge zur Verfügung stehen, wie zum Beispiel Berechnungen innerhalb der Artikel oder Abfragen von Bots, oder nachträglichen Sortierungen. Da ist nichts zu machen, wenn man nicht konsequent das gleiche Format anwendet. Stimmt ihr mir nicht zu??? Vielleicht können wir hier: Hilfe_Diskussion:Vorlagenprogrammierung#Tausendertrennzeichen weiterdiskutieren--Tobi 20:31, 24. Jul 2006 (CEST)

Rundungsfehler

{{#expr: ((123456789 / 1000) round 0 ) mod 1000 }} ergibt 457 anstatt 456. Aergerlich sowas. Was kann man da machen? Hmmm 123456,789 gerundet erinbt natuerlich 123457, ich glaub da muss ich mit mod und Subtraktion arbeiten... Any other idea? --Huebi 11:48, 26. Mai 2006 (CEST)Beantworten

Ja, bevor du rundest musst du den mod subtraieren. Nein, mit den zur Verfügung stehenden Funktionen (ist alles sehr umständlich) bleibt nur dieser Weg (soweit ich weiß) -- Ολλίμίνατορέ 15:18, 26. Mai 2006 (CEST)Beantworten
Nein, viel einfacher: Durch Vertauschen des Rundens und Mods erhältst du das gewünschte Ergebnis. {{#expr: ((123456789 / 1000) mod 1000 ) round 0 }} = 456. --CyRoXX (? ±) 16:26, 27. Mai 2006 (CEST)Beantworten
Also ich hab das aufgegeben, es sollte etwas werden, was 123456789 123.456.789 macht und aus 789 natuerlich nicht 0.0.789, sondern 789. Damit kann man einerseits mit den Zahlen noch rechnen, andererseits sie noch ausgeben. Das ganze artet aber IMHO aus. --Huebi 16:44, 27. Mai 2006 (CEST)Beantworten
Ja, ich glaube auch. Allein bei diesen drei Dreiergruppen dürftest du einen kleinen Batzen If-Abfragen und Berechnungen per expr haben. Und da wir ja (zum Glück?) keine Programmiersprache haben, sondern nur wenige Elemente einer solchen, ist es auch nicht möglich, eine Zahl beliebiger Länge zu verarbeiten, zum Beispiel nicht nur 123456789, sondern auch 123456789123456789 oder vielleicht auch ein Googol. --CyRoXX (? ±) 17:07, 27. Mai 2006 (CEST)Beantworten
Wenn man ein Maximum (fest)setzt, dann müsste für jeden Tausender ein if reichen (wobei klein angefangen wird). Sind 10 Tausender nicht noch legitim? :-p. Die Frage wäre; wo läge denn die Grenze? -- Ολλίμίνατορέ 19:52, 27. Mai 2006 (CEST)Beantworten
Fuer Einwohnerzahlen und Flächen reichen 3 Gruppen dicke. Ich mein, ich habs ja so gut wie fertig, aber um die 0 zu unterdruecken, braucht man ein if, indem ein dickes expr steckt, um zu entscheiden, das man das ergebnis des dicken expr doch braucht und auszugeben hat. ich weiss nicht, ob es das wert ist. Schoen waere es schon, wenn man Prozentuale verteilungen in der Vorlage abhandlen könnte oder zB Einwohner pro km² ausrechnen könnte. erschwerden kommt allerdings das Komma hinzu.... --Huebi 19:59, 27. Mai 2006 (CEST)Beantworten
Naja, ob wir für derartiges eine Vorlage benötigen? Zum einen gibt es sowieso immer mal wieder Streit um das einzig wahre Tausendertrennzeichen. Zum anderen kann man selbiges ganz einfach von Hand setzen und Prozente sowie die Bevölkerungsdichte sollte man per Taschenrechner ermitteln können oder lieber die Finger davon lassen, wenn man nichts davon versteht. Die entsprechenden Angaben sollten direkt in den Artikel geschrieben und nicht von Vorlagen abhängig gemacht werden. --CyRoXX (? ±) 22:16, 27. Mai 2006 (CEST)Beantworten
Naja ich steh da eher auf dem Standpunkt "let the machine do what the machine can do for you" Und wenn sich eine einwohnerzahl ändert dann will ich nicht noch nachschauen muessen wo die noch "versteckt" ist. Mir ist aber der Aufwand schlicht (noch) zu hoch. --Huebi 22:22, 27. Mai 2006 (CEST)Beantworten
Hat sich mittlerweile jemand weiter mit der Problematik Tausendertrennzeichen beschäftigt? Wir haben nämlich auf der Vorlage:Infobox Flughafen gleich mehrere Dinge, die damit versehen werden sollen. Ich finde bei dieser Problematik sollte daran gedacht werden, dass die Zahlen am Besten ohne Tausendertreenzeichen gespeichert werden sollten, da sie so für viele Dinge zur Verfügung stehen, wie zum Beispiel Berechnungen innerhalb der Artikel oder Abfragen von Bots, oder nachträglichen Sortierungen. Da ist nichts zu machen, wenn man nicht konsequent das gleiche Format anwendet. Stimmt ihr mir nicht zu??? Vielleicht können wir hier: Hilfe_Diskussion:Vorlagenprogrammierung#Tausendertrennzeichen weiterdiskutieren--Tobi 20:34, 24. Jul 2006 (CEST)

Konstante vs. Variablen

Gibt es auch die Möglichkeiten Konstanten in Variablen zu definieren? Das heißt, ich gebe in einer Vorlage etwas ein, z.B. {{X|Y}}, und kann das angegebene Y dann in anderen Vorlagen weiter benutzen. Konkret geht es mir um mein Infoboxen-Programm: Ich möchte gerne in der übergeordeten Vorlage (Medien) einen Titel definieren, auf den ich, ohne ihn nochmal eingeben zu müssen - beispielsweise in der Reihen-Box - wieder zugreifen kann...
Eiragorn Let's talk about... Veni, Vidi, Vomui 02:39, 13. Jul 2006 (CEST)

Soweit ich weiß, ist das nicht möglich. -- sebmol ? ! 07:59, 13. Jul 2006 (CEST)

Rückfrage zur Verwendung

Hallo Leute, ich war schon drauf und dran hier nachzufragen wie das mit der Vorlagenprogrammierung (VP) an einem konkreten Beispiel funktioniert, hab es dann aber in einer Stunde doch selbst hinbekommen. Meine Frage bezieht sich jetzt nur noch auf folgende zwei Punkte: Ist VP soweit entwickelt, dass man solche Vorlagen auch im normalen Artikel-Namensraum verwenden darf? Auf meiner Gedanken-, Überlege- und Übersichtsseite hab ich die Vorlagenidee entwickelt, wäre schön, wenn sich mal jemand die fortschrittlichste der drei Vorlagen ansehen und mir (hier) sagen könnte, ob das alles sauber programmiert ist und man es so verwenden kann. Danke und Gruß --BLueFiSH  (Klick mich!) 01:49, 14. Jul 2006 (CEST) P.S. Als Vorlagennamen würde ich dann "Vorlage:LDLBerlin" wählen, jemand bessere Ideen? Sollte kurz und einprägsam sein.

Du willst also mithilfe der Vorlagenprogrammierung die Linkbeschreibung etwas flexibler machen. Das sieht so gut aus, auch wenn ich mir selbst das #switch gespart und stattdessen #ifeq benutzt hätte. Aber das ist ja eher nebensächlich. Tatsächlich wird Vorlagenprogrammierung schon intensiv benutzt, auch für Vorlagen innerhalb von Artikeln. Wenn du Fragen zur Verwendung der VP hast oder irgendwo nicht weiter kommst (die Funktionen habn ein paar "Eigenheiten"), kannst du damit gerne in der Vorlagenwerkstatt vorbeischauen. -- sebmol ? ! 07:56, 14. Jul 2006 (CEST)

Tausendertrennzeichen

Hat sich mittlerweile jemand weiter mit der Problematik Tausendertrennzeichen beschäftigt? Wir haben nämlich auf der Vorlage:Infobox Flughafen gleich mehrere Dinge, die damit versehen werden sollen. Ich finde bei dieser Problematik sollte daran gedacht werden, dass die Zahlen am Besten ohne Tausendertreenzeichen gespeichert werden sollten, da sie so für viele Dinge zur Verfügung stehen, wie zum Beispiel Berechnungen innerhalb der Artikel oder Abfragen von Bots, oder nachträglichen Sortierungen. Da ist nichts zu machen, wenn man nicht konsequent das gleiche Format anwendet. Stimmt ihr mir nicht zu???--Tobi 20:33, 24. Jul 2006 (CEST)

Wir haben das Problem nun gelöst und es steht die Vorlage:TTZ zur Verfügung. Sie funktioniert derzeit bis 999.999 und soll noch auf 999.999.999 erweitert werden.--Tobi 22:31, 25. Jul 2006 (CEST)
Die sollte nun aber wegen formatnum: auch eingestampft werden. --Huebi 11:04, 3. Aug 2006 (CEST)
Vorlage:Infobox Flughafen benutzt jetzt formatnum:. SLA ist gestellt. —da Pete (ばか) 11:21, 3. Aug 2006 (CEST)

Datum

Bie mir bleibt das Datum immer noch auf dem 2. August, obwohl wir schon den 3.August haben. Ich habe meine Benutzerseite schon 1000mal nachgeladen, aber es tuts sich nichts--Fritzbox 09:34, 3. Aug 2006 (CEST)

Wenn ich auf deine Seite gehe, erscheint da 3. August. Ein Problem ist allerdings, dass Seiten in der Wikipedia zwischengespeichert werden, damit sie nicht bei jedem Aufruf neu berechnet werden müssen. -- sebmol ? ! 10:19, 3. Aug 2006 (CEST)

LAs

Es wurden nun die Vorlagen Babel und Navigationsleiste programmiert, sollte man nun nicht botgestützt alle Einbindungen der alten Vorlagen Navigationsleiste mit und ohne Bild, bzw. Babel-1 bis Babel-X geändert werden und dann ein SLA gestellt werden...
Eiragorn Let's talk about... Veni, Vidi, Vomui 16:49, 9. Aug 2006 (CEST)

Ich hab deine Anfrage an Wikipedia Diskussion:WikiProjekt Vorlagen weitergeleitet, hier ist wohl nicht der Ort, das zu diskutieren. —da Pete (ばか) 18:04, 9. Aug 2006 (CEST)

#if: mit Teil-Zeichenketten?

Die Vorlage, an der ich arbeite, soll erkennen, ob ihr mit PLZ=51000 eine oder mit PLZ=51000–51006 mehrere Postleitzahlen übergeben wurden. Wäre das hier z. B. PHP, böten sich mehrere Möglichkeiten an:

  • if (strlen(PLZ) > 5) (Zeichenkette ist länger als 5)
  • if (substr(PLZ, 5, 1)) (es existiert ein 6. Zeichen)
  • if ((int)PLZ != PLZ) (nach der Umwandlung in eine Zahl ist der Wert unverändert)

Leider habe ich keine Möglichkeit gefunden, irgend eine dieser Ideen mit den jetzigen Mitteln der Vorlagenprogrammierung zu realisieren. Wer kann helfen? --TM 22:13, 30. Aug 2006 (CEST)

Sowas geht leider nicht. Du kannst alternativ mehrere Parameter verwenden. -- sebmol ? ! 22:31, 30. Aug 2006 (CEST)


Hätte eine thematisch ähnliche Frage, nämlich ob ich irgendwie ermitteln kann, ob das was übergeben wurde "09045816,T" oder nur "09045816" ist. Konkret gehts darum, dass bei Vorhandensein des Zusatzes ",T" ein Hinweistext ausgegeben wird und bei "09045816" die ganz normale Vorlage. Hab auch schon rumprobiert, aber will nich so wie ich will. --BLueFiSH  (Klick mich!) 13:21, 23. Sep 2006 (CEST)

Wenn der Text vor ",T" immer eine Zahl ist, dann ist das mithilfe der Funktionen uc und lc möglich. Dazu bedient man sich der Tatsache, dass Zahlen groß- und kleingeschrieben identisch sind, das T aber nicht. Ergo: 09045816 == 09045816, aber 09045816,T != 09045816,t. In eine ifeq-Anweisung verpackt, lässt sich dann folgendes schreiben: {{#ifeq:{{UC:{{{1|}}}}}|{{LC:{{{1|}}}}}|ohne T|mit T}}:
  • {{#ifeq:{{UC:09045816,T}}|{{LC:09045816,T}}|ohne T|mit T}}: mit T
  • {{#ifeq:{{UC:09045816}}|{{LC:09045816}}|ohne T|mit T}}: ohne T
-- sebmol ? ! 13:30, 23. Sep 2006 (CEST)
Klasse, funzt, du hasts drauf. Mein Ausprobieren ging in die Richtung von wegen /1 oder /2*2 aber das wollte nicht. Gruß --BLueFiSH  (Klick mich!) 16:20, 23. Sep 2006 (CEST)
Trotzdem brauchen wir irgendwan unbedingt auch die Funktionen {{strlen:…}} und {{substr:…}} (am besten identisch zu der in PHP, also auch mit negativen Zahlen). --TM 20:21, 23. Sep 2006 (CEST)
Du meinst, man soll gleich php code eingeben können? :) --Huebi 20:27, 23. Sep 2006 (CEST)
meta:StringFunctions bräuchte nur installiert zu werden, oder? -- ParaDox 01:55, 24. Sep 2006 (CEST)
Bitte nicht! -- Nichtich 23:12, 24. Sep 2006 (CEST)
Warum nicht? Würde die Performanz der Wikipedia-Server einbrechen? Ich hätte eine ganze Reihe von Anwendungsfällen, die sich mit Zeichenkettenfunktionen elegant lösen ließen. Beispiele:
  • Wenn der Vorlage PLZ=10000 übergeben wird, soll „Postleitzahl“ angezeigt werden, wenn PLZ=10000–10005 übergeben wird, „Postleitzahlen“. Momentan ist ist das nur mit einem zweiten Parameter oder einem komplizierten, fehleranfälligen Konstrukt aus #expr und #if lösbar.
  • Die Vorlage soll den Artikel Samtgemeinde Bardowick automatisch kategorisieren, und zwar unter „B“, nicht unter „S“. Hierzu wäre es nötig, aus dem Lemma Samtgemeinde Bardowick“ die Teilzeichenkette „Samtgemeinde “ zu entfernen. Auch das ist momentan nur mit einem zusätzlichen Parameter lösbar. --TM 00:00, 25. Sep 2006 (CEST)
Also letzteres ist mit defaultwerten noch brauchbar lösbar. Ich kann aber auch mnur warnen, zuviel freizugeben, denn dann werden sich immer mehr Freizeitprogrammierer hier tummeln und ihre abenteurlishcten Konstrukte abladen. Zumindest die ganze {{{}}} Klammerei schreckt jetzt noch genugend Leute ab :) Ich war lange genug im Usenet in php und Perlgruppen unterwegs und hab die abenteuerlichsten Konstrukte gesehen, blos weil PHP und PErl von so jedem Hoster angebiten wurden, dachte jeder, er könne das auch. In der Entwicklunf der Wikipedia sind viele Ähnlichkeiten in Vorgängen zu beobachten, wie si auch um Usenet abliefen. --Huebi 08:04, 25. Sep 2006 (CEST)

Falls es jemanden interessiert: {{#ifeq: {{#expr: {{{PLZ}}} }} | {{{PLZ}}} | Einzahl | Mehrzahl }}. Das funktioniert natürlich nur, wenn bei „51000–51006“ der typografisch korrekte Bis-Strich verwendet wird. --TM 12:41, 5. Nov. 2006 (CET)Beantworten

Effizienzprobleme

Ich habe u.a. die Vorlage Benutzer:Divisor/Vorlage:Koordinaten_Text geschrieben und musste feststellen das sie zwar völlig korrekt, aber, wider Erwarten, sehr ineffizient arbeitet. Da kam mir der Verdacht dies könnte nicht an meiner Programmierung liegen sondern anm Vorlagen-Expansions-Algorithmus.

Beispiel:

{{#if: {{Kurze_Berechnung}}|{{Sehr_Lange_Berechnung_1}}|{{Sehr_Lange_Berechnung_2}}}}

In diesem Fall wäre es effizient zuerst den Parameter '{{Kurze_Berechnung}}' komplett zu expandieren, anschließend die Vorlage '{{#if:}}' zu expandieren, und erst zuletzt, je nach Ergebnis, die Vorlage '{{Sehr_Lange_Berechnung_1}}' bzw. '{{Sehr_Lange_Berechnung_2}}' zu expandieren.

Aufgrund der Erfahrungen mit meiner Vorlage habe ich nun den Verdacht, dass sowohl der if-Zweig als auch der else-Zweig expandiert werden bevor schließlich eines der beiden Ergebnisse ausgewählt wird. Ist dieser Verdacht begründet?

Eine andere Möglichkeit die Effizienzprobleme meiner Vorlage zu erklären ist die oftmalige Verwendung eines Parameters in einer Vorlage.

Beispiel:

{{Parameter_oft_verwendet|{{Sehr_Lange_Berechnung}}}}

In diesem Fall wäre es effizient zuerst den Parameter '{{Sehr_Lange_Berechnung}}' komplett zu expandieren und erst anschließend die Vorlage '{{Parameter_oft_verwendet}}'.

Auch hier könnte ein ineffizienter Vorlagen-Expansions-Algorithmus durch eine vorzeitge Expansion der '{{Parameter_oft_verwendet}}' Vorlage dafür sorgen, das die Expansion von '{{Sehr_Lange_Berechnung}}' mehrmals durchgeführt werden muss.

Wie funktioniert der aktuelle Mediawiki Vorlagen-Expansions-Algorithmus also?

Expandiert er beide beschriebenen Beispiele effizient?

-- Divisor 14:01, 9. Sep 2006 (CEST)

Wie hast du festgestellt, dass sie ineffizient arbeiten? -- sebmol ? ! 14:17, 9. Sep 2006 (CEST)
Falls ich auf meiner Spielwiese zehnmal hintereinander:
{{Benutzer:Divisor/Vorlage:Koordinaten Text|1|N|1|W}}
auswerten lasse dauert die Auswertung ca. 15 Sekunden und ist danach noch nicht einmal komplett durchgeführt worden.
Bei einer zehnmaligen Ausführung von:
{{Benutzer:Divisor/Vorlage:Koordinaten Text|34.445|1.56|-23.45|N|1.326|20.4554|-23.45|E}}
dauert die Auswertung ca. 30 Sekunden und ist danach ebenfalls nicht komplett.
-- Divisor 15:26, 9. Sep 2006 (CEST)
Vorlagen werden aber nicht permanent beim ausliefern einer Seite neu berechnet. Shortcuteval ist also kein grosser Performancebooster. --Huebi 17:41, 9. Sep 2006 (CEST)
Das weiß ich schon, aber lästig ist es trotzdem. Sieht so aus als müsste ich damit leben. -- Divisor 20:12, 9. Sep 2006 (CEST)

Spezialseite „Vorlagen expandieren“

"Vorlagen mit Parserfunktionen können auf der Spezialseite „Vorlagen expandieren“ getestet werden." - Wie? Kann mir jemand erklären, wie ich Parameter übergebe, z.B. wenn meine Vorlage nach Parameter c fragt? --chrislb 问题 19:50, 19. Okt. 2006 (CEST)Beantworten

Frage 2

Ich versuche eine "boolsche"-Variable zu definieren, eine, die entweder da, oder nicht da ist, aber keinen Wert zugewiesen bekommt. Schreiben möchte ich:

{{zh|kurz|c=香港|p=Xiānggǎng}}

Allerdings klappt es nur mit einer Zuweisung, erst dann ist die Variable offensichtlich definiert:

{{zh|kurz=|c=香港|p=Xiānggǎng}}

Kann das jemand bestätigen, oder gibt es da eine Lösung. Für jeden Hinweis dankbar. --chrislb 问题 20:52, 19. Okt. 2006 (CEST)Beantworten

Jetzt auch hier: meta:Talk:ParserFunctions#Defining_a_parameter --chrislb 问题 23:46, 20. Okt. 2006 (CEST)Beantworten

Frage: Nutzung der IF auf eigenen Wikis

Ist das überhaupt möglich? Standardmäßig scheint dies nicht der Fall zu sein. Ich versuchte gerade eine if-Abfrage für eine Vorlage zu entwerfen, jedoch ignoriert meine Wiki diese Befehle. Weiss jemand hier zu Rat ? --84.58.238.143 11:59, 1. Nov. 2006 (CET)Beantworten

Du musst die ParserFunctions-Extension installieren. sebmol ? ! 12:02, 1. Nov. 2006 (CET)Beantworten
Herzlichen dank. Gefunden und funktioniert sofort!

--84.58.238.143 12:09, 1. Nov. 2006 (CET)Beantworten

Bitte um Hilfe

Hi Leute, wer sich mit dem switch auskennt, sollte sich bitte mal Portal:Türkei/Gedenktafel2 ansehen und zum Laufen bringen.

Ich komme einfach nicht darauf, wie ich das machen soll. --Ferdi Öztürk 17:20, 15. Nov. 2006 (CET)Beantworten

So? Gruß, --Rhododendronbusch 00:26, 16. Nov. 2006 (CET)Beantworten
Vielen Dank an alle für die Hilfe --Ferdi Öztürk 17:24, 16. Nov. 2006 (CET)Beantworten

Random?

Gibt es eigentlich einen Zufallsgenerator? Weil ich möchte Portal:Türkei/Schon gewusst aus Portal:Türkei/Schon gewusst/Archiv generieren. So, dass immer drei Einträge per Zufall aus dem Archiv auf dem Portal angezeigt werden, täglich neue drei? Dankeschön --Ferdi Öztürk 17:24, 16. Nov. 2006 (CET)Beantworten

Sowas gab es kurzzeitig, wurde aber wieder ausgeschaltet, weil es einerseits zu Performanceproblemen führte, andererseits gern von Vandalen benutzt wurde. sebmol ? ! 17:42, 16. Nov. 2006 (CET)Beantworten
Schade, muss ich mir was anderes einfallen lassen. Danke --Ferdi Öztürk 17:57, 16. Nov. 2006 (CET) (Und wenn mir jemand mal Arbeit abnehmen will, der sowieso :) besser programmieren kann als ich: Portal:Türkei/Aktuelles - denke darüber nach wie ich das dazu kriege, dass es automatisch aktualisiert, ohne dass ich die Einträge händisch mache)Beantworten
hat sich erledigt. Danke --Ferdi Öztürk 13:22, 17. Nov. 2006 (CET)Beantworten

Tnavbar

Hi Leute... ich benutze en:Template:Tnavbar -> Portal:Türkei/Tnavbar.

Es funktioniert zwar technisch gut: Portal:Türkei (Portal:Türkei/Navbox), aber mich stört dass ich diese URL-Symbole da drin habe, im Unterschied zur "sauberen" en-Version.

Bitte dringend um Hilfe --Ferdi Öztürk 13:29, 17. Nov. 2006 (CET)Beantworten

Neue Funktion {{#rel2abs}}

Auf WP:NEU#Softwareerweiterungen hatte ich es schon kurz erwähnt: Es gibt eine neue Parserfunktion {{#rel2abs}}. Sie basiert auf Bug 8021. Ich würde sie ja auch gerne hier dokumentieren, nur irgendwie erschließt sich mir der Sinn und Zweck nicht so ganz. Habt jemand von euch eine Idee, einen Anwendungfall? --Raymond Disk. Bew. 08:24, 7. Dez. 2006 (CET)Beantworten

Umwandlung von Geokoordinaten

Hi! Könnte mir wer bitte bei der Vorlage:Infobox Polen helfen. Wenn ich in einen Artikel die folgende Vorlage mit automatischer Umwandlung der Geokoordinaten von Grad auf dezimal einfüge, so funktioniert alles schön und gut:

Opole (Polen)
Opole (Polen)
Opole
Die Stadt Oppeln auf der Karte von Polen.

{{Positionskarte |Polen |label=Opole |lat={{#expr: 50 + (40 / 60) + (0 / 3600) round 3 }} |long={{#expr: 17 + (56 / 60) + (0 / 3600) round 3 }} |position=right |width=155 |float=right |caption=Die Stadt [[Oppeln]] auf der Karte von [[Polen]].}}

Im Artikel Oppeln sollte bei Entfernung des Parameters " |Karte= " genau diese Positionskarte erscheinen. Weiss nicht, was ich bei der Berechnung in der Vorlage falsch mache. Anscheinend funktioniert es nicht mit Parametern wie {{{Koordinate_Breitengrad}}}. --Capriccio 18:42, 12. Dez. 2006 (CET)Beantworten

Ach ja, de Formel hab ich hierher: http://kanadier.gps-info.de/d-fugawi_textimport.htm. Funktioniert eigentlich, wie am konkreten Beispiel ersichtlich. Möchte nur, dass dies auch in der Vorlage klappt... --Capriccio 18:48, 12. Dez. 2006 (CET)Beantworten
Ach komisch. Hat sich erledigt. Habe einfach die Bogensekunden entfernt, was ohnehin für die Punktberechnung irrelevant ist, ausser man will überpräzise sein. ;) --Capriccio 19:00, 12. Dez. 2006 (CET)Beantworten
Würde trotzdem gerne in Bogensekunden rechnen können. Bitte in Vorlage:Positionskarte einbauen. --Capriccio 00:47, 14. Dez. 2006 (CET)Beantworten

Beispiele

Wäre es möglich zur Vorlagenprogrammierung auf ein paar Vorlagen, die die entsprechenden Funktionen auch anwenden zu verweisen, denn so erschließt sich auf den ersten Blick oftmals nicht wirklich, wie einzelne Funktionen angewendet werden, bzw wofür man sie anwenden kann. --ErhardRainer Diskussion 08:58, 23. Dez. 2006 (CET)Beantworten

Einbindung von Vorlagen

Hallo! Ich habe folgendes Problem: Wenn ich auf meiner Spielwiese (A) meine Testvorlage (B) einbinde und keinen Parameter übergebe werden dennoch beide Vorlagen (C und D) in A eingebunden! Wie kann ich nun vermeiden, wenn in A kein Parameter angegeben wird, dass A in der Liste von "Links auf diese Seite" von C auftaucht? Gibts da nen Workaround oder eine Lösung? Gruß, --Rhododendronbusch «D» 00:52, 2. Jan. 2007 (CET)Beantworten

Hier die Seiten:

A - Benutzer:Rhododendronbusch/Spielwiese-1
{{Benutzer:Rhododendronbusch/Testvorlage}}
B - Benutzer:Rhododendronbusch/Testvorlage
{{#if: {{{Testparameter| }}}
  | {{Benutzer:Rhododendronbusch/Testparameter angegeben}}
  | {{Benutzer:Rhododendronbusch/Testparameter nicht angegeben}} }}
C - Benutzer:Rhododendronbusch/Testparameter angegeben
Testparameter angegeben
D - Benutzer:Rhododendronbusch/Testparameter nicht angegeben
Testparameter nicht angegeben

--Rhododendronbusch «D» 00:52, 2. Jan. 2007 (CET)Beantworten

Nein, das lässt sich wohl nicht ändern. Auch wenn C nicht Teil der aktuell durch die Vorlage erzeugten Ausgabe ist, so beeinflusst C doch immerhin in Abhängigkeit vom angegebenen Parameter die Ausgabe. Würde man C löschen, so würde deine Testvorlage B nicht mehr richtig funktionieren. Das ganze kann man also als eine Auflistung von Abhängigkeiten verstehen. Somit ist man auch gewissermaßen vor unberechtigter Löschung geschützt, da man genau sehen kann, wo überall die Vorlage möglicherweise ihren Dienst tut bzw. wo bei Änderung der Parameter die Vorlage tatsächlich eingebunden/benötigt würde. Was ich damit sagen will: Das System hat schon seine Berechtigung. Allerdings würde sich die Leserlichkeit der "Links auf diese Seite" mMn deutlich erhöhen, wenn die Abhängigkeiten nicht als Liste, sondern als hierarchischer Baum angezeigt würden. Dann sähe man nämlich genau, auf welche Vorlagen eine bestimmte andere Vorlage direkt zurückgreift. --CyRoXX (? ±) 01:11, 2. Jan. 2007 (CET)Beantworten
Das oben geschilderte und vereinfachte Problem bezieht sich auf die, in Zusammenarbeit mit der Redaktion Chemie, entwickelten Formatvorlage für Chemikalien. Dort gibt es Parameter, die, wenn nicht angegeben, die Vorlage:Strukturformel nicht vorhanden bzw. Vorlage:unbekannter Wert einfügen sollen. Über "Links auf diese Seite" kann man dann Artikel erfassen, bei denen Werte bzw. Strukturformeln fehlen. Wenn Du sagst, dass das nicht geht, dann müsste man statt der jeweiligen Vorlagen eine entsprechende Kategorie erschaffen, die dann eingebunden bzw. nicht eingebunden wird. Ansonsten sehe ich da dann keinen Workaround. Danke+Gruß, --Rhododendronbusch «D» 01:24, 2. Jan. 2007 (CET)Beantworten
Jupp, dein konkretes Problem lässt sich am besten über eben solche Wartungskategorien lösen. Eine ("Strukturformel nicht vorhanden") sollte dann ausreichen. --CyRoXX (? ±) 01:29, 2. Jan. 2007 (CET)Beantworten
Danke Dir. --Rhododendronbusch «D» 13:00, 3. Jan. 2007 (CET)Beantworten

Vorlage:R-Sätze und Vorlage:S-Sätze in mehrfacher Einbindung

Und weils so schön ist, gleich das nächste Problem: Wenn ich die genannten Vorlagen mehrfach in einen Artikel einbinde, gibt es Probleme bei der Anzeige der zweiten Vorlage. Beispiel: Jonon oder Zellulosenitrat. Weiß jemand Rat? --Rhododendronbusch «D» 13:00, 3. Jan. 2007 (CET)Beantworten

Du meinst sicherlich die Ausgabe "S: S-Sätze", oder? --CyRoXX (? ±) 13:07, 3. Jan. 2007 (CET)Beantworten
Jipp. Dort sollte eigentlich "S: 61" stehen. Gruß, --Rhododendronbusch «D» 13:10, 3. Jan. 2007 (CET)Beantworten
Ich glaube, ich habe den Schuldigen im Seitenquelltext ausfindig gemacht:
<!-- WARNING: template omitted, pre-expand include size too large -->
Mal sehen, ob ich es durch Entschlacken der Vorlagen in den Griff bekomme. --CyRoXX (? ±) 13:33, 3. Jan. 2007 (CET)Beantworten
Sieht das jetzt so gut aus? Ich habe erstmal die Vorlage:S-Sätze geändert. Jetzt ist der Abstand zwischen zwei direkt hintereinander angegebenen S-Sätzen zwangsweise etwas größer, aber ich finde es sogar etwas übersichtlicher. Wenn es so passt, kann man das ja dann auch für die R-Sätze umsetzen. Gruß, --CyRoXX (? ±) 14:18, 3. Jan. 2007 (CET)Beantworten
Das sieht wirklich schlanker aus. Und die beiden Artikel zeigen jetzt auch beides an. Das kann man auch so in der anderen Vorlage übernehmen. Wo hast du die "Warning" gesehen? Gruß, --Rhododendronbusch «D» 15:48, 3. Jan. 2007 (CET)Beantworten