Bản mẫu:If empty
Bản mẫu này được sử dụng ở khoảng 57.000 trang, vì thế những thay đổi đến nó sẽ hiện ra rõ ràng. Vui lòng thử nghiệm các thay đổi ở trang con /sandbox, /testcases của bản mẫu, hoặc ở không gian người dùng của bạn. Cân nhắc thảo luận các thay đổi tại trang thảo luận trước khi áp dụng sửa đổi. |
Bản mẫu này sử dụng Lua: |
Đây là bản mẫu {{If empty}}.
- Cập nhật vào ngày 23 tháng 12 năm 2014: Bản mẫu này được sử dụng để chỉ mất 9 tham số. Giới hạn này đã bị gỡ bỏ.
This template is used inside other templates. It takes any number of parameters and returns the first found to be defined and non-empty. If none is found, nothing is returned. Typical usage is like this:
{{If empty |{{{logo|}}} |{{{image|}}} |{{{picture|}}} |default.svg}}
- ("Return {{{logo|}}} if it has a value; else {{{image|}}} if it has a value; else {{{picture|}}} if it has a value; else return "default.svg".")
This returns the first of the parameters logo, image and picture that is defined and non-empty, otherwise "default.svg".
Đặt vấn đề
The MediaWiki parameter default function doesn't return the default value for empty parameters. That is, {{{logo|default.svg}}}
does not return "default.svg" if the template was called like this: {{template|logo=}}
.
The usual workaround for a single parameter is:
{{#if:{{{logo|}}} |{{{logo}}} |default.svg}}
- ("If {{{logo}}} has a value, return it, else return "default.svg".")
But this becomes complex when several parameters are to be checked:
{{#if:{{{logo|}}} |{{{logo}}} |{{#if:{{{image|}}} |{{{image}}} |{{#if:{{{picture|}}} |{{{picture}}} |default.svg}} }} }}
- ("If {{{logo}}} has a value, return it; else if {{{image}}} has a value, return that; else if {{{picture}}} has a value, return that; else return "default.svg".")
In these cases, {{if empty}} produces the simpler syntax (as above):
{{if empty |{{{logo|}}} |{{{image|}}} |{{{picture|}}} |default.svg}}
Piping
Parameters used with {{if empty}} must be piped – i.e. include the vertical bar (pipe) symbol (" | ") as a trailing character – so that empty or undefined parameters aren't treated as text and returned incorrectly. Hence, for example, {{{logo|}}}
, {{{image|}}}
and {{{picture|}}}
rather than {{{logo}}}
, {{{image}}}
and {{{picture}}}
in the above examples.
Các ví dụ
Mã | Kết quả | |
{{if empty}} | Returns an empty string. | |
{{if empty|một}} | một | Returns the first parameter that is defined and not empty. |
{{if empty|một|hai}} | một | |
{{if empty|một|hai|ba|bốn}} | một | |
{{if empty||hai}} | hai | The first parameter is empty/undefined, so is passed over. |
{{if empty||hai|ba|bốn}} | hai | |
{{if empty||hai||bốn}} | hai | |
{{if empty||||||||||mười}} | mười | Unlike in previous versions, this template is no longer limited by 9 parameters. |
{{if empty}} | The only parameter is empty or undefined, so returns an empty string. | |
{{if empty}} | Returns an empty string. | |
{{if empty|{{{1|}}}|{{{2|}}}|ba}} | ba | |
{{if empty|{{{1}}}|{{{2}}}|ba}} | {{{1}}} | No pipe-characters following the names of the first two parameters ("1" and "2"), so the first of these returned as text ("{{{1}}}"). |
{{if empty|{{{logo|}}}|hai}} | hai | |
{{if empty|{{{logo}}}|hai}} | {{{logo}}} | No pipe-character following the parameter name "logo", so the text "{{{logo}}}" returned. |
{{if empty|p=q}} | The template identifies the parameters it receives as parameters 1 to 9, not using names such as "p", etc. |
Xem thêm
- {{if all}}
- {{if either}}
- Trợ giúp:Tham số mặc định