Изменения

4337 байт добавлено ,  9 лет назад
суперапдейт
Строка 1: Строка 1: −
<span class="wp-templatelink">&#123;{</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|}}}}}} }} }} }} }}
  | {{{1}}}
+
  | <span class="wp-templatelink">&#123;{{{#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">&#125;}</span>
  | [[Шаблон:{{{1}}}|{{{1}}}]] }}
+
  | {{#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>
  | {{#if: {{#ifeq: {{{2|}}} | u | x | }}{{#ifeq: {{{3|}}} | u | x | }}{{{u|}}} | {{BASEPAGENAME}} | {{lcfirst: {{BASEPAGENAME}} }} }}
+
    | <span class="wp-templatelink">&#123;{{{#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">&#125;}</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">&#123;{{{#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">&#125;}</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">&#123;{{{#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">&#125;}</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>
Анонимный участник