Шаблон:Tl: различия между версиями

Материал из in.wiki
Перейти к навигации Перейти к поиску
(суперапдейт)
(апдейт)
Строка 1: Строка 1:
{{#if: {{{1|}}}
+
{{#if: {{{1|}}} <!-- С первым параметром -->
| {{#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|}}}}}} }} }} }} }}
+
| {{#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>{{{1}}}<span class="wp-templatelink">&#125;}</span>
+
    {{#if: {{#switch: {{{2|}}} | nl = x | nolink = x | {{#switch: {{{3|}}} | nl = x | nolink = x | {{#switch: {{{4|}}} | nl = x | nolink = x | {{{nolink|{{{nl|}}}}}} }} }} }}
 +
    | x
 +
    | {{#ifeq: {{lc: {{{lang|ru}}} }} | ru
 +
      | {{#if: {{{sister|}}}
 +
        |
 +
        | {{#ifeq:
 +
            {{#if: {{#ifeq: {{{2|}}} | g | x | {{#ifeq: {{{3|}}} | g | x | {{#ifeq: {{{4|}}} | g | x | {{#ifeq: {{str index|{{{1}}}|1}} | : | x | {{{g|}}} }} }} }} }}
 +
            | {{FULLPAGENAME: {{{1}}} }}    <!-- ←↙ Что сравниваем -->
 +
            | {{FULLPAGENAME: Шаблон:{{{1}}} }} <!-- {{FULLPAGENAME:}} для преобразования «_» в « » и т. п.,
 +
                                                    а также решения проблемы с именами на «*», «;» и т. п. при вызове ucfirst -->
 +
            }}
 +
          | {{FULLPAGENAME}}                   <!-- С чем сравниваем -->
 +
          | x
 +
          |
 +
          }}
 +
        }}
 +
      |
 +
      }}
 +
    }}
 +
   | <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>{{{text|{{{1}}}}}}<span class="wp-templatelink">&#125;}</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
 
   | {{#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
     | <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">&#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>
+
     | <span class="wp-templatelink">{</span>[[:{{#ifeq: {{{1}}} | : | <!-- «:» как ссылка на другие разделы работает, а не должно (в случае шаблонов) --> | {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister|}}}: | }}}}{{#if: {{#ifeq: {{{2|}}} | g | x | {{#ifeq: {{{3|}}} | g | x | {{#ifeq: {{{4|}}} | g | x | {{#ifeq: {{str index|{{{1}}}|1}} | : | x | {{{g|}}} }} }} }} }} | {{FULLPAGENAME: {{{1}}} }} | Template:{{{1}}} }}|<span class="wp-templatelink">{</span>{{{text|{{{1}}}}}}<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: {{#ifeq: {{{2|}}} | g | x | {{#ifeq: {{{3|}}} | g | x | {{#ifeq: {{{4|}}} | g | x | {{#ifeq: {{str index|{{{1}}}|1}} | : | x | {{{g|}}} }} }} }} }} | {{FULLPAGENAME: {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister}}}: | }}{{{1}}} }} | {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister}}}: | }}Template:{{{1}}} }}|{{{text|{{{1}}}}}}]]<span class="wp-templatelink">&#125;}</span>
 +
                <!-- {{{lang}}} и {{{sister}}} появляются не в начале, а с FULLPAGENAME,
 +
                    чтобы FULLPAGENAME не менял название пространств имён для других разделов/проектов -->
 
     }}
 
     }}
 
   }}
 
   }}
| {{#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>
+
    {{#if: {{#switch: {{{2|}}} | nl = x | nolink = x | {{#switch: {{{3|}}} | nl = x | nolink = x | {{#switch: {{{4|}}} | nl = x | nolink = x | {{{nolink|{{{nl|}}}}}} }} }} }}
   | {{#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
     | <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>
+
    | {{#if: {{#titleparts: {{PAGENAME}} | 1 | 2 }}
     | <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>
+
      |
 +
      | {{#ifeq: {{lc: {{{lang|ru}}} }} | ru
 +
        | {{#if: {{{sister|}}} | | x }}
 +
        |
 +
        }}
 +
      }}
 +
    }}
 +
   | <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|}}} }} }} }} | {{ROOTPAGENAME}} | {{lcfirst: {{ROOTPAGENAME}} }} }}<span class="wp-templatelink">&#125;}</span>
 +
   | {{#ifexpr: {{str len|{{{text|{{ROOTPAGENAME}}}}}{{#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
 +
                <!-- Забирать ли в ссылку соседние фигурные скобки -->
 +
     | <span class="wp-templatelink">{</span>[[:{{#if: {{{lang|}}} | {{{lang|}}}: | }}{{#if: {{{sister|}}} | {{{sister|}}}: | }}Template:{{ROOTPAGENAME}}|<span class="wp-templatelink">{</span>{{{text|{{#if: {{#ifeq: {{{2|}}} | u | x | {{#ifeq: {{{3|}}} | u | x | {{#ifeq: {{{4|}}} | u | x | {{{u|}}} }} }} }} | {{ROOTPAGENAME}} | {{lcfirst: {{ROOTPAGENAME}} }} }}}}}<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:{{ROOTPAGENAME}}|{{{text|{{#if: {{#ifeq: {{{2|}}} | u | x | {{#ifeq: {{{3|}}} | u | x | {{#ifeq: {{{4|}}} | u | x | {{{u|}}} }} }} }} | {{ROOTPAGENAME}} | {{lcfirst: {{ROOTPAGENAME}} }} }}}}}]]<span class="wp-templatelink">&#125;}</span>
 
     }}
 
     }}
 
   }}
 
   }}
Строка 17: Строка 50:
  
 
Некоторые детали для понимания (части) логики:
 
Некоторые детали для понимания (части) логики:
• больше всего места занимает «прочесывание» параметров в поисках допустимых значений;
+
• больше всего места занимает «прочесывание» параметров в поисках регламентированных значений;
 
• если шаблон вызывается без первого параметра, максимум ненумерованных параметров может быть 4, поэтому нужные значения (nl/nolink, u, s/subst) ищутся во 2-4 параметрах;
 
• если шаблон вызывается без первого параметра, максимум ненумерованных параметров может быть 4, поэтому нужные значения (nl/nolink, u, s/subst) ищутся во 2-4 параметрах;
 
• если шаблон вызывается с первым параметром, максимум ненумерованных параметров может быть 3, поэтому нужные значения (nl/nolink, s/subst, g; но nl несовместимо с g) ищутся... все равно в 2-4 параметрах, мало ли;
 
• если шаблон вызывается с первым параметром, максимум ненумерованных параметров может быть 3, поэтому нужные значения (nl/nolink, s/subst, g; но nl несовместимо с g) ищутся... все равно в 2-4 параметрах, мало ли;
• в if’ах с новой строки перечисляются все условия, когда ссылка не показывается или показывается;
 
 
• когда мы находимся в документации (Шаблон:Имя шаблона/doc), ссылка тоже показывается;
 
• когда мы находимся в документации (Шаблон:Имя шаблона/doc), ссылка тоже показывается;
 
• x — подобие true или крестика в чекбоксе (со значением 1 получается путаница, ведь противоположность 1 — 0, но 0 тоже обрабатывается как true).
 
• x — подобие true или крестика в чекбоксе (со значением 1 получается путаница, ведь противоположность 1 — 0, но 0 тоже обрабатывается как true).

Версия от 00:10, 20 января 2016

{{tl}}

Документация