Изменения
суперапдейт
<span class="wp-templatelink">{{</span>{{#if: {{{1|}}}
{{#if: {{{1|}}}
| {{#if: {{#switch: {{{2|}}} | nl = x | nolink = x | }}{{#switch: {{{3|}}} | nl = x | nolink = x | }}{{{nolink|}}}{{{nl|}}}{{#ifeq: Шаблон:{{ucfirst:{{{1|}}}}} | {{FULLPAGENAME}} | x | }}
| {{#if: {{#ifeq: Шаблон:{{ucfirst:{{{1|}}}}}{{{lang|{{{sister|}}}}}} | {{FULLPAGENAME}} | x | {{#switch: {{{2|}}} | nl = x | nolink = x | {{#switch: {{{3|}}} | nl = x | nolink = x | {{#switch: {{{4|}}} | nl = x | nolink = x | {{{nolink|{{{nl|}}}}}} }} }} }} }}
| <span class="wp-templatelink">{{{{#if: {{#switch: {{{2|}}} | s = x | subst = x | {{#switch: {{{3|}}} | s = x | subst = x | {{#switch: {{{4|}}} | s = x | subst = x | }} }} }} | subst: | {{#if: {{#switch: {{{2|}}} | п = x | подст = x | {{#switch: {{{3|}}} | п = x | подст = x | {{#switch: {{{4|}}} | п = x | подст = x | }} }} }} | подст: | }} }}</span>{{{1}}}<span class="wp-templatelink">}}</span>
| {{#ifexpr: {{str len|{{{text|{{{1}}}}}}{{#switch: {{{2|}}} | s = x | subst = x | п = x | подст = x | {{#switch: {{{3|}}} | s = x | subst = x | п = x | подст = x | {{#switch: {{{4|}}} | s = x | subst = x | п = x | подст = x | }} }} }}}} = 1
| {{#if: {{#switch: {{{2|}}} | nl = x | nolink = x | }}{{#switch: {{{3|}}} | nl = x | nolink = x | }}{{{nolink|}}}{{{nl|}}}{{#ifeq: Шаблон:{{BASEPAGENAME}} | {{FULLPAGENAME}} | x | }}
| <span class="wp-templatelink">{</span>[[:{{#if: {{{lang|}}} | {{{lang|}}}: | }}{{#if: {{{sister|}}} | {{{sister|}}}: | }}{{#if: {{#ifeq: {{{2|}}} | g | x | {{#ifeq: {{{3|}}} | g | x | {{#ifeq: {{{4|}}} | g | x | {{{g|}}} }} }} }} | {{{1}}} | Template:{{{1}}} }}|<span class="wp-templatelink">{</span>{{{text|{{{1}}}}}}<span class="wp-templatelink">}</span>]]<span class="wp-templatelink">}</span>
| <span class="wp-templatelink">{{{{#if: {{#switch: {{{2|}}} | s = x | subst = x | {{#switch: {{{3|}}} | s = x | subst = x | {{#switch: {{{4|}}} | s = x | subst = x | }} }} }} | subst: | {{#if: {{#switch: {{{2|}}} | п = x | подст = x | {{#switch: {{{3|}}} | п = x | подст = x | {{#switch: {{{4|}}} | п = x | подст = x | }} }} }} | подст: | }} }}</span>[[:{{#if: {{{lang|}}} | {{{lang|}}}: | }}{{#if: {{{sister|}}} | {{{sister|}}}: | }}{{#if: {{#ifeq: {{{2|}}} | g | x | {{#ifeq: {{{3|}}} | g | x | {{#ifeq: {{{4|}}} | g | x | {{{g|}}} }} }} }} | {{{1}}} | Template:{{{1}}} }}|{{{text|{{{1}}}}}}]]<span class="wp-templatelink">}}</span>
| [[Шаблон:{{BASEPAGENAME}}|{{#if: {{#ifeq: {{{2|}}} | u | x | }}{{#ifeq: {{{3|}}} | u | x | }}{{{u|}}} | {{BASEPAGENAME}} | {{lcfirst: {{BASEPAGENAME}} }} }}]] }}
}}
}}<span class="wp-templatelink">}}</span><!--
}}
Некоторые детали для понимания логики:
| {{#if: {{#ifeq: Шаблон:{{BASEPAGENAME}}{{{lang|{{{sister|}}}}}} | {{FULLPAGENAME}} | x | {{#switch: {{{2|}}} | nl = x | nolink = x | {{#switch: {{{3|}}} | nl = x | nolink = x | {{#switch: {{{4|}}} | nl = x | nolink = x | {{{nolink|{{{nl|}}}}}} }} }} }} }}
• в if’ах с новой строки перечисляются все условия, когда ссылка не показывается или показывается
| <span class="wp-templatelink">{{{{#if: {{#switch: {{{2|}}} | s = x | subst = x | {{#switch: {{{3|}}} | s = x | subst = x | {{#switch: {{{4|}}} | s = x | subst = x | }} }} }} | subst: | {{#if: {{#switch: {{{2|}}} | п = x | подст = x | {{#switch: {{{3|}}} | п = x | подст = x | {{#switch: {{{4|}}} | п = x | подст = x | }} }} }} | подст: | }} }}</span>{{#if: {{#ifeq: {{{2|}}} | u | x | {{#ifeq: {{{3|}}} | u | x | {{#ifeq: {{{4|}}} | u | x | {{{u|}}} }} }} }} | {{BASEPAGENAME}} | {{lcfirst: {{BASEPAGENAME}} }} }}<span class="wp-templatelink">}}</span>
• когда мы находимся в документации (Имя шаблона/doc), ссылка тоже показывается
| {{#ifexpr: {{str len|{{BASEPAGENAME}}{{#switch: {{{2|}}} | s = x | subst = x | п = x | подст = x | {{#switch: {{{3|}}} | s = x | subst = x | п = x | подст = x | {{#switch: {{{4|}}} | s = x | subst = x | п = x | подст = x | }} }} }}}} = 1
• x — подобие true или крестика в чекбоксе (со значением 1 получается путаница, ведь противоположность 1 - 0, но 0 тоже обрабатывается как true)
| <span class="wp-templatelink">{</span>[[:{{#if: {{{lang|}}} | {{{lang|}}}: | }}{{#if: {{{sister|}}} | {{{sister|}}}: | }}Template:{{BASEPAGENAME}}|<span class="wp-templatelink">{</span>{{#if: {{#ifeq: {{{2|}}} | u | x | {{#ifeq: {{{3|}}} | u | x | {{#ifeq: {{{4|}}} | u | x | {{{u|}}} }} }} }} | {{BASEPAGENAME}} | {{lcfirst: {{BASEPAGENAME}} }} }}<span class="wp-templatelink">}</span>]]<span class="wp-templatelink">}</span>
| <span class="wp-templatelink">{{{{#if: {{#switch: {{{2|}}} | s = x | subst = x | {{#switch: {{{3|}}} | s = x | subst = x | {{#switch: {{{4|}}} | s = x | subst = x | }} }} }} | subst: | {{#if: {{#switch: {{{2|}}} | п = x | подст = x | {{#switch: {{{3|}}} | п = x | подст = x | {{#switch: {{{4|}}} | п = x | подст = x | }} }} }} | подст: | }} }}</span>[[:{{#if: {{{lang|}}} | {{{lang|}}}: | }}{{#if: {{{sister|}}} | {{{sister|}}}: | }}Template:{{BASEPAGENAME}}|{{#if: {{#ifeq: {{{2|}}} | u | x | {{#ifeq: {{{3|}}} | u | x | {{#ifeq: {{{4|}}} | u | x | {{{u|}}} }} }} }} | {{BASEPAGENAME}} | {{lcfirst: {{BASEPAGENAME}} }} }}]]<span class="wp-templatelink">}}</span>
}}
}}
}}<!--
Некоторые детали для понимания (части) логики:
• больше всего места занимает «прочесывание» параметров в поисках допустимых значений;
• если шаблон вызывается без первого параметра, максимум ненумерованных параметров может быть 4, поэтому нужные значения (nl/nolink, u, s/subst) ищутся во 2-4 параметрах;
• если шаблон вызывается с первым параметром, максимум ненумерованных параметров может быть 3, поэтому нужные значения (nl/nolink, s/subst, g; но nl несовместимо с g) ищутся... все равно в 2-4 параметрах, мало ли;
• в if’ах с новой строки перечисляются все условия, когда ссылка не показывается или показывается;
• когда мы находимся в документации (Шаблон:Имя шаблона/doc), ссылка тоже показывается;
• x — подобие true или крестика в чекбоксе (со значением 1 получается путаница, ведь противоположность 1 — 0, но 0 тоже обрабатывается как true).
--><noinclude>{{doc}}
--><noinclude>{{doc}}
[[Категория:Шаблоны:Для шаблонов|{{PAGENAME}}]]
[[Категория:Шаблоны:Для шаблонов|{{PAGENAME}}]]
</noinclude>
</noinclude>