模組討論:IfUtil
請問一下模板的這個功能怎麼實現?
[編輯]請問一下,如何在模板中實現輸入{{模板|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)
- @cwek:解析器函數一直沒太搞懂,看樣子還得再去研究一下,哎……--侧耳倾听 2020年10月14日 (三) 15:50 (UTC)
- (:)回應@Whisper of the heart:如果是要搜尋那些參數的值為「yes」上述方法可能不管用,要用find的方法,例如這個例子。-- 娜娜奇🐰楓香花茶☕(宇帆·☎️·☘️) 2020年10月12日 (一) 15:07 (UTC)
- @A2569875: 我要的就是這個效果,不過沒想到實現方式居然這麼複雜……(此處省略表情包)謝謝了!--侧耳倾听 2020年10月14日 (三) 15:50 (UTC)
- (:)回應@Whisper of the heart:其實該例子中只需要參考包覆於
<includeonly></includeonly>
內部的程式碼即可。-- 娜娜奇🐰楓香花茶☕(宇帆·☎️·☘️) 2020年10月14日 (三) 16:04 (UTC)
- (:)回應@Whisper of the heart:其實該例子中只需要參考包覆於
- @A2569875: 我要的就是這個效果,不過沒想到實現方式居然這麼複雜……(此處省略表情包)謝謝了!--侧耳倾听 2020年10月14日 (三) 15:50 (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
[編輯]- 下列討論已經關閉,請勿修改。如有任何意見,請在合適的討論頁提出,而非再次編輯本討論。
在 瓦爾納 (60158610) 中發現 {{Infobox settlement}} 問題,起因是模板中填寫 |official_name Zabr
,即缺少了 「=」 符號,結果「official_name Zabr」出現在了 人口->統計 處,這裏是不是應該像其他未知參數一樣只應該在預覽中顯示,不直接顯示在最終結果裏面?忘記添加「=」應該是比較常見的筆誤。另外,也許其他模板可能也有類似的問題。 --Kethyga(留言) 2022年11月24日 (四) 04:42 (UTC)
- 模塊:IfUtil的
ifnoAddTail
不良,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:(:)回應:「parentFirst=true,」的功能就是「讀取外層模板參數」,並讓「外層模板參數」優先於「內層模板參數」。「內層模板參數」指的是跟
- @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)
- @YFdyh000、Kethyga:編輯請求已完成,考察User:YFdyh000/沙盒&oldid=74753283可得知問題已解決。-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鮮果茶☕在維基百科尋求休閒是否搞錯了什麼(☎️·☘️) 2022年12月1日 (四) 06:20 (UTC)
- @YFdyh000、Kethyga:請協助複查問題是否已解決,感謝。-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鮮果茶☕在維基百科尋求休閒是否搞錯了什麼(☎️·☘️) 2022年12月8日 (四) 03:31 (UTC)
- 問題解決。--YFdyh000(留言) 2022年12月8日 (四) 04:38 (UTC)
- 測試了幾個基於 {{Infobox settlement}} 的模板,沒看到問題。--Kethyga(留言) 2022年12月9日 (五) 04:11 (UTC)
- @YFdyh000、Kethyga:請協助複查問題是否已解決,感謝。-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鮮果茶☕在維基百科尋求休閒是否搞錯了什麼(☎️·☘️) 2022年12月8日 (四) 03:31 (UTC)
- @YFdyh000、Kethyga:編輯請求已完成,考察User:YFdyh000/沙盒&oldid=74753283可得知問題已解決。-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鮮果茶☕在維基百科尋求休閒是否搞錯了什麼(☎️·☘️) 2022年12月1日 (四) 06:20 (UTC)
- 能解決是能解決,但是要等編輯請求Module_talk:IfUtil#編輯請求_2022-11-24。-- 宇帆-雪菲蛋糕🎂娜娜奇🐰鮮果茶☕在維基百科尋求休閒是否搞錯了什麼(☎️·☘️) 2022年11月24日 (四) 14:24 (UTC)
- 囧rz……意思只是問題存在於那個模塊、那句(附近)相關(讀匿名參數1),不是一定要改掉這句。總之能解決就行。--YFdyh000(留言) 2022年11月24日 (四) 14:19 (UTC)
- 沒注意到這個參數。沒有文檔和跨語言,我不太明白它是做什麼。會讀取無關未傳入參數,所以我說讀取一號參數可能出了問題。功能不良,指運行不正常,也許您誤會了。--YFdyh000(留言) 2022年11月24日 (四) 08:33 (UTC)
似是 - @YFdyh000:刪除module:IfUtil#L-198「parentFirst=true,」讓他不要向外層模板讀取參數即可。因為你列出的那一行程式碼並非不良(讀取1號參數哪裏不良了??),而是
- 本討論已關閉,請勿修改。如有任何意見,請在合適的討論頁提出,而非再次編輯本討論。
編輯請求 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:調用重複模板參數的頁面分類。測試結果見:
- Special:PermaLink/80251793使用{{if/sandbox}}時,無Category:調用重複模板參數的頁面分類
- Special:PermaLink/80251796換回{{if}}時,出現Category:調用重複模板參數的頁面分類
- {{if/sandbox}}是改成調用Module:IfUtil/sandbox(給定的patch)Special:Diff/80251492,故可以確認是patch修正了此問題。
可以看出,新的patch修正了重複參數的問題。-- 宇帆-娜娜奇🐰鮮果茶☕在維基百科尋求休閒是否搞錯了什麼(☎️·☘️) 2023年12月26日 (二) 14:45 (UTC)