Википедия, если заявление не работает
Это мой шаблон: тест
id1: {{{#if: {{{id1}}} | {{{id1}}} | text1}}} <br>
id2: {{{#if: {{{id2}}} | {{{id2}}} | text2}}} <br>
id3: {{{#if: {{{id3}}} | {{{id3}}} | text3}}} <br>
id4: {{{#if: {{{id4}}} | {{{id4}}} }}} <br>
<br>
Это код страницы TestPage с использованием этого шаблона:
{{Test
| id1 = 123
| id2 =
}}
Вывод моей TestPage (что видит пользователь):
id1: 123
id2:
id3: {{{id3}}}
id4: {{{id4}}}
Я хочу, чтобы вывод был:
id1: 123
id2: text2
id3: text3
id4:
Что я делаю неправильно? Почему это не выводит то, что я хочу? Изменить: я использую MediaWiki версии MediaWiki-1.30.0.
1 ответ
Когда параметр не указан (как для id3
а также id4
Ваш пример включения, id2
пусто, но дано) {{{id3}}}
оценивает к буквальному тексту {{{id3}}}
, Это истинная ценность в #if
состояние.
Вместо этого используйте {{{id3|}}}
, который имеет значение по умолчанию для "когда не дано" после канала, здесь оно пустое - и рассматривается как ложное в #if
состояние. Рассматривать
id1: {{{id1|text1}}}<br>
id2: {{{id2|text2}}}<br>
id3: {{{id3|text3}}}<br>
id4: {{{id4|}}}<br>
который для вашего включения приведет к выходу
id1: 123
id2:
id3: text3
id4:
Поскольку вы хотите получить значение по умолчанию, когда параметр задан, но пустой, вы должны использовать
id1: {{#if: {{{id1|}}} | {{{id1}}} | text1}} <br>
id2: {{#if: {{{id2|}}} | {{{id2}}} | text2}} <br>
id3: {{#if: {{{id3|}}} | {{{id3}}} | text3}} <br>
id4: {{#if: {{{id4|}}} | {{{id4}}} }} <br>