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

Материал из Wiren Board
Метка: отменено
(не показано 70 промежуточных версий этого же участника)
Строка 1: Строка 1:
<noinclude>
{{#vardefine:TextTemplate
== Описание ==
| '''{{{version}}}'''
=== Что делает ===
Шаблон генерирует строку для чейндждога. В content можно вставить форматированный текст, рисунки и галереи рисунков.


Как это работает. Шаблон получает в версию и дату изменения, в models перечень затронутых изменением моделей через запятую, а в content информацию об изменении. В результате генерирутся несколько форматированных строк, которые вставляются в страницу, откуда был вызван шаблон.
{{{date}}}


Кроме этого, если страницу, куда был вставлен шаблон, вызвать с параметром-моделью, то шаблон ChangelogItem выведет только те изменения, которые затрагивают это устройство. Таким образом формируется список изменений для модели. Можно передать только одну модель.
{{{text}}}
 
Проверка ошибок. Так же для каждой линейки есть инклюд с перечнем поделей, который вставлен в общий список изменений, чтобы было удобно копировать названия, а ещё с использованием этого инклюда происходит проверка написания модели. Если модель написана неверно, снизу пункта будет выведено текущее написание, окрашенное в красный цвет. Для проверки используется [[Шаблон: Check]], который ищет по инклюду [[Wbincludes: CheckModels]].
 
=== Живые примеры использования ===
Реле:
* [[Wbincludes: WB-MR Models]] — список моделей реле
* [[Wbincludes:WB-MR: Changelog]] — общий список изменений в прошивке для всех реле
* [[WB-MR6C v.3: Changelog]] — страница со списком изменений в прошивке реле WB-MR6C v.3
 
== Программисту ==
{{Anchor|coder}}
=== Что делать ===
Так как списки изменений разбиты по типам устройств (реле, датчики и т.п.), то надо определиться, куда мы будем писать изменения, потом:
# Открыть инклюд общего списка изменения для нужного типа устройств, [[Список_шаблонов#changelogs |список инклюдов]].
# Внести по образцу новый пункт, указать:
#* release — статус прошивки testing/stable
#* version — версия прошивки
#* date — дата выпуска прошивки в русском формате ДД.ММ.ГГГГ
#* models — наименования затронутых моделей через запятую с подчеркиванием на конце, например, <code>WB-MR6C_</code>
#* content — описание изменения, можно использовать форматированный текст, картинки и галереи.
 
Параметр <code>{{{1}}}</code> не удалять — это для индивидуального списка.
 
Стараемся выдержать одинаковый стиль: добавлено, исправлено и т.п. Если где-то написано по-другому — поправь.
 
=== Прошивка из testing ===
Пример:
:<syntaxhighlight lang="wiki">
{{ChangelogItem
| {{{1}}}
| release = testing
| version = 1.18.4
| date = 26.04.2022
| models = WB-MR6C_, WB-MR6C v.2_, WB-MR6C v.3_
| content=
Добработка безопасного режима
}}
}}
</syntaxhighlight>
{{#ifexpr: {{#len:{{{1}}}}} > 7
 
| {{#ifexpr: {{#pos:{{{models}}}|{{{1}}}}} > 0 | {{#var:TextTemplate}} | не совпало}}
[[Image: ChangelogItemResultTesting.png |900px|thumb| center | Запись о тестовой версии прошивки]]
| {{#var:TextTemplate}}


=== Прошивка из stable ===
Затронутые модели: {{{models}}}
То же самое, что и для testing, но нужно указать <code>release = stable</code>:
:<syntaxhighlight lang="wiki">
{{ChangelogItem
| {{{1}}}
| release = stable
| version = 1.18.4
| date = 26.04.2022
| models = WB-MR6C_, WB-MR6C v.2_, WB-MR6C v.3_
| content=
Добработка безопасного режима
}}
}}
</syntaxhighlight>
[[Image: ChangelogItemResult.png |900px|thumb| center | Запись о стабильной версии прошивки]]
=== Готовый список моделей ===
Актуальный список моделей для выбранного типа устройств смотрите внизу общей страницы изменений в прошивке.
[[Image: ChangelogItemModels.png |900px|thumb| center | Список моделей для реле]]
=== Обработка ошибок в названии модели ===
Если модель указана неверно, она будет продублирована под описанием изменения и окрашена в красный цвет.
[[Image: ChangelogItemError.png |900px|thumb| center | В названии модели ошибка]]
== Техписателю ==
При выходе новой модели устройства:
# Добавить название модели в инклюд, по которому происходит проверка правильности написания модели. [[Список_шаблонов#changelogs |Список инклюдов]].
# Создать сраницу изменений в прошивке устройства, в названии указать модель.
#:Например, страница [[WB-MR6C v.3: Changelog]] выглядит так:
#:<syntaxhighlight lang="wikitext">
{{DISPLAYTITLE: Изменения в прошивке WB-MR6C v.3}}
== Общее ==
{{Wbincludes:Changelog Update Devices}}
== Список изменений ==
{{Wbincludes:WB-MR: Changelog|WB-MR6C v.3_}}
</syntaxhighlight>
</noinclude><includeonly>{{#vardefine:IsTesting
|    {{#ifeq: {{{release}}} | testing | — <i>доступно в [[WB_Modbus_Devices_Firmware_Update|testing]]}}</i>
}}{{#vardefine:TryResult
| '''{{{version}}} ({{{date}}})''' {{#var:IsTesting}}
{{{content}}}
}}{{#vardefine:FalseResult
| '''{{{version}}} ({{{date}}})''' {{#var:IsTesting}}
<div class="text-gray">Без изменений для этого устройства.</div>
}}
{{#ifexpr: {{#count:{{{1}}}|WB}}>0
| {{#ifexpr: {{#count:{{{models}}}|{{{1}}}}} = 1 | {{#var:TryResult}}|{{#var:FalseResult}} }}
| {{#var:TryResult}}
<div class="text-gray">''{{{models}}}''</div>
{{Check|{{{models}}}|{{Wbincludes:CheckModels}} }}
}}</includeonly>

Версия 21:17, 6 июня 2022

{{{version}}}

{{{date}}}

{{{text}}}

Затронутые модели: {{{models}}}