Modèle:Recipes
Ce modèle est considéré comme prêt pour i18n, signifiant qu'il est facile à régionaliser pour les différentes langues. Veuillez regarder I18n & l10n pour les modèles (en) pour en apprendre plus. |
Ce modèle utilise Module:Recipes, qui est écrit avec un script dans le language de programmation Lua. Pour en apprendre plus à propos de Lua, visiter Wikipédia:Lua et mw:Extension:Scribunto. |
Ce modèle définit le tableau « Recipes ». Voir le tableau.
Query crafting recipes from database and display them as crafts table.
Sommaire
Usage
Parameters for query constraints:
station
= station1/station2/...
List only recipes that using these stations.
stationnot
= station1/station2/...
Exclude recipes that using these stations.
result
= result1/result2/...
List only recipes that will get this result item.It also possible to do pattern search using SQL LIKE syntax like this: result=LIKE %Phaseblade
, multiple:result=Iron Bar/LIKE %Phaseblade
, note that "LIKE" must be all uppercase.
resultnot
= result1/result2/...
Exclude recipes that will get this result item.It also possible to do pattern search using SQL LIKE syntax like this: resultnot=LIKE %Phaseblade
, multiple:resultnot=Iron Bar/LIKE %Phaseblade
, note that "LIKE" must be all uppercase.
ingredient
= ingredient1/ingredient2/...
List only recipes that contain this item in its ingredient list. You can use "Any xxx" as ingredient name for some alternative crafting ingredients group; and, if you query a item in one of substitutable item group, you will get "Any xxx" as well. Prefix name with "#" will turn this off on this item(and only on this item). For example, if you query by |ingredient=Shadewood
, you will get recipes as if you query by ingredient=#Shadewood/#Any Wood
; |ingredient=#Shadewood/Iron Bar
equals to |ingredient=#Shadewood/#Iron Bar/#Any Iron Bar
.It also possible to do pattern search using SQL LIKE syntax like this: ingredient=LIKE %Phaseblade
, multiple:ingredient=Iron Bar/LIKE %Phaseblade
, note that "LIKE" must be all uppercase.
version
/versions
= platform-platform-platform
List only recipes that are exclusive to specified platforms. Please note this paramater require full-match, for example, If a recipes is exclusive to desktop and console, you must use |version=desktop-console
(can be in diffenent order) to match it, and |version=desktop
won't match it.
NOTE: The relationship between above parameters is "and", and the relationship of multiple values inside single parameter is "or". For example, |station=Sawmill/Loom|resultnot=Silk
means (in SQL style):(station = Sawmill OR station = Loom) AND result <> Silk
where
= whereString
Raw input string for where parameter of cargo query. If specified, all of above parameters are ignored. Used to write complex queries when necessary, with caution.
Other parameters:
title
The content of table caption.
grouping
= n/no
Turn off result & ext cols grouping.
nostation
= y
If set, Crafting Station column will be hidden.
showresultid
= y
If set, result item will show their internal item ID (if available).
cate
= no/force
By default, this template will add transcluding page to crafting station category if crafting result is the page title itself. cate=no
will disable this. cate=force
will force categorization, no matter what the result and page title are.
link
= n/no
Set to n/no
will make result item have no link.
expectedrows
= number
Assert the expected number of rows in this crafts table. If expected and actual number of rows are not equal, this page will be added to Category:Recipes_table_with_unexcepted_total_number_of_rows.
sortable
= n/no
Make the table unsortable.
class
=id
=css
/style
=
HTML class/id/style attributes for outer wrapper div element.
Example
{{recipes|ingredient=Bone|station=Bone Welder|resultnot=Bone Block Wall|expectedrows=18}}
Query for all Bone furniture. Select all recipes that have Os as one of its ingredient, and crafting station is
Soudeuse d'os
, then exclude
Mur en blocs d'os from list. There are 18 items in Bone furniture, so we assert
expectedrows=18
.
Register Recipes
Recipes in database are registered by {{recipes/register}}, all recipes should be registered on the corresponding crafting station page ( Recipes/[station] ), e.g. Recipes/Sawmill. For usage of {{recipes/register}}, see its document.
Advanced Usage
Custom Table Header
header-result
= content of result <th>, default isResult
header-ingredients
= content of ingredients<th>, default isIngredients
header-station
= content of crafting station<th>, default is[[Crafting station]]
Adding extra columns/rows around crafting stations
Only valid when nostation
not be set.
Define cols:
station-col-before-1
station-col-before-2
station-col-before-3
...
Column headers before crafting station column
station-col-after-1
station-col-after-2
station-col-after-3
...
Column headers before crafting station column
Define index key for row content:
station-index-Furnace
= _a
Define index key for "Furnace"(as station
parameter), for example
Define actual contents:
_a-row-station-col-before-1
=_a-row-station-col-before-2
=
...
_a-row-station-col-after-1
=
...
Define contents for <td> using index key.
Adding extra cols/rows around by crafting results
Define columns:
col-A-1
col-A-2
...
col-B-1
...
col-C-1
...
col-D-1
...
The order in which all columns are displayed is:
col-A
s • Result
• col-B
s • Ingredients
• col-C
s • station-col-before
s • Crafting Station
• station-col-after
s • Col-D
s
Define index key for row content:
Define index key for a row(Priority in this order):
result-index-#3
= _a
Define by row number
result-index-Crimtane Bar-desktop console
= _a
Define by result name + version info
result-index-Copper Bar
= _a
Define by result name
Define actual contents:
_a-row-col-A-1
=
...
Define contents for <td> using index key, corresponds to the definition of columns.
Adding extra rows
NOTE: extra rows don't count into expectedrows
.
Before recipe rows:
topextrow-1-col-result
=topextrow-1-col-ingredients
=topextrow-1-col-station
=topextrow-1-col-ingredients
=topextrow-1-col-C-2
=
...
topextrow-2-col-result
=
...
After recipe rows:
extrow-1-col-result
=extrow-1-col-ingredients
=extrow-1-col-station
=extrow-1-col-B-1
=extrow-1-col-C-1
=
...
extrow-2-col-result
=
...
See Bars and Recovery potions for examples.