Vorlage:Karten: Unterschied zwischen den Versionen

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
K (Mehr features kommen bald, z.B. sowas wie {{Karten|nr = 1 - 15}} für Karten 1 bis 15)
 
 
(13 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
<!--
+
<includeonly>{{#dpl:
--    Erstmal die Teilstring für das includematch definieren
+
|format=,
--
+
|noresultsheader={{{noresults|Es wurden keine entsprechenden Karten gefunden.}}}
-->{{#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.
 
 
|namespace=Projekt
 
|namespace=Projekt
|titlematch=Ka-Mel-Oh!/Datenbank/%
+
|titlematch=Ka-Mel-Oh!/Karte/%
|category=Ka-Mel-Oh!/Datenbank
+
|category={{#if: {{{serie|}}} | {{DplSelectMultikat|val={{{serie|}}}|prefix_ws=Ka-Mel-Oh/Serie:}} }}
|includematch={{#var:includematch}}
+
|category={{#if: {{{typ|}}} | {{DplSelectMultikat|val={{{typ|}}}|prefix_ws=Ka-Mel-Oh/Typ:}} }}
|includenotmatch={{#var:includenotmatch}}
+
|category={{#if: {{{handicap|}}} | {{DplSelectMultikat|val={{{handicap|}}}|prefix_ws=Ka-Mel-Oh/Handicap:}} }}
|include={Ka-Mel-Oh}!¦size={{{size|100}}}¦float={{{float|left}}}
+
|notcategory={{#if: {{{!serie|}}} | {{DplSelectMultikat|val={{{!serie|}}}|prefix_ws=Ka-Mel-Oh/Serie:}} }}
 +
|notcategory={{#if: {{{!typ|}}} | {{DplSelectMultikat|val={{{!typ|}}}|prefix_ws=Ka-Mel-Oh/Typ:}} }}
 +
|notcategory={{#if: {{{!handicap|}}} | {{DplSelectMultikat|val={{{!handicap|}}}|prefix_ws=Ka-Mel-Oh/Handicap:}} }}
 +
|includematch=/
 +
{{{fulltext|{{Ka-Mel-Oh!/AutoRegExpr|nr|{{{nr|}}}|numerisch}}
 +
{{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}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|dp|{{{dp|}}}|numerisch}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|lp|{{{lp|}}}|numerisch}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|d|{{{d|}}}|numerisch}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|klasse|{{{klasse|}}}}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|rasse|{{{rasse|}}}}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|abwehr|{{{abwehr|}}}}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|text|{{{text|}}}}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|autor|{{{autor|}}}}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|datum|{{{datum|}}}}}}}}
 +
/s
 +
|includenotmatch={{#if:{{{!nr|}}}{{{!hk|}}}{{{!name|}}}{{{!bild|}}}{{{!ap|}}}{{{!dp|}}}{{{!lp|}}}{{{!d|}}}{{{!klasse|}}}{{{!rasse|}}}{{{!abwehr|}}}{{{!text|}}}{{{!autor|}}}{{{!datum|}}}{{{!fulltext|}}}|/
 +
{{{!fulltext|{{Ka-Mel-Oh!/AutoRegExpr|nr|{{{!nr|}}}|numerisch}}
 +
{{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}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|dp|{{{!dp|}}}|numerisch}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|lp|{{{!lp|}}}|numerisch}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|d|{{{!d|}}}|numerisch}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|klasse|{{{!klasse|}}}}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|rasse|{{{!rasse|}}}}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|abwehr|{{{!abwehr|}}}}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|text|{{{!text|}}}}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|autor|{{{!autor|}}}}}
 +
{{Ka-Mel-Oh!/AutoRegExpr|datum|{{{!datum|}}}}}}}}
 +
/s}}
 +
|include={Ka-Mel-Oh}{{{output|!¦size={{{size|100}}}¦float={{{float|left}}}}}}
 +
|uses=Vorlage:Ka-Mel-Oh
 +
|allowcachedresults={{{parsercache|false}}}
 
}}</includeonly><noinclude>
 
}}</includeonly><noinclude>
 +
 
----
 
----
  
 +
Benutzung:
  
<div class="hs-box" style="background-color:ivory;border:1px solid #ffa500; font-size:1; padding:-5px;">
+
<nowiki>{{</nowiki>param1 = wert1 | param2 = wert2 | }}
Diese Vorlage erzeugt [[Projekt:Ka-Mel-Oh!|Ka-Mel-Oh!-Karten]] mit bestimmten Eigenschaften, die sich in den Datenbanken ...
 
 
 
{{#dpl:
 
|namespace=Projekt
 
|titlematch=Ka-Mel-Oh!/Datenbank/%
 
|category=Ka-Mel-Oh!/Datenbank
 
}}
 
 
 
... befinden. Man kann ihr die gleichen Parameter übergeben wie der [[Vorlage:Ka-Mel-Oh!]]:
 
<pre>
 
{{Karten
 
| nr =
 
| typ =
 
| hk =
 
| name =
 
| bild =
 
| ap =
 
| dp =
 
| lp =
 
| d =
 
| klasse =
 
| rasse =
 
| angriff =
 
| abwehr =
 
| text =
 
| handicap =
 
| autor =
 
| datum =
 
}}
 
</pre>
 
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}}
+
Wobei Param sein darf: nr, hk, name, bild, ap, dp, usw. Ein ! vorangestellt negiert das die Aussage: …| !handicap = sonder |…
{{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!===
+
Es können Wertebereiche angegeben werden: …| lp = 20-50 |…
  
Bitte für einzelne Karten [[Vorlage:Karte]] verwenden.
+
Die Sortierung ist manchmal noch etwas komisch, das liegt daran dass das DPL keine Sortierung nach Ziffern kann, und ich grad keine Lust habe, das manuell zu implementieren.
  
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 sparsem und mit Vorsicht einsetzen.
+
</noinclude>
</div>[[Kategorie:Vorlagen für Ka-Mel-Oh!]]</noinclude>
 

Aktuelle Version vom 11. Juli 2011, 17:44 Uhr



Benutzung:

{{param1 = wert1 | param2 = wert2 | … }}

Wobei Param sein darf: nr, hk, name, bild, ap, dp, usw. Ein ! vorangestellt negiert das die Aussage: …| !handicap = sonder |…

Es können Wertebereiche angegeben werden: …| lp = 20-50 |…

Die Sortierung ist manchmal noch etwas komisch, das liegt daran dass das DPL keine Sortierung nach Ziffern kann, und ich grad keine Lust habe, das manuell zu implementieren.