Перейти к содержанию
Главное меню
Главное меню
переместить в боковую панель
скрыть
Навигация
Заглавная страница
Указатели
Свежие правки
Случайная страница
Справка по MediaWiki
Народные Сказки
Поиск
Найти
Создать учётную запись
Войти
Персональные инструменты
Создать учётную запись
Войти
Страницы для неавторизованных редакторов
узнать больше
Вклад
Обсуждение
Редактирование:
РуСказки:Механизм шаблонов
(раздел)
О проекте
Обсуждение
русский
Читать
Править код
История
Инструменты
Инструменты
переместить в боковую панель
скрыть
Действия
Читать
Править код
История
Общие
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
=== Условное значение параметра === Чтобы не появлялся нераскрытый текст параметра с незаданным значением, используют ''условное значение'' параметра в тексте шаблона. <br> Именованный или нумерованный параметр ''параметр'' внутри шаблона записывается в форме <code><nowiki>{{{параметр|альтернативный текст}}}</nowiki></code>. Если в вызове шаблона значение параметра не задано <code><nowiki>|параметр = </nowiki></code>, то при раскрытии шаблона вместо значения параметра будет подставлен альтернативный текст.<br> Если альтернативный текст пустой <code><nowiki>{{{параметр|}}}</nowiki></code>, используется пустое значение, то есть в месте параметра никакой текст выводиться не будет. В зависимости от значения параметра шаблона в текст статьи можно вставлять фрагменты. Для этой цели в тексте шаблона используются [[РуСказки:Функции парсера|функции парсера]], многие из которых являются частными случаями условного оператора: <code><nowiki>{{#if}}</nowiki></code> (также поддерживается <code><nowiki>{{#если}}</nowiki></code>) и другие. Синтаксис функции <code><nowiki>{{#if}}</nowiki></code> выглядит так: {{#if: ''проверяемый параметр'' | ''текст, когда значение параметра заполнено'' | ''текст, когда значение параметра пустое'' }} ''Текст, когда значение параметра пустое'', не является обязательным, поэтому можно использовать сокращённую форму: {{#if: ''проверяемый параметр'' | ''текст, когда значение параметра заполнено'' }} Если проверяемый параметр шаблона записан в форме <code><nowiki>{{{параметр}}}</nowiki></code>, то непустое значение параметра означает: либо его значение задано непустым при вызове шаблона, либо оно не задано и остаётся неопределённым (и если вывести его на страницу, то мы так и получим: {{{параметр}}}). То есть мы не можем понять, задано значение параметра или нет. Чтобы иметь возможность вызывать шаблон с меньшим количеством параметров, чем в тексте шаблона, и чтобы незаданные параметры игнорировались, параметры в теле шаблона записываются в форме <code><nowiki>{{{параметр|}}}</nowiki></code>. Если при вызове шаблона задано непустое значение параметра, то оно будет использоваться. В противном случае используется условное значение параметра ''пусто''. Пример использования условного значения ''пусто'' для параметра ''sample'': <pre> {{#if: {{{sample|}}} | параметр '''sample''': задано непустое значение! | параметр '''sample''': значение не задано или задано пустое значение! }} </pre> Реальный пример использования функции парсера <code><nowiki>{{#if}}</nowiki></code>, которая является частным случаем условного оператора, можно найти в коде шаблона {{Tl|Userbox/Fidonet}}. ==== Эффект пустых строк ==== Пусть нужно вывести имена параметров с заданными значениями в виде текста, а имена параметров, значения которых не заданы или пустые, не выводить. Для этого будем использовать условный оператор в сокращённой форме: <pre> {{#if: {{{sample1|}}} | '''sample1'''! }} {{#if: {{{sample2|}}} | '''sample2'''! }} {{#if: {{{sample3|}}} | '''sample3'''! }} </pre> Если все значения параметров заданы и не пустые, то результаты условных операторов выстраиваются в одну строку. Если значение второго параметра не задано или задано пустым, то между первым и третьим результатом появляется пустая строка. Такой же эффект даёт вариант со вторым оператором в полной форме: <code><nowiki>{{#if: {{{sample2|}}} | '''sample2'''!| |}}</nowiki></code>. Такое действие условного оператора позволяет увидеть по пустым строкам, что не все значения параметров заданы. Однако, если шаблон используется для последовательной вставки фрагментов текста, текст будет выглядеть разорванным. Тот же пример, но второй условный оператор в полной форме и выводит неразрывный пробел. Результаты выводятся в строку: <pre> {{#if: {{{sample1|}}} | '''sample1'''! }} {{#if: {{{sample2|}}} | '''sample2'''! |{{Nobr|}} }} {{#if: {{{sample3|}}} | '''sample3'''! }} </pre> Тот же пример, но второй условный оператор в сокращённой форме и после него стоит неразрывный пробел. Результаты также выводятся в строку: <pre> {{#if: {{{sample1|}}} | '''sample1'''! }} {{#if: {{{sample2|}}} | '''sample2'''! }}{{Nobr|}} {{#if: {{{sample3|}}} | '''sample3'''! }} </pre> Примеры реализованы в таблице: {|class="wikitable" ! width="12%"|Варианты !Код при вызове шаблона !Код !Результат |- |Значения параметров заданы | <pre> |sample1=sample1 |sample2=sample2 |sample3=sample3 </pre> | <pre> {{#if: {{{sample1|sample1}}} | '''sample1'''! }} {{#if: {{{sample2|sample2}}} | '''sample2'''! }} {{#if: {{{sample3|sample3}}} | '''sample3'''! }} </pre> | {{#if: {{{sample1|sample1}}} | '''sample1'''! }} {{#if: {{{sample2|sample2}}} | '''sample2'''! }} {{#if: {{{sample3|sample3}}} | '''sample3'''! }} |- |rowspan="4"| Значение второго параметра не задано |rowspan="4"| <pre> |sample1=sample1 |sample2= |sample3=sample3 </pre> | <pre> {{#if: {{{sample1|sample1}}} | '''sample1'''! }} {{#if: {{{sample2|}}} | '''sample2'''! }} {{#if: {{{sample3|sample3}}} | '''sample3'''! }} </pre> | {{#if: {{{sample1|sample1}}} | '''sample1'''! }} {{#if: {{{sample2|}}} | '''sample2'''! }} {{#if: {{{sample3|sample3}}} | '''sample3'''! }} |- | <pre> {{#if: {{{sample1|sample1}}} | '''sample1'''! }} {{#if: {{{sample2|}}} | '''sample2'''! |{{Nobr|}} }} {{#if: {{{sample3|sample3}}} | '''sample3'''! }} </pre> | {{#if: {{{sample1|sample1}}} | '''sample1'''! }} {{#if: {{{sample2|}}} | '''sample2'''!|{{Nobr|}} }} {{#if: {{{sample3|sample3}}} | '''sample3'''! }} |- | <pre> {{#if: {{{sample1|sample1}}} | '''sample1'''! }} {{#if: {{{sample2|}}} | '''sample2'''! }}{{Nobr|}} {{#if: {{{sample3|sample3}}} | '''sample3'''! }} </pre> | {{#if: {{{sample1|sample1}}} | '''sample1'''! }} {{#if: {{{sample2|}}} | '''sample2'''! }}{{Nobr|}} {{#if: {{{sample3|sample3}}} | '''sample3'''! }} |- | <pre> {{#if: {{{sample1|sample1}}} | '''sample1'''! }}{{Nobr|}} {{#if: {{{sample2|}}} | '''sample2'''! }}{{Nobr|}} {{#if: {{{sample3|sample3}}} | '''sample3'''! }}{{Nobr|}} </pre> | {{#if: {{{sample1|sample1}}} | '''sample1'''! }}{{Nobr|}} {{#if: {{{sample2|}}} | '''sample2'''! }}{{Nobr|}} {{#if: {{{sample3|sample3}}} | '''sample3'''! }}{{Nobr|}} |} Пустая строка между первой и третьей строкой появилась из-за того, что условный оператор во второй строке вывел два перевода строки вместо пустого значения и результат обработки условными операторами принял следующий вид: '''sample1'''! <small>(пустая строка)</small> '''sample3'''! Если один перевод строки подавлен, например, малым неразрывным пробелом <code><nowiki>{{Nobr|}}</nowiki></code>, то условный оператор во второй строке не выводит ни одного перевода строки и весь результат обработки выводится в строку: '''sample1'''!{{Nobr|}} '''sample3'''! Эффект пустых строк может проявляться в шаблонах-карточках, когда на месте неопределённых параметров появляются пустые строки. Чтобы этого не происходило нужно исключать перевод строки между условными операторами. Этого можно добиться не только описанными выше, но и способами, исключающими все (и это обязательно!) переводы строки между условными операторами. Примеры реализованы в таблице: {|class="wikitable" !width="12%"|Способ !width="76%"|Код !width="12%"|Результат |- |Писать все условные операторы в одну строку | <code><nowiki> {{#if: {{{sample1|sample1}}} | '''sample1'''! }}{{#if: {{{sample2|}}} | '''sample2'''! }}{{#if: {{{sample3|sample3}}} | '''sample3'''!}}</nowiki></code> | {{#if:{{{sample1|sample1}}}|'''sample1'''!}}{{#if:{{{sample2|}}}|'''sample2'''!}}{{#if:{{{sample3|sample3}}}|'''sample3'''!}} |- |Включать комментарии для исключения знака переноса | <pre> {{#if: {{{sample1|sample1}}} |'''sample1'''! }}<!-- разделитель -->{{#if: {{{sample2|}}} |'''sample2'''! }}<!-- разделитель -->{{#if: {{{sample3|sample3}}} |'''sample3'''! }}</pre> | {{#if: {{{sample1|sample1}}} |'''sample1'''! }}<!-- разделитель -->{{#if: {{{sample2|}}} |'''sample2'''! }}<!-- разделитель -->{{#if: {{{sample3|sample3}}} |'''sample3'''! }} |- |Делать переносы внутри условных операторов, а не между ними | <pre> {{ #if: {{{sample1|sample1}}} | '''sample1'''! }}{{ #if: {{{sample2|}}} | '''sample2'''! }}{{ #if: {{{sample3|sample3}}} | '''sample3'''! }}</pre> | {{ #if: {{{sample1|sample1}}} | '''sample1'''! }}{{ #if: {{{sample2|}}} | '''sample2'''! }}{{ #if: {{{sample3|sample3}}} | '''sample3'''! }} |}
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «Народные Сказки» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
РуСказки:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Отобразить/Скрыть ограниченную ширину содержимого