Module:CargoQuery/doc: Difference between revisions
imported>Elaeagnifolia (Elaeagnifolia created the page Module:CargoQuery/doc using a non-default content model "wikitext") |
No edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
{{doc/start}} | |||
{{Copied | |||
|page=https://lol.fandom.com/wiki/Module:CargoQuery | |||
|site=https://lol.fandom.com | |||
|sitename=League of Legends eSports Wiki | |||
}} | |||
This module lets you get around the <code>|no html</code> bug that Cargo has by avoiding |format=template. This module implicitly assumed you ARE using named args in your template (corresponding to <code>|named_args=yes</code>; you do not need to specify this.) | |||
Unlike <code>|format=template</code>, this wrapper will NOT rename parameters with underscores in them to use spaces instead. | |||
== Parameters == | |||
* You may specify all parameters the same as if they were parameters in <code>#cargo_query</code>. | |||
== One-To-Many == | |||
This template allows for one-to-many support, allowing you to specify a field to treat equivalently to a <code>List of ...</code> field. Syntax is as follows: | |||
* <code>|one_to_many=</code>, a list of fields you want concatenated together. | |||
* <code>|one_to_many_group=</code>, the thing you want our one-to-many values grouped by. UNLIKE the <code>|group by=</code> parameter, this should be the FINAL name of a field, so something on the RIGHT SIDE of the equals sign in your <code>|fields=</code> parameter. | |||
* <code>|one_to_many_sep=</code>, defaults to comma. Currently you must pick the same separator for ''all'' of your one-to-many fields. | |||
=== Example === | |||
<pre> | |||
{{#invoke:CargoQuery|main | |||
|table=Teams,ListplayerCurrent=LPC | |||
|join on=Teams._pageName=LPC._pageName | |||
|where=Teams.Region="North America" AND LPC._pageName IS NOT NULL | |||
|fields=Teams._pageName=Page | |||
|one_to_many=LPC.ID=IDs | |||
|one_to_many_group=Page | |||
|one_to_many_sep=, | |||
|template=<template> | |||
|intro={{(!}} class="wikitable" | |||
|outro={{!)}} | |||
|limit=10 | |||
}} | |||
</pre> | |||
Here, the <code>one_to_many</code> is a list of players on the team in question. For each ONE team, there are MANY players, so the field <code>IDs</code> that's sent to the template is a comma-separated list of players, grouped by team page. | |||
== Compound Queries == | |||
You can also run compound queries using <code>compound</code>. It has the same syntax as <code>#cargo_compound_query</code> but with a few exceptions: | |||
* <code>default</code> for each individual query is disabled; default must be specified outside as an additional argument, which is then applied if no queries return results. | |||
* Each query must be numbered as in <code>|1=(query1)|2=(query2)|3=...</code>, etc. | |||
* Because of how compound query uses <code>;</code> as a separator, strings with this character cannot be used. This can be worked around by specifying <code>metaseparator</code> to be another symbol, and splitting each query's arguments using that delimiter instead. | |||
=== Example === | |||
<pre> | |||
{{#invoke:CargoQuery|compound | |||
|1=table=Food=F | |||
;fields=F._pageName=Page | |||
;where=F.CookEffect HOLDS 'heat and fire-based' AND F._pageNamespace = '0' | |||
|2=table=Liquids=L | |||
;fields=L._pageName=Page | |||
;where=L.CookEffect HOLDS 'simple heat and fire-based' AND L._pageNamespace = '0' | |||
|default=No Results! | |||
|template=favilink page | |||
|delimiter = <br> | |||
|metaseparator = ; | |||
}} | |||
</pre> | |||
{{doc/end}} | |||
<includeonly> | |||
[[Category:Helper modules]] | |||
</includeonly> |
Latest revision as of 08:25, 28 September 2023
Template:Copied
This module lets you get around the |no html
bug that Cargo has by avoiding |format=template. This module implicitly assumed you ARE using named args in your template (corresponding to |named_args=yes
; you do not need to specify this.)
Unlike |format=template
, this wrapper will NOT rename parameters with underscores in them to use spaces instead.
Parameters[edit source]
- You may specify all parameters the same as if they were parameters in
#cargo_query
.
One-To-Many[edit source]
This template allows for one-to-many support, allowing you to specify a field to treat equivalently to a List of ...
field. Syntax is as follows:
|one_to_many=
, a list of fields you want concatenated together.|one_to_many_group=
, the thing you want our one-to-many values grouped by. UNLIKE the|group by=
parameter, this should be the FINAL name of a field, so something on the RIGHT SIDE of the equals sign in your|fields=
parameter.|one_to_many_sep=
, defaults to comma. Currently you must pick the same separator for all of your one-to-many fields.
Example[edit source]
{{#invoke:CargoQuery|main |table=Teams,ListplayerCurrent=LPC |join on=Teams._pageName=LPC._pageName |where=Teams.Region="North America" AND LPC._pageName IS NOT NULL |fields=Teams._pageName=Page |one_to_many=LPC.ID=IDs |one_to_many_group=Page |one_to_many_sep=, |template=<template> |intro={{(!}} class="wikitable" |outro={{!)}} |limit=10 }}
Here, the one_to_many
is a list of players on the team in question. For each ONE team, there are MANY players, so the field IDs
that's sent to the template is a comma-separated list of players, grouped by team page.
Compound Queries[edit source]
You can also run compound queries using compound
. It has the same syntax as #cargo_compound_query
but with a few exceptions:
default
for each individual query is disabled; default must be specified outside as an additional argument, which is then applied if no queries return results.- Each query must be numbered as in
|1=(query1)|2=(query2)|3=...
, etc. - Because of how compound query uses
;
as a separator, strings with this character cannot be used. This can be worked around by specifyingmetaseparator
to be another symbol, and splitting each query's arguments using that delimiter instead.
Example[edit source]
{{#invoke:CargoQuery|compound |1=table=Food=F ;fields=F._pageName=Page ;where=F.CookEffect HOLDS 'heat and fire-based' AND F._pageNamespace = '0' |2=table=Liquids=L ;fields=L._pageName=Page ;where=L.CookEffect HOLDS 'simple heat and fire-based' AND L._pageNamespace = '0' |default=No Results! |template=favilink page |delimiter = <br> |metaseparator = ; }}
This is the documentation page, it should be transcluded into the main template page. See Template:Doc for more information.