الگو:px

از ویکی حج
نسخهٔ تاریخ ‏۲۱ اوت ۲۰۱۷، ساعت ۱۴:۳۵ توسط Hasaninasab (بحث | مشارکت‌ها) (صفحه‌ای تازه حاوی «<includeonly>{{#if:{{{1|}}} | {{#iferror: {{#expr:{{formatnum:{{{1|}}}|R}} > 0 }} | {{formatnum:{{{1|}}}|R}} | {{formatnum:{{{1|}}}px|R}} }...» ایجاد کرد)
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
توضیحات الگو[نمایش] [ویرایش] [تاریخچه] [پاکسازی]

This is the {{px}} template.

This meta-template helps other templates, such as infoboxes, to take image size parameters in both of the forms "40" or "40px". It takes up to three parameters and returns the first one that has any content. That is, the first one that is defined (not null) and not empty. Thus a default value for the width of the image can be fed as the second or third parameter.

Usage[ویرایش مبدأ]

Here is what this template does. Code to the left, actual rendering to the right:

{{px|40}} = 40px
{{px|40px}} = 40px

And with an optional second or even third parameter to be used as a default value if the first or second parameter is empty or undefined:

{{px||50}} = 50px
{{px||50px}} = 50px
{{px|||60}} = 60px
{{px|||60px}} = 60px

And here is how it can be used inside another template:

[[Image:{{{image}}} | {{px|{{{size|}}}}} | {{{caption|}}} ]]

[[Image:{{{image}}} | {{px|{{{size|}}}|250}} | {{{caption|}}} ]]

[[Image:{{{image}}} | {{px| {{{size|}}} | {{{width|}}} | 250 }} | {{{caption|}}} ]]

Default values[ویرایش مبدأ]

It used to be a bit tricky to handle empty but defined image size values in a template, since the MediaWiki pipetrick doesn't return the default value for empty parameters. That is, {{{width|250px}}} does not return "250px" if the template was called like this: {{template|width=}}

The usual workaround was to do like this:

{{#if:{{{width|}}}|{{{width}}}|250px}}

When at the same time handling the "pxpx" bug this became even more messy code:

[[Image:{{{image}}} | {{#if:{{{width|}}}|{{px|{{{width}}}}}|250px}} ]]

To simplify the coding, {{px}} allows for an optional default value to be defined allowing for the following:

[[Image:{{{image}}} | {{px|{{{width|}}}|250}} ]]

Note! The parameters to {{px}} must use the pipe "|", like this: {{{width|}}} . Or else {{px}} will be fed and return the string " {{{width}}} " if width was not defined.

Background[ویرایش مبدأ]

Old usage was to always pad on "px" since MediaWiki used to tolerate "40pxpx":

[[Image:{{{image}}} | {{{size}}}px | {{{caption|}}} ]]

But since 25 March 2008 that does not work anymore. That is, image sizes on Wikihaj now needs to be given in the form "40px", not "40" or "40pxpx". This template helps doing that. Note that the bug has since been fixed, although you can continue using this template.

See also[ویرایش مبدأ]

  • Wikihaj:ClickFix – About the "pxpx" bug.
  • {{ifempty}} – Helps detect empty parameters and fall back to default values. For instance for handling multiple image name parameters.

Test examples[ویرایش مبدأ]

  • {{px|40}} = 40px
  • {{px|40px}} = 40px
  • {{px|40pxpx}} = 40pxpx
  • {{px|junk}} = junk
  • {{px}} =
  • {{px|}} =
  • {{px||}} =
  • {{px|||}} =
  • {{px|40|50}} = 40px
  • {{px||50}} = 50px
  • {{px||50px}} = 50px
  • {{px||50|60}} = 50px
  • {{px|||60}} = 60px
  • {{px|||60px}} = 60px
[[Image:Example.png | 50 | thumb ]] =
50


[[Image:Example.png | 50pxpx | thumb ]] =
Currently fails. But the devs have stated that they are adding back parsing of "pxpx" in the next update to Wikihaj. So if you see a small image to the right then Wikihaj again accepts "pxpx".


[[Image:Example.png | 50px | thumb ]] =


[[Image:Example.png | {{px|50}} | thumb ]] =


[[Image:Example.png | {{px|50px}} | thumb ]] =


[[Image:Example.png | {{px|junk}} | thumb ]] =
junk


[[Image:Example.png | {{px|}} | thumb ]] =


[[Image:Example.png | {{px}} | thumb ]] =


[[Image:Example.png | {{px||50}} | thumb ]] =
Giving the default width if the 1st parameter is empty


[[Image:Example.png | {{px|{{{width|}}}|50}} | thumb ]] =


[[Image:Example.png | {{px|{{{width}}}|50}} | thumb ]] =
{{{width}}}
Fails to use the default value of 50. Note the missing "|" in

{{{width}}} .

[[Image:Example.png | {{px| {{{width|}}} | {{{size|}}} | 50 }} | thumb ]] =