Jump to content

Module talk:Check for unknown parameters

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Bulk include all mapframe parameters

[edit]

Rather than having to copy and paste all 20+ Module:Infobox mapframe parameters into the check at the bottom of the page, I’m wondering if we can add a hook of some kind? Something like |mapframe_params=on that will automatically include the hardcoded mapframe parameters? Alternatively could we create a {{Infobox mapframe/parameters}} that is just a list of parameters and then pass that in? IF the parameters for Module:Infobox mapframe were to change for some reason, that would involve updating a LOT of infoboxes. This would make that process easier. —Zackmann (Talk to me/What I been doing) 22:23, 30 September 2025 (UTC)[reply]

Sounds sensible — Martin (MSGJ · talk) 07:47, 1 October 2025 (UTC)[reply]
@Frietjes: I know you put a lot of work into this module. Any thoughts?
Also a quick search reveals that at least 100 templates use Module:Infobox mapframe so it would definitely help. Zackmann (Talk to me/What I been doing) 09:28, 1 October 2025 (UTC)[reply]
Zackmann08 this seems reasonable, so long as this is the only module that we are supporting. if there are going to be multiple modules that we want to support, we could provide a link to a data page. something like |params_data=Module:Infobox mapframe/parameters or |params_data1=Module:Infobox mapframe/parameters or whatever. back in the early days of this module, it was suggested that it would be more efficient if the list of parameters lived in module space and were loaded using mw.loadData but this would only really help if the template using this module were being called multiple times on each page, so not as big of an issue for infoboxes. Frietjes (talk) 14:54, 2 October 2025 (UTC)[reply]
I’m a fan of either solution. I guess the second solution provides support for future expansions better but that could always been performed as a refactor down the line if needed. Zackmann (Talk to me/What I been doing) 18:06, 2 October 2025 (UTC)[reply]
@Frietjes and MSGJ: I have mocked up a solution in the sandbox. Not married to the parameter names of course but I did do some testing in my own sandbox and it seems to work just fine. All I did was {{#invoke:Check for unknown parameters/sandbox|check|mapframe_args=y}}.
Now there is a drawback I noticed... If you look, for example, at {{Infobox zoo}} you will see in the implementation the following:
The significance of this is that some of those parameters, |mapframe-marker=, |mapframe-width= and a few others are NOT valid parameters to be passed in to {{Infobox zoo}} as they are hardcoded in the Infobox code.
So we are left with a few options
  1. Use |mapframe_args=y and just not care that there are a few extra params included (seems like a slippery slope to me but probably not a big deal)
  2. Don't use the |mapframe_args=y and go back to the old school way of copying and pasting all the params in the check for unknown list
  3. Add an additional |_exclude= which takes a CSV of mapframe_args to NOT pass to the check. (This idea takes from Module:Template wrapper.)
Let me know your thoughts. Happy to experiment with option 3 if there is interest. Also if this is implemented, I'll commit to updating the necessary documentation as well as taking on cleaning up the actual calls to the module so the new param is used. --Zackmann (Talk to me/What I been doing) 07:06, 6 October 2025 (UTC)[reply]
@Zackmann08: you may not be understanding the obscure way that Module:Infobox mapframe is parsing the arguments with getArgs in autoArgs(). the parentFirst=true flag is set, so that the parameter passed into {{Infobox zoo}} overrides the parameter provided in the template code itself. In other words, |mapframe-marker=zoo is simply the default. If |mapframe-marker= is set to something else, it will override zoo. This is true with any of the other parameters. Whomever wrote the template code didn't realize this. I'll fix the code to make it less obscure, but you don't have to do anything. — hike395 (talk) 12:18, 6 October 2025 (UTC)[reply]
@Hike395: thanks for the explanation! That dramatically simplifies things! I have struck my previous comments as they are no longer relevant. - Zackmann (Talk to me/What I been doing) 17:03, 6 October 2025 (UTC)[reply]

Edit request 9 October 2025

[edit]

Description of suggested change: Bulk include the Module:Infobox mapframe args as per the above discussion. Calling the module with |mapframe_args=1 will automatically include the valid parameters from the module so that the numerous parameters do not have to be copied and pasted. This has been mocked up in the sandbox. The diff is avaliable here. Thanks in advance. --Zackmann (Talk to me/What I been doing) 03:26, 9 October 2025 (UTC)[reply]

 Done — Martin (MSGJ · talk) 18:33, 9 October 2025 (UTC)[reply]
Please document the new feature, thank you — Martin (MSGJ · talk) 18:34, 9 October 2025 (UTC)[reply]
@MSGJ: THANK YOU!!!!! About to break for lunch but will make documenting the feature and implementing it my first task when I return. Zackmann (Talk to me/What I been doing) 18:35, 9 October 2025 (UTC)[reply]