Template:Synthesis Recipe.RecipeList: Difference between revisions
imported>Aramachus m some code improvements and a lot of commentary |
imported>Aramachus filtering desynth recipes and HQs by categories |
||
| Line 2: | Line 2: | ||
clever ways to not show desynth recipes and recipes where the item is the |
clever ways to not show desynth recipes and recipes where the item is the |
||
-->{{#ifeq:{{lc:{{{1}}}}}|none|style="display: none;"}}<!-- |
-->{{#ifeq:{{lc:{{{1}}}}}|none|style="display: none;"}}<!-- |
||
if the recipe has only one ingredient with quantity one, then it is by definition a desynthesis of that ingredient (there might be exceptions...) |
|||
-->{{#if:{{{ingredient 2|}}}{{{ingredient quantity|}}}||style="display: none;"}}<!-- |
|||
if the item is the ingredient of the recipe, then it is a desynthesis recipe. Unfortunately, in a phantom template it seems not possible to use %PAGE% or %TITLE% to check if the pagename is equal to the ingredient, so we can only check against the "keyword" "this". |
|||
-->{{#ifeq:{{{ingredient}}}|this|style="display: none;"|}}<!-- |
|||
if neither cap, crystal nor result (could add more) is given, then do not display the recipe because it isnt filled out |
if neither cap, crystal nor result (could add more) is given, then do not display the recipe because it isnt filled out |
||
-->{{#if:{{{cap|}}}{{{crystal|}}}{{{result|}}}||style="display:none;"}}<!-- |
-->{{#if:{{{cap|}}}{{{crystal|}}}{{{result|}}}||style="display:none;"}}<!-- |
||
there is a another complicated case: if an item is obtainable as a HQ from a synth, that page will list the recipe. But that needs to be removed from the table because the recipe will be listed under what is the NQ. The check for that is tricky because it needs to check that: |
|||
- HQ == this (cant detect pagename, need to use "this") |
|||
- result != HQ (because it might just be the same, e.g. items where the HQ is just more quantity) |
|||
and the same for HQ2 and HQ3 |
|||
the occurences which are still in the table are then pages where "this" has not been used by the full name of the item. Because the .dpl template cannot check equality between a parameter and the page's name, there is no way to know whether we are looking at the recipe from the NQ page (stay in table) or the HQ page (should not be in table). |
|||
-->{{#ifeq:{{{hq result}}}|{{{result}}}||{{#ifeq:{{{hq result}}}|this|style="display:none;"}}}}<!-- |
-->{{#ifeq:{{{hq result}}}|{{{result}}}||{{#ifeq:{{{hq result}}}|this|style="display:none;"}}}}<!-- |
||
| Line 45: | Line 36: | ||
|category=Alchemy/Apprentice |
|category=Alchemy/Apprentice |
||
|notcategory=Alchemy/Subcraft |
|notcategory=Alchemy/Subcraft |
||
|notcategory=Alchemy/Desynthesis |
|||
|notcategory=High Quality |
|||
|include={Synthesis Recipe¦RecipeList.dpl} |
|include={Synthesis Recipe¦RecipeList.dpl} |
||
|table=class="horizon-table alchemy-table center-col-2 center-col-3",-,Item,Cap,Crystal,Ingredients,HQ |
|table=class="horizon-table alchemy-table center-col-2 center-col-3",-,Item,Cap,Crystal,Ingredients,HQ |
||
Revision as of 23:15, 27 October 2024
Extension:DynamicPageList4 (DPL4), version 4.0.0: Error: MediaWiki\Extension\DynamicPageList4\Query::buildAndSelect - Template:Synthesis_Recipe.RecipeList: The DynamicPageList4 extension (version 4.0.0) produced a SQL statement which led to a Database error.<br/>The reason may be an internal error of DynamicPageList4 or an error that you made; especially when using parameters like 'categoryregexp' or 'titleregexp'. Usage of non-greedy <code>*?</code> matching patterns are not supported.<br/>The error message was:<br/><code>Error 1054: Unknown column 'ecl1.cl_to' in 'WHERE' Function: MediaWiki\Extension\DynamicPageList4\Query::buildAndSelect - Template:Synthesis_Recipe.RecipeList Query: SET STATEMENT max_statement_time=10 FOR SELECT DISTINCT p.page_namespace AS `page_namespace`,p.page_id AS `page_id`,p.page_title AS `page_title` FROM `page` `p` JOIN `categorylinks` `cl1` ON (((p.page_id = cl1.cl_from) AND (cl1.cl_to = 'Alchemy/Apprentice'))) LEFT JOIN `categorylinks` `ecl1` ON (((p.page_id = ecl1.cl_from) AND (ecl1.cl_to = 'Alchemy/Subcraft'))) LEFT JOIN `categorylinks` `ecl2` ON (((p.page_id = ecl2.cl_from) AND (ecl2.cl_to = 'Alchemy/Desynthesis'))) LEFT JOIN `categorylinks` `ecl3` ON (((p.page_id = ecl3.cl_from) AND (ecl3.cl_to = 'High_Quality'))) WHERE p.page_is_redirect = 0 AND ecl1.cl_to IS NULL AND ecl2.cl_to IS NULL AND ecl3.cl_to IS NULL LIMIT 500 </code>