Vorlage:Karten: Unterschied zwischen den Versionen

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
K rev ... warum funktioniert das hier mit 30 Variablen und ewig vielen if-Konstruktionen, aber ein bisserl for-next-schleifiges, da raucht die Kamelo ab?
K Mist ... gerade ins falsche Wiki gerutscht
Zeile 1: Zeile 1:
<!--
<includeonly>{{#dpl:mode=userformat
--    Erstmal die Teilstring für das includematch definieren
--
-->{{#vardefine:nr|{{#if:{{{nr|}}}|.*\¦\s*nr\s*=\s*{{{nr}}}\s*}}}}<!--
-->{{#vardefine:typ|{{#if:{{{typ|}}}|.*\¦\s*typ\s*=\s*{{{typ|}}}\s*}}}}<!-- 
-->{{#vardefine:hk|{{#if:{{{hk|}}}|.*\¦\s*hk\s*=\s*{{{hk|}}}\s*}}}}<!--
-->{{#vardefine:name|{{#if:{{{name|}}}|.*\¦\s*name\s*=\s*{{{name|}}}\s*}}}}<!--
-->{{#vardefine:bild|{{#if:{{{bild|}}}|.*\¦\s*bild\s*=\s*{{{bild|}}}\s*}}}}<!--
-->{{#vardefine:ap|{{#if:{{{ap|}}}|.*\¦\s*ap\s*=\s*{{{ap|}}}\s*}}}}<!--
-->{{#vardefine:dp|{{#if:{{{dp|}}}|.*\¦\s*dp\s*=\s*{{{dp|}}}\s*}}}}<!--
-->{{#vardefine:lp|{{#if:{{{lp|}}}|.*\¦\s*lp\s*=\s*{{{lp|}}}\s*}}}}<!--
-->{{#vardefine:d|{{#if:{{{d|}}}|.*\¦\s*d\s*=\s*{{{d|}}}\s*}}}}<!--
-->{{#vardefine:klasse|{{#if:{{{klasse|}}}|.*\¦\s*klasse\s*=\s*{{{klasse|}}}\s*}}}}<!--
-->{{#vardefine:rasse|{{#if:{{{rasse|}}}|.*\¦\s*rasse\s*=\s*{{{rasse|}}}\s*}}}}<!--
-->{{#vardefine:abwehr|{{#if:{{{abwehr|}}}|.*\¦\s*abwehr\s*=\s*{{{abwehr|}}}\s*}}}}<!--
-->{{#vardefine:text|{{#if:{{{text|}}}|.*\¦\s*text\s*=\s*{{{text|}}}\s*}}}}<!--
-->{{#vardefine:handicap|{{#if:{{{handicap|}}}|.*\¦\s*handicap\s*=\s*{{{handicap|}}}\s*}}}}<!--
-->{{#vardefine:autor|{{#if:{{{autor|}}}|.*\¦\s*autor\s*=\s*{{{autor|}}}\s*}}}}<!--
-->{{#vardefine:datum|{{#if:{{{datum|}}}|.*\¦\s*datum\s*=\s*{{{datum|}}}\s*}}}}<!--
--
--    Nun den string zusammensetzen
--
-->{{#vardefine:includematch|/{{#var:typ}}{{#var:hk}}{{#var:name}}{{#var:bild}}{{#var:ap}}{{#var:dp}}{{#var:lp}}{{#var:d}}{{#var:klasse}}{{#var:rasse}}{{#var:angriff}}{{#var:abwehr}}{{#var:text}}{{#var:handicap}}{{#var:autor}}{{#var:datum}}\n/s}}<!--
--
--
--    Jetzt das Ganze für includenotmatch
--
-->{{#vardefine:nr!|{{#if:{{{nr!|{{{nr !|}}}}}}|.*\¦\s*nr\s*=\s*{{{nr!|{{{nr !|}}}}}}\s*}}}}<!--
-->{{#vardefine:typ!|{{#if:{{{typ!|{{{typ !|}}}}}}|.*\¦\s*typ\s*=\s*{{{typ!|{{{typ !|}}}}}}\s*}}}}<!-- 
-->{{#vardefine:hk!|{{#if:{{{hk!|{{{hk !|}}}}}}|.*\¦\s*hk\s*=\s*{{{hk!|{{{hk !|}}}}}}\s*\}}}}<!--
-->{{#vardefine:name!|{{#if:{{{name!|{{{name !|}}}}}}|.*\¦\s*name\s*=\s*{{{name!|{{{name !|}}}}}}\s*}}}}<!--
-->{{#vardefine:bild!|{{#if:{{{bild!|{{{bild !|}}}}}}|.*\¦\s*bild\s*=\s*{{{bild!|{{{bild !|}}}}}}}\s*}}}}<!--
-->{{#vardefine:ap!|{{#if:{{{ap!|{{{ap !|}}}}}}|.*\¦\s*ap\s*=\s*{{{ap!|{{{ap !|}}}}}}\s*}}}}<!--
-->{{#vardefine:dp!|{{#if:{{{dp!|{{{dp !|}}}}}}|.*\¦\s*dp\s*=\s*{{{dp!|{{{dp !|}}}}}}\s*}}}}<!--
-->{{#vardefine:lp!|{{#if:{{{lp!|{{{lp !|}}}}}}|.*\¦\s*lp\s*=\s*{{{lp!|{{{lp !|}}}}}}\s*}}}}<!--
-->{{#vardefine:d!|{{#if:{{{d!|{{{d !|}}}}}}|.*\¦\s*d\s*=\s*{{{d!|{{{d !|}}}}}}\s*}}}}<!--
-->{{#vardefine:klasse!|{{#if:{{{klasse!|{{{klasse !|}}}}}}|.*\¦\s*klasse\s*=\s*{{{klasse!|{{{klasse !|}}}}}}\s*}}}}<!--
-->{{#vardefine:rasse!|{{#if:{{{rasse!|{{{rasse !|}}}}}}|.*\¦\s*rasse\s*=\s*{{{rasse!|{{{rasse !|}}}}}}\s*\}}}}<!--
-->{{#vardefine:abwehr!|{{#if:{{{abwehr!|{{{abwehr !|}}}}}}|.*\¦\s*abwehr\s*=\s*{{{abwehr!|{{{abwehr !|}}}}}}\s*}}}}<!--
-->{{#vardefine:text!|{{#if:{{{text!|{{{text !|}}}}}}|.*\¦\s*text\s*=\s*{{{text!|{{{text !|}}}}}}\s*}}}}<!--
-->{{#vardefine:handicap!|{{#if:{{{handicap!|{{{handicap !|}}}}}}|.*\¦\s*handicap\s*=\s*{{{handicap!|{{{handicap !|}}}}}}\s*}}}}<!--
-->{{#vardefine:autor!|{{#if:{{{autor!|{{{autor !|}}}}}}|.*\¦\s*autor\s*=\s*{{{autor!|{{{autor !|}}}}}}\s*}}}}<!--
-->{{#vardefine:datum!|{{#if:{{{datum!|{{{datum !|}}}}}}|.*\¦\s*datum\s*=\s*{{{datum!|{{{datum !|}}}}}}\s*}}}}<!--
--
--    Bei includenotmatch müssen wir erstmal prüfen, ob der string nicht leer ist
--
-->{{#vardefine:includenotmatch|{{#if:{{#var:typ!}}{{#var:hk!}}{{#var:name!}}{{#var:bild!}}{{#var:ap!}}{{#var:dp!}}{{#var:lp!}}{{#var:d!}}{{#var:klasse!}}{{#var:rasse!}}{{#var:angriff!}}{{#var:abwehr!}}{{#var:text!}}{{#var:handicap!}}{{#var:autor!}}{{#var:datum!}}|/{{#var:typ!}}{{#var:hk!}}{{#var:name!}}{{#var:bild!}}{{#var:ap!}}{{#var:dp!}}{{#var:lp!}}{{#var:d!}}{{#var:klasse!}}{{#var:rasse!}}{{#var:angriff!}}{{#var:abwehr!}}{{#var:text!}}{{#var:handicap!}}{{#var:autor!}}{{#var:datum!}}\n/s}}}}<!--
--
--    Nun stecken wir das in die Datenbankabfrage; aber statt Karten spuckt
--    hier jeder Treffer nur die Kartennummern aus
--
--><includeonly>{{#dpl:mode=userformat
|noresultsheader=Es wurden keine entsprechenden Karten gefunden.
|noresultsheader=Es wurden keine entsprechenden Karten gefunden.
|namespace=Projekt
|namespace=Projekt
|titlematch=Ka-Mel-Oh!/Datenbank/%
|titlematch=Ka-Mel-Oh!/Datenbank/%
|category=Ka-Mel-Oh!/Datenbank
|category=Ka-Mel-Oh!/Datenbank
|includematch={{#var:includematch}}
|includematch=/
|includenotmatch={{#var:includenotmatch}}
{{{fulltext|{{Ka-Mel-Oh!/AutoRegExpr|nr|{{{nr|}}}|numerisch}}
|include={Ka-Mel-Oh}!¦size={{{size|100}}}¦float={{{float|left}}}
{{Ka-Mel-Oh!/AutoRegExpr|typ|{{{typ|}}}}}
}}</includeonly><noinclude>
{{Ka-Mel-Oh!/AutoRegExpr|hk|{{{hk|}}}|numerisch}}
----
{{Ka-Mel-Oh!/AutoRegExpr|name|{{{name|}}}}}
 
{{Ka-Mel-Oh!/AutoRegExpr|bild|{{{bild|}}}}}
 
{{Ka-Mel-Oh!/AutoRegExpr|ap|{{{ap|}}}|numerisch}}
<div class="hs-box" style="background-color:ivory;border:1px solid #ffa500; font-size:1; padding:-5px;">
{{Ka-Mel-Oh!/AutoRegExpr|dp|{{{dp|}}}|numerisch}}
Diese Vorlage erzeugt [[Projekt:Ka-Mel-Oh!|Ka-Mel-Oh!-Karten]] mit bestimmten Eigenschaften, die sich in den Datenbanken ...
{{Ka-Mel-Oh!/AutoRegExpr|lp|{{{lp|}}}|numerisch}}
 
{{Ka-Mel-Oh!/AutoRegExpr|d|{{{d|}}}|numerisch}}
{{#dpl:
{{Ka-Mel-Oh!/AutoRegExpr|klasse|{{{klasse|}}}}}
|namespace=Projekt
{{Ka-Mel-Oh!/AutoRegExpr|rasse|{{{rasse|}}}}}
|titlematch=Ka-Mel-Oh!/Datenbank/%
{{Ka-Mel-Oh!/AutoRegExpr|abwehr|{{{abwehr|}}}}}
|category=Ka-Mel-Oh!/Datenbank
{{Ka-Mel-Oh!/AutoRegExpr|text|{{{text|}}}}}
}}
{{Ka-Mel-Oh!/AutoRegExpr|handicap|{{{handicap|}}}}}
 
{{Ka-Mel-Oh!/AutoRegExpr|autor|{{{autor|}}}}}
... befinden. Man kann ihr die gleichen Parameter übergeben wie der [[Vorlage:Ka-Mel-Oh!]]:
{{Ka-Mel-Oh!/AutoRegExpr|datum|{{{datum|}}}}}}}}
<pre>
/s
{{Karten
|includenotmatch={{#if:{{{!nr|}}}{{{!typ|}}}{{{!hk|}}}{{{!name|}}}{{{!bild|}}}{{{!ap|}}}{{{!dp|}}}{{{!lp|}}}{{{!d|}}}{{{!klasse|}}}{{{!rasse|}}}{{{!abwehr|}}}{{{!text|}}}{{{!handicap|}}}{{{!autor|}}}{{{!datum|}}}{{{!fulltext|}}}|/
| nr =
{{{!fulltext|{{Ka-Mel-Oh!/AutoRegExpr|nr|{{{!nr|}}}|numerisch}}
| typ =
{{Ka-Mel-Oh!/AutoRegExpr|typ|{{{!typ|}}}}}
| hk =
{{Ka-Mel-Oh!/AutoRegExpr|hk|{{{!hk|}}}|numerisch}}
| name =
{{Ka-Mel-Oh!/AutoRegExpr|name|{{{!name|}}}}}
| bild =
{{Ka-Mel-Oh!/AutoRegExpr|bild|{{{!bild|}}}}}
| ap =
{{Ka-Mel-Oh!/AutoRegExpr|ap|{{{!ap|}}}|numerisch}}
| dp =
{{Ka-Mel-Oh!/AutoRegExpr|dp|{{{!dp|}}}|numerisch}}
| lp =
{{Ka-Mel-Oh!/AutoRegExpr|lp|{{{!lp|}}}|numerisch}}
| d =
{{Ka-Mel-Oh!/AutoRegExpr|d|{{{!d|}}}|numerisch}}
| klasse =
{{Ka-Mel-Oh!/AutoRegExpr|klasse|{{{!klasse|}}}}}
| rasse =
{{Ka-Mel-Oh!/AutoRegExpr|rasse|{{{!rasse|}}}}}
| angriff =
{{Ka-Mel-Oh!/AutoRegExpr|abwehr|{{{!abwehr|}}}}}
| abwehr =
{{Ka-Mel-Oh!/AutoRegExpr|text|{{{!text|}}}}}
| text =
{{Ka-Mel-Oh!/AutoRegExpr|handicap|{{{!handicap|}}}}}
| handicap =
{{Ka-Mel-Oh!/AutoRegExpr|autor|{{{!autor|}}}}}
| autor =
{{Ka-Mel-Oh!/AutoRegExpr|datum|{{{!datum|}}}}}}}}
| datum =
/s}}
}}
|include={Ka-Mel-Oh}{{{output|!¦size={{{size|100}}}¦float={{{float|left}}}}}}
</pre>
}}</includeonly>
Und erhält dann die Karten, die über die entsprechende Eigenschaft verfügen. Etwa ergibt <code><nowiki>{{Karten|typ = monster}}</nowiki></code> alle Monster-Karten (ohne [[Zusammenrottung]]en und [[Mutation]]en, s.u.), <code><nowiki>{{Karten|hk = 1}}</nowiki></code> die ganz [[bösonders]] seltenen Karten (die mit dem [[Bild:Kartenhäufigkeit1.png|15px]]) oder <code><nowiki>{{Karten|handicap = sonder}}</nowiki></code> die Sonderkarten. Mit <code><nowiki>{{Karten|autor</nowiki> = {{USERNAME|''Dein Kamelname''}}}}</code> kannst du alle von dir gestalteten Karten anzeigen lassen.<br>Diese Übergabeparameter lassen sich beliebig kombinieren, so ergibt <code><nowiki>{{Karten|ap = 20|dp = 20}}</nowiki></code> alle Karten, die sowohl 20 Angriffs-, als auch 20 Defensivpunkte besitzen. Beispiel: {{Karten|ap = 20|dp = 20}}{{clear}}
 
Durch Voranstellen eines <code>!</code> vor das <code>=</code>  lassen sich Werte (wie in [[Wikipedia:de:JavaScript|JavaScript]]) auf ungleich überprüfen:
<pre>
{{Karten
| nr !=
| typ !=
| hk !=
| name !=
| bild !=
| ap !=
| dp !=
| lp !=
| d !=
| klasse !=
| rasse !=
| angriff !=
| abwehr !=
| text !=
| handicap !=
| autor !=
| datum !=
}}
</pre>
<code><nowiki>{{Karten|typ != monster}}</nowiki></code> ergibt die Karten, die keine Monster sind, also Items, Zusammenrottungs- bzw. Mutationsitems, Zusammenrottungen und Mutationen. Um die Monsterkarten inklusive der Mutations-Monster und Zusammenrottungen zu erhalten, lassen sich [[wikipedia:de:Regulärer Ausdruck|reguläre Ausrücke]] verwenden, z.B. <code><nowiki>{{Karten|typ = (zm-)?monster}}</nowiki></code>, <code><nowiki>{{Karten|typ = .*monster}}</nowiki></code> oder <code><nowiki>{{Karten|typ = (monster¦zm-monster)}}</nowiki></code>.
 
Das Prüfen auf Gleicheit und Ungleichheit lässt sich ebenfalls kombinieren; <code><nowiki>{{Karten|typ = monster|handicap != sonder}}</nowiki></code> ergibt alle ''spielbaren'' Monster-Karten.
 
Mit <code><nowiki>{{Karten| ... |size = x}}</nowiki></code> lassen sich die ausgegebenen Karten skalieren, wobei <code>x</code> für Prozent steht. Beispiel <code><nowiki>{{Karten|ap = 20|dp = 20|size = 50}}</nowiki></code>:
 
{{Karten|ap = 20|dp = 20|size = 50}}
{{clear}}
Mit <code><nowiki>{{Karten| ... |float = y}}</nowiki></code> lässt sich das Text-Umbruchs-Verhalten der Karten bestimmen:
*<code>float = left</code> → Karten sind links ausgerichtet und nachfolgender Text steht ggf. rechts neben den Karten (standard-Einstellung)
*<code>float = right</code> → Karten sind rechts ausgerichtet und nachfolgender Text steht ggf. links neben den Karten
*<code>float = none</code> → jede einzelne(!) Karte erzeugt einen Zeilenumbruch. Das ist bei der Anzeige mehrer Karten unschön.
 
===Wichtig!===
 
Bitte für einzelne Karten [[Vorlage:Karte]] verwenden.
 
Die Vorlage hat bislang noch keine Sicherheits-features, d.h. ohne Angabe von Such-Parametern werden alle {{NUMBEROFCARDSS}} Karten erzeugt, was zu extrem langen Ladezeiten und mitunter zu Timeout-Fehlern führen kann. Bitte die Vorlage sparsam und mit Vorsicht einsetzen.
</div>[[Kategorie:Vorlagen für Ka-Mel-Oh!]]</noinclude>

Version vom 16. Mai 2009, 19:39 Uhr