模块讨论:IfUtil

Shizhao在话题“编辑请求 2023-12-26”中的最新留言:9个月前

请问一下模板的这个功能怎么实现?

请问一下,如何在模板中实现输入{{模板|A=yes}}则输出A,无参数或其他参数则输出B这样的功能?--侧耳倾听 2020年10月12日 (一) 04:11 (UTC)回复

Wikipedia:解析器函数,#switch。——Sakamotosan路过围观杯弓蛇影| 避免做作,免敬 2020年10月12日 (一) 08:16 (UTC)回复
应该是{{#ifeq}}吧-- Sunny00217  2020年10月12日 (一) 12:10 (UTC)回复
不考虑表达式计算而是以常量对比的话,if堆和switch基本可互换。——Sakamotosan路过围观杯弓蛇影| 避免做作,免敬 2020年10月12日 (一) 14:04 (UTC)回复
注:本讨论之中有部分是透过Module:IfUtil实现,因此稍后会将本讨论标记为存档至Module talk:IfUtil。-- 娜娜奇🐰枫香花茶(宇帆·☎️·☘️2020年10月20日 (二) 09:06 (UTC)回复
那直接标记就好了为什么要稍后呢?-- Sunny00217  2020年10月24日 (六) 14:27 (UTC)回复

编辑请求 2022-11-24

  请求已处理--Xiplus#Talk 2022年12月1日 (四) 05:03 (UTC)回复

请删除第198行module:IfUtil#L-198“parentFirst=true,”,该函数不应读取外层模板参数,讨论见Wikipedia:互助客栈/技术#Template:Infobox_settlement-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鲜果茶☕在维基百寻求休闲是否搞错了什么☎️·☘️2022年11月24日 (四) 08:33 (UTC)回复

Template:Infobox settlement

已解决:
不当读取参数之问题已获解决-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鲜果茶☕在维基百寻求休闲是否搞错了什么☎️·☘️2022年12月17日 (六) 04:01 (UTC)回复
下列讨论已经关闭,请勿修改。如有任何意见,请在合适的讨论页提出,而非再次编辑本讨论。

瓦尔纳 (60158610) 中发现 {{Infobox settlement}} 问题,起因是模板中填写 |official_name Zabr,即缺少了 “=” 符号,结果“official_name Zabr”出现在了 人口->统计 处,这里是不是应该像其他未知参数一样只应该在预览中显示,不直接显示在最终结果里面?忘记添加“=”应该是比较常见的笔误。另外,也许其他模板可能也有类似的问题。 --Kethyga留言2022年11月24日 (四) 04:42 (UTC)回复

A2569875似是模块:IfUtilifnoAddTail不良,local input_str = args['1'] or args[1] or ''。重现方式,编辑Template:Infobox settlement/sandbox,内容替换为{{#invoke:IfUtil|ifnoAddTail|{{{population_total}}}|人}},用用户:YFdyh000/沙盒预览。--YFdyh000留言2022年11月24日 (四) 06:14 (UTC)回复
@YFdyh000:删除module:IfUtil#L-198“parentFirst=true,”让他不要向外层模板读取参数即可。因为你列出的那一行程式码并非不良(读取1号参数哪里不良了??),而是ifnoAddTail会读到外层模板参数,然后外层模板刚好提供了1号参数,所以只要让他不要去读取外层模板的参数即可。-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鲜果茶☕在维基百寻求休闲是否搞错了什么☎️·☘️2022年11月24日 (四) 08:17 (UTC)回复
没注意到这个参数。没有文档和跨语言,我不太明白它是做什么。会读取无关未传入参数,所以我说读取一号参数可能出了问题。功能不良,指运行不正常,也许您误会了。--YFdyh000留言2022年11月24日 (四) 08:33 (UTC)回复
@YFdyh000(:)回应:“parentFirst=true,”的功能就是“读取外层模板参数”,并让“外层模板参数”优先于“内层模板参数”。“内层模板参数”指的是跟{{#invoke:}}写在一起的参数,“外层模板参数”是呼叫包含{{#invoke:}}的模板(外层模板)时传的参数。本参数本该跟{{#invoke:}}写在一起的,不应读取到外面那层模板呼叫时所包含的参数,故删除“parentFirst=true,”就会阻止“外层模板参数”的读取,就不会读到外层模板给出的1号参数,以便解决此问题。-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鲜果茶☕在维基百寻求休闲是否搞错了什么☎️·☘️2022年11月24日 (四) 14:08 (UTC)回复
@YFdyh000:总之,此例症结点就在于模板外层的参数与ifnoAddTail无关,所以只要让ifnoAddTail不要读取外层模板的参数,问题就解决了;读取1号参数本来就是正常行为,有什么问题??,这个函数本来就是要这样工作的,不然要读取什么鬼参数?,不认为你列出的那行乃至于那个函数的功能有什么不良。已提出编辑请求Module_talk:IfUtil#编辑请求_2022-11-24-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鲜果茶☕在维基百寻求休闲是否搞错了什么☎️·☘️2022年11月24日 (四) 08:39 (UTC)回复
  囧rz……意思只是问题存在于那个模块、那句(附近)相关(读匿名参数1),不是一定要改掉这句。总之能解决就行。--YFdyh000留言2022年11月24日 (四) 14:19 (UTC)回复
能解决是能解决,但是要等编辑请求Module_talk:IfUtil#编辑请求_2022-11-24。-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鲜果茶☕在维基百寻求休闲是否搞错了什么☎️·☘️2022年11月24日 (四) 14:24 (UTC)回复
@YFdyh000Kethyga编辑请求已完成,考察User:YFdyh000/沙盒&oldid=74753283可得知问题已解决。-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鲜果茶☕在维基百寻求休闲是否搞错了什么☎️·☘️2022年12月1日 (四) 06:20 (UTC)回复
@YFdyh000Kethyga:请协助复查问题是否已解决,感谢。-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鲜果茶☕在维基百寻求休闲是否搞错了什么☎️·☘️2022年12月8日 (四) 03:31 (UTC)回复
问题解决。--YFdyh000留言2022年12月8日 (四) 04:38 (UTC)回复
测试了几个基于 {{Infobox settlement}} 的模板,没看到问题。--Kethyga留言2022年12月9日 (五) 04:11 (UTC)回复

确认问题已解决。-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鲜果茶☕在维基百寻求休闲是否搞错了什么☎️·☘️2022年12月17日 (六) 04:01 (UTC)回复

本讨论已关闭,请勿修改。如有任何意见,请在合适的讨论页提出,而非再次编辑本讨论。

编辑请求 2022-12-30

  请求已处理--Xiplus#Talk 2023年2月9日 (四) 11:27 (UTC)回复

(本模组的开发者请求)删除第79第80行,因为参数重复给定(因为前两 已给定参数,79、80行的tonumber后的参数在解析器下会视为相同)以便清理Category:调用重复模板参数的页面(例如在Template:Cexpr/doc就有体现出此问题[请在该页编辑预览就可以看到警示])-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鲜果茶☕在维基百寻求休闲是否搞错了什么☎️·☘️2022年12月30日 (五) 09:01 (UTC)回复

编辑请求 2023-12-26

  请求已处理

(本模组的开发者请求)将重复的数字参数清除,以便清理Category:调用重复模板参数的页面分类。测试结果见:

可以看出,新的patch修正了重复参数的问题。-- 宇帆-娜娜奇🐰鲜果茶☕在维基百寻求休闲是否搞错了什么☎️·☘️2023年12月26日 (二) 14:45 (UTC)回复

 完成--百無一用是書生 () 2024年1月22日 (一) 12:31 (UTC)回复
返回到“IfUtil”页面。