Открыть главное меню

Изменения

Шаблон:Игры по темам

1032 байта убрано, 19:50, 12 октября 2019
Рефакторинг: больше не требуется вручную задавать и потом контролировать границы выборки всех игр через #ask.
<div style="display: none;">
<!-- Костыль{{#vardefine: массив aParts содержит набор чисел от 0 с шагом 500, сумма максимального из которых с числом 500 должна превосходить общее число игр с темой в вики, но в идеале все должны быть с темой, так что лучше сразу всех игр.К сожалению, aParts требует ручной коррекции с ростом количества игр, о чём шаблон может сообщать. Например, если общее число игр в вики 2001, то максимальное число в aParts должно быть 2000 (2000 + 500 > 2001).Обусловлено невозможностью получить через iGamesWithThemes| {{#ask полный набор страниц без верхнего лимита в 500 штук, а также отсутствием возможностей реализовать в синтаксисе шаблонов полноценный цикл с условием. -->: [[Категория:Игры]] [[Название::+]] [[Тема::+]] | format=count }} }}{{#arraydefinevardefine:aPartsiLoops|{{#expr: {{#var:iGamesWithThemes}} / 500 + 1 round 0, 500, 1000, 1500, 2000}} }}
{{#arraydefine:aGames}}
{{#arrayprintloop:aPartsiLoop | 0 |@@@@{{#var:iLoops}} |{{#arraydefine:aTemp| {{#ask: [[Категория:Игры]] [[Название::+]] [[Тема::+]] | limit=500 | link=none | offset=@@@@ {{#expr: {{#var:iLoop}}*500}} | searchlabel= | sep=SUPERMEGADELIMITER }} |SUPERMEGADELIMITER}}
{{#arraymerge:aGames|aGames|aTemp}}
}}
{{#arraydefine:aThemes}}
<!-- Ниже используется #arrayprint вместо #loop, потому что не хватает стандартного лимита максимального количества тактов цикла. -->
{{#arrayprint:aGames| |@@@@|
{{#arraydefine:aTemp| {{#show: @@@@ | ?Тема | link=none }} }}
{{#arraysort:aThemes|asc}}
{{#vardefine:iAllGames| {{#ask: [[Категория:Игры]] [[Название::+]] | format=count }} }}
</div>{{#ifeq: {{#expr: {{#ask: [[Категория:Игры]] [[Тема::+]] | format=count }} > {{#arrayindex:aParts|-1}} + 500}} | 1 | '''Внимание! Данные в таблице некорректны. Требуется отредактировать [[:Шаблон:Игры по темам|шаблон]], внеся изменения в массив aParts.''' | }}
{| class="wikitable sortable"
! data-sort-type="text" | Тема
{{#arrayprint:aThemes| |@@@@| {{Игры по темам строка|@@@@| {{#var:iAllGames}} }} }}
! [[:Категория:Игры без тем|(Без тем)]]
| {{#vardefine:iGamesWithoutThemes| {{#expr: {{#var:iAllGames}} - {{#arraysizevar:aGamesiGamesWithThemes}} }} }}{{#var:iGamesWithoutThemes}}
| {{formatnum:{{#expr: {{#var:iGamesWithoutThemes}} / {{#var:iAllGames}} * 100 round 2 }}}}%
|-