Difference between revisions of "User:©TriMoon™/Sandbox"
From Salem Wiki
m (→Property:RequiredBy: x) |
m (→Property:RequiredBy: x) |
||
Line 180: | Line 180: | ||
<li><code><nowiki>{{#ask: [[:+]] [[RequiresObj::~{{PAGENAME}}*]] OR [[:+]] [[RepairedWith::~{{PAGENAME}}*]] OR [[:+]] [[RequiresTech::{{PAGENAME}}]] }}</nowiki></code><ol type="i"> | <li><code><nowiki>{{#ask: [[:+]] [[RequiresObj::~{{PAGENAME}}*]] OR [[:+]] [[RepairedWith::~{{PAGENAME}}*]] OR [[:+]] [[RequiresTech::{{PAGENAME}}]] }}</nowiki></code><ol type="i"> | ||
<li><code><nowiki>{{#ask: [[:+]] [[RequiresObj::~Nails*]] OR [[:+]] [[RepairedWith::~Nails*]] OR [[:+]] [[RequiresTech::Nails]] |format=ul}}</nowiki></code><br/>{{#ask: [[:+]] [[RequiresObj::~Nails*]] OR [[:+]] [[RepairedWith::~Nails*]] OR [[:+]] [[RequiresTech::Nails]] |format=ul}}</li> | <li><code><nowiki>{{#ask: [[:+]] [[RequiresObj::~Nails*]] OR [[:+]] [[RepairedWith::~Nails*]] OR [[:+]] [[RequiresTech::Nails]] |format=ul}}</nowiki></code><br/>{{#ask: [[:+]] [[RequiresObj::~Nails*]] OR [[:+]] [[RepairedWith::~Nails*]] OR [[:+]] [[RequiresTech::Nails]] |format=ul}}</li> | ||
− | <li><code><nowiki>{{ | + | <li><code><nowiki>{{PropVals/List RequiredBy |page=Nails |template=n |sep={{{sep|,}}} |limit=5}}</nowiki></code><br/>{{PropVals/List RequiredBy |page=Nails |template=n |sep={{{sep|,}}} |limit=5}}</li> |
+ | <li><code><nowiki>{{PropVals/List RequiredBy |page=Nails |template=y |sep={{{sep|,}}} |limit=5}}</nowiki></code><br/>{{PropVals/List RequiredBy |page=Nails |template=y |sep={{{sep|,}}} |limit=5}}</li> | ||
</ol></li> | </ol></li> | ||
</ol></li> | </ol></li> | ||
</ol> | </ol> |
Revision as of 07:56, 2 July 2012
Infobox
Template:Infobox/debugTheme | Template:Infobox/debugTheme |
Template:Infobox/debugTheme | Template:Infobox/debugTheme |
Lets try to describe properties of Objects using their placement in the game-menus to aid in later auto-categorization....
- See Property:IsinGameMenu for current menu-names.
fe. Blazing Brazier, would need:
- isGameMenu=n
- isinGameMenu=Claims & Defenses
- See these pages for documentation
- Help:Selecting pages
- Help:Displaying information
- Help:Inline queries (Parser function #show)
- Extension:StringFunctions (#explode:)
- List the set of unique values for a property
- Multiple values for the same field
SetProp
- Automatic property setting in mind: {{SetProp|propname=propvalues|propname=propvalues|...}}
Where propvalues consist of single values separated by commas, that are used to set propname multiple times using each value.
The single-values are depended on the format of the property to set, which can't have commas in their format ofcourse...{{#arraymap: propvalues |, |xXx |{{#set:propname=xXx}} |}}
- {{SetProp|RequiresTech=Simple Fences,Quarrying|RequiresObj=Anvil,Flint;1,Stone;3,Lime;15;Startpost,Flint;15;Startpost,Stone;30;Startpost,Lime;8;Cornerpost,Flint;8;Cornerpost,Stone;15;Cornerpost,Board;10,Nails;4}}
Would execute:- SetProp/single:
- You need to provide an amount for “Anvil” in the RequiresObj parameter !
{{#arraymap: Simple Fences,Quarrying |, |xXx |{{#set:RequiresTech=xXx}} |}}
{{#arraymap: Anvil,Flint;1,Stone;3,Lime;15;Startpost,Flint;15;Startpost,Stone;30;Startpost,Lime;8;Cornerpost,Flint;8;Cornerpost,Stone;15;Cornerpost,Board;10,Nails;4 |, |xXx |{{#set:RequiresObj=xXx}} |}}
- {{PropVals|prop=RequiresTech|page=User:©TriMoon™/Sandbox}} gives:
- {{PropVals|prop=RequiresObj|page=User:©TriMoon™/Sandbox}} gives:
HasProp
{{#if: {{HasProp|Has icon}} | [[{{#show:User:©TriMoon™/PropVals testdata|?Has icon|link=none}}]] }}
Property:RequiresObj
- Listing values for Property:RequiresObj on current test data page
{{#show: User:©TriMoon™/PropVals testdata |?RequiresObj |link=none |sep=<br/> }}
{{#ask: [[User:©TriMoon™/PropVals testdata]] [[RequiresObj::+]] | ?RequiresObj= |link=none |sep=<br/> }}
- Automatic listing in mind: {{PropVals |prop={{{prop|RequiresObj}}} |page={{FULLPAGENAME}}}}
- {{PropVals/getRecords|prop=RequiresObj|page=User:©TriMoon™/PropVals testdata }}
- {{PropVals/Group | <output from step above> }} internally using {{PropVals/Split}}
- As you can see the usage below doesn't work because the parser does not recognize the records as extra arguments...
{{PropVals/Group |{{PropVals/getRecords|prop=RequiresObj|page=User:©TriMoon™/PropVals testdata }} }}
- PropVals/Group:
- You need to provide records tobe processed !
- Therefore we need to use
{{#arraymap:}}
as a wrapper to inject the records as extra arguments...{{#arraymap: {{PropVals/getRecords|prop=RequiresObj|page=User:©TriMoon™/PropVals testdata }}{{{grpsep|/\}}} |{{{grpsep|/\}}} |xXx |{{PropVals/Group |sep={{{sep|;}}} |grpsep={{{grpsep|/\}}} |xXx }} |}}
- {{PropVals/getGroupedRecords|prop=RequiresObj|page=User:©TriMoon™/PropVals testdata |sep={{{sep|;}}}|grpsep={{{grpsep|/\}}} }}
- As you can see the usage below doesn't work because the parser does not recognize the records as extra arguments...
<ul>{{#arraymap: <output from step above> |{{{grpsep|/\}}} |xXx |{{PropVals/List|sep={{{sep|;}}}|xXx}} |}}</ul>
- each {{PropVals/List}} using {{PropVals/Print Entry}} which will internally use {{PropVals/Split}}
- {{PropVals|prop=RequiresObj|page=User:©TriMoon™/PropVals testdata}} gives:
- {{PropVals/getRecords|prop=RequiresObj|page=User:©TriMoon™/PropVals testdata }}
Property:RequiresTech
- Listing pages using Property:RequiresTech
{{#ask: [[RequiresTech::+]] }}
{{#ask: [[:+]] [[RequiresTech::+]] }}
- Listing values for Property:RequiresTech on current test data page
- {{PropVals|prop=RequiresTech|page=User:©TriMoon™/PropVals testdata}} gives:
- {{PropVals|prop=RequiresTech|page=User:©TriMoon™/PropVals testdata}} gives:
Property:RequiredBy
- Listing pages having a certain value for Property:RequiresObj
{{#ask: [[:+]] [[RequiresObj::~Nails*]] }}
- Listing pages having a certain value for Property:RequiresTech
{{#ask: [[:+]] [[RequiresTech::Simple Fences]] }}
- Listing pages having a certain value for Property:RequiresObj OR Property:RequiresTech
{{#ask: [[:+]] [[RequiresObj::~{{PAGENAME}}*]] OR [[:+]] [[RepairedWith::~{{PAGENAME}}*]] OR [[:+]] [[RequiresTech::{{PAGENAME}}]] }}
{{#ask: [[:+]] [[RequiresObj::~Nails*]] OR [[:+]] [[RepairedWith::~Nails*]] OR [[:+]] [[RequiresTech::Nails]] |format=ul}}
{{PropVals/List RequiredBy |page=Nails |template=n |sep={{{sep|,}}} |limit=5}}
Template:PropVals/List RequiredBy{{PropVals/List RequiredBy |page=Nails |template=y |sep={{{sep|,}}} |limit=5}}
Template:PropVals/List RequiredBy
... more about "©TriMoon™/Sandbox"