Модуль:Football/doc: различия между версиями
Andrew (обсуждение | вклад) Новая страница: «Модуль строит для кругового футбольного турнира турнирную таблицу, шахматку результатов и, по желанию, таблицу положения команд по турам. Очки, разница мячей, места, карточки и снятия очков считаются автоматически по данным о матчах. == Использование ==...» |
Andrew (обсуждение | вклад) Нет описания правки |
||
| Строка 1: | Строка 1: | ||
Модуль строит для кругового футбольного турнира турнирную таблицу, шахматку результатов и, по желанию, таблицу положения команд по турам. Очки, разница мячей, места, карточки и снятия очков считаются автоматически по данным о матчах. | Модуль строит для кругового футбольного турнира — двухкругового или однокругового — турнирную таблицу, шахматку результатов и, по желанию, таблицу положения команд по турам. Очки, разница мячей, места, карточки и снятия очков считаются автоматически по данным о матчах. | ||
Турнир, в котором после первого этапа таблица делится на группы, оформляется несколькими таблицами: таблицы групп начинаются с итогов первого этапа — см. [[#Турнир из нескольких этапов|«Турнир из нескольких этапов»]]. | |||
== Использование == | == Использование == | ||
| Строка 32: | Строка 34: | ||
</pre> | </pre> | ||
Несыгранные матчи можно внести заранее с пустым счётом: в шахматке они видны как «—» и начинают учитываться, как только вписан счёт. | Несыгранные матчи можно внести заранее с пустым счётом: в шахматке они видны как «—» и начинают учитываться, как только вписан счёт. | ||
Для однокругового турнира добавьте <code>rounds = 1</code> — см. [[#Шахматка|«Шахматка»]]. | |||
== Команды == | == Команды == | ||
| Строка 90: | Строка 94: | ||
! Значение !! Выше команда, у которой… | ! Значение !! Выше команда, у которой… | ||
|- | |- | ||
| <code>очки</code> || больше очков (с учётом снятых) | | <code>очки</code> || больше очков (с учётом снятых и стартовых) | ||
|- | |- | ||
| <code>разница</code> || лучше разница забитых и пропущенных мячей | | <code>разница</code> || лучше разница забитых и пропущенных мячей | ||
| Строка 100: | Строка 104: | ||
| <code>игры</code> || больше сыгранных матчей | | <code>игры</code> || больше сыгранных матчей | ||
|- | |- | ||
| <code>личные</code> || лучше результаты в матчах между всеми командами, набравшими столько же очков: сравниваются очки в этих матчах, затем разница мячей в них, забитые в них и победы в них. | | <code>личные</code> || лучше результаты в матчах между всеми командами, набравшими столько же очков: сравниваются очки в этих матчах, затем разница мячей в них, забитые в них и победы в них. Учитываются матчи этой таблицы и матчи <code>h2h_matchN</code> (см. [[#Личные встречи с учётом первого этапа|«Личные встречи с учётом первого этапа»]]); снятые и стартовые очки здесь не учитываются. Критерий имеет смысл только после <code>очки</code>. | ||
|- | |- | ||
| <code>название</code> || название раньше по алфавиту (сравнивается текст параметра <code>name_КОД</code> как есть, вместе с разметкой) | | <code>название</code> || название раньше по алфавиту (сравнивается текст параметра <code>name_КОД</code> как есть, вместе с разметкой) | ||
|} | |} | ||
Стартовые показатели команд (<code>start_КОД</code>) входят во все критерии, кроме <code>личные</code>. | |||
Под таблицей выводится строка «Критерии определения мест: …» с выбранным порядком. Нераспознанные значения модуль пропускает, но показывает в этой строке, так что по ней удобно проверять написание. | Под таблицей выводится строка «Критерии определения мест: …» с выбранным порядком. Нераспознанные значения модуль пропускает, но показывает в этой строке, так что по ней удобно проверять написание. | ||
| Строка 121: | Строка 127: | ||
! Часть !! Описание | ! Часть !! Описание | ||
|- | |- | ||
| место || Первое место зоны | | место || Первое место зоны — в нумерации таблицы, то есть с учётом <code>first_place</code> (см. [[#Нумерация мест|«Нумерация мест»]]) | ||
|- | |- | ||
| количество || Сколько мест подряд входит в зону (по умолчанию 1) | | количество || Сколько мест подряд входит в зону (по умолчанию 1) | ||
| Строка 129: | Строка 135: | ||
| текст || Подпись зоны (необязательно). Может содержать ссылки и «;». | | текст || Подпись зоны (необязательно). Может содержать ссылки и «;». | ||
|} | |} | ||
Если хотя бы у одной зоны есть текст, в таблице появляется столбец «Повышение или выбывание»: подпись выводится одной объединённой ячейкой на всю зону, места между зонами — пустыми объединёнными ячейками. Зоны не должны пересекаться | Если хотя бы у одной зоны есть текст, в таблице появляется столбец «Повышение или выбывание»: подпись выводится одной объединённой ячейкой на всю зону, места между зонами — пустыми объединёнными ячейками. Зоны не должны пересекаться. Зона, которая начинается выше первого места таблицы, обрезается, а зоны целиком за пределами таблицы не выводятся. | ||
<pre> | <pre> | ||
| Строка 138: | Строка 144: | ||
== Шахматка == | == Шахматка == | ||
Раздел «Результаты». | Раздел «Результаты». Строки и столбцы — команды в порядке <code>teams</code>, в ячейке — матч команды строки с командой столбца. | ||
{| class="wikitable" | |||
! Параметр !! Значения !! Описание | |||
|- | |||
| <code>rounds</code> || <code>2</code> (по умолчанию) или <code>1</code> || Число кругов: <code>1</code> — однокруговой турнир | |||
|- | |||
| <code>resultsMode</code> || <code>round</code> || Только для двухкругового турнира: строки по кругам, а не «дома — в гостях» | |||
|} | |||
'''Двухкруговой турнир''' (по умолчанию): каждая пара играет по разу на поле каждой из команд, поэтому у команды две строки. В первой — её домашние матчи, во второй — выездные. При <code>resultsMode = round</code> первая строка показывает матчи первого круга, вторая — второго (по номеру круга в <code>matchN</code>). | |||
'''Однокруговой турнир''' (<code>rounds = 1</code>): каждая пара играет один раз, поэтому у команды одна строка, а в ячейке — единственный матч пары, на чьём бы поле он ни был. Параметр <code>resultsMode</code> при этом не действует. | |||
Счёт всегда записан как «хозяева:гости», а цвет ячейки показывает результат для команды строки: класс <code>ui green</code> — победа, <code>ui yellow</code> — ничья, <code>ui red</code> — поражение. Например, в однокруговой шахматке матч «Спартак» — ЦСКА 0:2 и в строке «Спартака», и в строке ЦСКА записан как «0:2», но у «Спартака» ячейка красная, а у ЦСКА — зелёная. | |||
Если у пары больше матчей, чем ячеек (например, отменённый матч и переигровка), в ячейке показывается первый сыгранный из них, а если сыгранных нет — первый с пометкой «перенесён», «отменён» или «ошибка: …». | |||
== Положение команд по турам == | == Положение команд по турам == | ||
| Строка 160: | Строка 176: | ||
Снятие очков учитывается начиная с тура матча, к которому оно привязано, а ячейка этого тура получает ту же сноску, что и команда в итоговой таблице. | Снятие очков учитывается начиная с тура матча, к которому оно привязано, а ячейка этого тура получает ту же сноску, что и команда в итоговой таблице. | ||
Стартовые показатели (<code>start_КОД</code>) действуют с первого тура таблицы, а матчи <code>h2h_matchN</code> учитываются в критерии <code>личные</code> как сыгранные до первого тура. Места выводятся в нумерации таблицы (с учётом <code>first_place</code>), и в <code>progress_highlightN</code> места указываются в этой же нумерации. | |||
== Карточки == | == Карточки == | ||
Карточки необязательны. Если они не указаны ни в одном матче | Карточки необязательны. Если они не указаны ни в одном матче, ни у одной команды и ни в одних стартовых показателях, столбцов карточек в таблице нет. Если они указаны хотя бы где-нибудь, после столбца «О» появляются три столбца — у всех команд. | ||
Карточки учитываются раздельно, как в подробной футбольной статистике, чтобы вторая жёлтая карточка не засчитывалась дважды: | Карточки учитываются раздельно, как в подробной футбольной статистике, чтобы вторая жёлтая карточка не засчитывалась дважды: | ||
| Строка 200: | Строка 218: | ||
| match1_yellowred = 0:1 | | match1_yellowred = 0:1 | ||
</pre> | </pre> | ||
Здесь у хозяев две жёлтые карточки, у гостей — три жёлтые и одно удаление за вторую жёлтую. Неуказанный вид карточек считается как <code>0:0</code>. Карточки суммируются по всем матчам, где они указаны, независимо от счёта. | Здесь у хозяев две жёлтые карточки, у гостей — три жёлтые и одно удаление за вторую жёлтую. Неуказанный вид карточек считается как <code>0:0</code>. Карточки суммируются по всем матчам, где они указаны, независимо от счёта, и прибавляются к карточкам из стартовых показателей (<code>start_КОД</code>), если они там заданы. | ||
=== Итог команды === | === Итог команды === | ||
<code>yellow_КОД</code>, <code>yellowred_КОД</code>, <code>red_КОД</code> — итоговое количество карточек команды (целое неотрицательное число). Если у команды указан хотя бы один из этих параметров, все её карточки берутся только из них (неуказанные считаются нулём), а карточки из матчей этой команды не учитываются. У остальных команд карточки по-прежнему считаются по матчам. | <code>yellow_КОД</code>, <code>yellowred_КОД</code>, <code>red_КОД</code> — итоговое количество карточек команды (целое неотрицательное число). Если у команды указан хотя бы один из этих параметров, все её карточки берутся только из них (неуказанные считаются нулём), а карточки из матчей и стартовых показателей этой команды не учитываются. У остальных команд карточки по-прежнему считаются по матчам. | ||
<pre> | <pre> | ||
| Строка 239: | Строка 257: | ||
Сноски обозначаются буквами a, b, c… сверху вниз по итоговой таблице. Снятие действует независимо от того, сыгран ли матч, и не влияет на критерий <code>личные</code>. | Сноски обозначаются буквами a, b, c… сверху вниз по итоговой таблице. Снятие действует независимо от того, сыгран ли матч, и не влияет на критерий <code>личные</code>. | ||
Очки, снятые с команды до начала таблицы (например, в первом этапе турнира), здесь не указываются: они уже входят в её стартовые очки — см. [[#Стартовые показатели|«Стартовые показатели»]]. | |||
== Турнир из нескольких этапов == | |||
Бывает, что после первого этапа таблица делится на группы — пополам или в другой пропорции, например 6 первых команд играют за 1–6 места, а 8 последних — за 7–14 места, — и команды доигрывают в своих группах. Такой турнир оформляется несколькими таблицами: | |||
# '''первый этап''' — обычная таблица всех команд (если этап однокруговой — с <code>rounds = 1</code>); | |||
# '''каждая группа второго этапа''' — отдельная таблица только из команд группы и матчей второго этапа. Итоги первого этапа задаются стартовыми показателями <code>start_КОД</code>, а у групп ниже первой нумерация мест начинается с <code>first_place</code>. Если среди критериев есть <code>личные</code>, в таблицу группы добавляются ещё и матчи первого этапа — <code>h2h_matchN</code>. | |||
Стартовые показатели переписываются из итоговой таблицы первого этапа вручную. Зато так можно описать любой регламент перехода: сохраняются все результаты, очки делятся пополам или учитываются только матчи с командами своей группы. | |||
Полный пример — в разделе [[#Пример турнира из двух этапов|«Пример турнира из двух этапов»]]. | |||
=== Стартовые показатели === | |||
<code>start_КОД = И;В;Н;П;МЗ;МП;О;ЖК;2ЖК;КК</code> — показатели, с которыми команда начинает таблицу. Части идут в том же порядке, что и столбцы итоговой таблицы (без РМ — она вычисляется сама), а за ними карточки: | |||
{| class="wikitable" | |||
! Часть !! Что означает !! Если пусто | |||
|- | |||
| И || Игры || В + Н + П | |||
|- | |||
| В, Н, П || Победы, ничьи, поражения || 0 | |||
|- | |||
| МЗ, МП || Забитые и пропущенные мячи || 0 | |||
|- | |||
| О || Очки; могут быть дробными (<code>12,5</code>) и отрицательными || Вычисляются по победам, ничьим и поражениям с учётом <code>points_win</code>, <code>points_draw</code>, <code>points_loss</code> | |||
|- | |||
| ЖК, 2ЖК, КК || Жёлтые карточки, удаления за вторую жёлтую карточку, прямые красные — как <code>yellow</code>, <code>yellowred</code>, <code>red</code> в разделе [[#Карточки|«Карточки»]] || 0 | |||
|} | |||
Все части, кроме О, — целые неотрицательные числа. Если И указано, оно должно быть равно В + Н + П. Последние части можно не писать: при 3 очках за победу <code>start_СПА = 13;9;2;2;27;10</code> означает то же, что <code>start_СПА = 13;9;2;2;27;10;29</code>. | |||
Стартовые показатели: | |||
* прибавляются к результатам матчей таблицы и учитываются во всех критериях, кроме <code>личные</code>; | |||
* в таблице положения по турам действуют с первого тура этой таблицы; | |||
* в шахматке не видны: в ней только матчи этой таблицы; | |||
* если в них указаны карточки, те складываются с карточками из матчей, а итог команды (<code>yellow_КОД</code> и т. д.) заменяет и те и другие. | |||
Очки, снятые в первом этапе, уже входят в очки О, и сноски о них в таблице группы не выводятся. Снятие очков за матчи второго этапа указывается как обычно — <code>matchN_deduction</code>. | |||
Если во второй этап переходят не все результаты первого, в <code>start_КОД</code> указывается только то, что переходит. Например, если команды сохраняют половину очков, а игры и мячи считаются заново: <code>start_СПА = ;;;;;;14,5</code>. | |||
Параметры <code>start_КОД</code> для кодов, которых нет в <code>teams</code>, не читаются, поэтому в таблицы всех групп можно вставить один и тот же блок со всеми командами. | |||
=== Нумерация мест === | |||
<code>first_place</code> — номер первого места таблицы, по умолчанию 1. Для группы за 7–14 места указывается <code>first_place = 7</code>: места в турнирной таблице и в таблице положения по турам нумеруются с 7-го. В этой же нумерации указываются места в <code>highlightN</code> и <code>progress_highlightN</code>, например <code>highlight1 = 13;2;red;Выбывание</code>. | |||
Зона, которая начинается выше первого места таблицы, обрезается, а зоны целиком за пределами таблицы не выводятся, поэтому одинаковый набор зон тоже можно вставить в таблицы всех групп. | |||
=== Личные встречи с учётом первого этапа === | |||
В таблице группы критерий <code>личные</code> видит только её матчи, а по регламенту обычно учитываются все матчи сезона между командами. Матчи первого этапа добавляются параметрами <code>h2h_match1</code>, <code>h2h_match2</code>… (без пропусков в нумерации) в тех же форматах, что и <code>matchN</code>. Такие матчи: | |||
* учитываются только в критерии <code>личные</code>, а в таблице положения по турам — как сыгранные до первого тура; | |||
* не влияют на показатели команд, шахматку и таблицу по турам: итоги первого этапа уже есть в <code>start_КОД</code>; | |||
* пропускаются, если в матче играет команда, которой нет в <code>teams</code>, или если матч не сыгран. | |||
Проще всего скопировать в таблицу группы строки <code>matchN</code> из таблицы первого этапа и заменить в них <code>match</code> на <code>h2h_match</code>. Матчи с командами других групп модуль пропустит сам, а получившиеся из карточек и снятий очков строки вроде <code>h2h_match5_yellow</code> не читает — их можно удалить. | |||
== Оформление == | == Оформление == | ||
| Строка 298: | Строка 370: | ||
|- | |- | ||
| матч N имеет неправильный формат || В <code>matchN</code> меньше трёх частей через «;». | | матч N имеет неправильный формат || В <code>matchN</code> меньше трёх частей через «;». | ||
|- | |||
| параметр ''h2h_matchN'' имеет неправильный формат || В <code>h2h_matchN</code> меньше трёх частей через «;». | |||
|- | |- | ||
| в матче N неизвестная команда … || Код не входит в <code>teams</code>. Проверьте написание, в том числе не попали ли латинские буквы вместо кириллических. | | в матче N неизвестная команда … || Код не входит в <code>teams</code>. Проверьте написание, в том числе не попали ли латинские буквы вместо кириллических. | ||
| Строка 308: | Строка 382: | ||
|- | |- | ||
| параметр ''yellow_КОД'' должен быть целым неотрицательным числом … || Исправьте итог карточек команды (то же для <code>yellowred_КОД</code> и <code>red_КОД</code>). | | параметр ''yellow_КОД'' должен быть целым неотрицательным числом … || Исправьте итог карточек команды (то же для <code>yellowred_КОД</code> и <code>red_КОД</code>). | ||
|- | |||
| параметр ''rounds'' может быть равен 1 … или 2 … || Укажите <code>1</code> для однокругового турнира или уберите параметр. | |||
|- | |||
| параметр ''first_place'' должен быть целым положительным числом … || Укажите номер первого места таблицы, например <code>7</code>. | |||
|- | |||
| в параметре ''start_КОД'' больше 10 значений … || Частей не больше десяти: <code>И;В;Н;П;МЗ;МП;О;ЖК;2ЖК;КК</code>. | |||
|- | |||
| в параметре ''start_КОД'' значение … должно быть целым неотрицательным числом … || Исправьте названную часть. Дробными и отрицательными могут быть только очки. | |||
|- | |||
| в параметре ''start_КОД'' очки (О) должны быть числом … || Седьмая часть — число, например <code>29</code> или <code>14,5</code>. | |||
|- | |||
| в параметре ''start_КОД'' число игр … не равно сумме побед, ничьих и поражений … || Проверьте И, В, Н и П или оставьте И пустым — тогда оно вычислится. | |||
|} | |} | ||
Нераспознанный счёт работу модуля не останавливает: такой матч не учитывается, а в шахматке на его месте видно «ошибка: …». | Нераспознанный счёт работу модуля не останавливает: такой матч не учитывается, а в шахматке на его месте видно «ошибка: …». | ||
| Строка 394: | Строка 480: | ||
| progress_highlight1 = 1;green | | progress_highlight1 = 1;green | ||
| progress_highlight2 = 4;red | | progress_highlight2 = 4;red | ||
}} | |||
== Пример турнира из двух этапов == | |||
Шесть команд играют первый этап в один круг, затем три лучшие разыгрывают 1–3 места, а остальные — 4–6 места: в своих группах команды играют в два круга. Все результаты первого этапа сохраняются, а при равенстве очков места определяются по личным встречам за весь сезон. | |||
Стартовые показатели в таблицах групп — это строки итоговой таблицы первого этапа, а в <code>h2h_matchN</code> — матчи первого этапа между командами группы. В группе за 4–6 места «Динамо» и ЦСКА набрали поровну очков и во втором этапе обменялись гостевыми победами 2:1, поэтому «Динамо» выше благодаря победе 2:0 в первом этапе. Без строк <code>h2h_match</code> выше оказался бы ЦСКА — у него лучше разница мячей. | |||
<pre> | |||
=== Первый этап === | |||
{{#invoke:Турнирная таблица|main | |||
| teams = СПА;ЦСК;ЗЕН;ЛОК;ДИН;КРА | |||
| name_СПА = Спартак | |||
| name_ЦСК = ЦСКА | |||
| name_ЗЕН = Зенит | |||
| name_ЛОК = Локомотив | |||
| name_ДИН = Динамо | |||
| name_КРА = Краснодар | |||
| rounds = 1 | |||
| heading_level = 4 | |||
| tie1 = очки | |||
| tie2 = личные | |||
| tie3 = разница | |||
| tie4 = забитые | |||
| match1 = 1;1;СПА;КРА;1:1 | |||
| match2 = 1;1;ДИН;ЦСК;2:0 | |||
| match3 = 1;1;ЗЕН;ЛОК;1:2 | |||
| match4 = 2;1;ДИН;СПА;0:0 | |||
| match5 = 2;1;КРА;ЛОК;1:0 | |||
| match6 = 2;1;ЗЕН;ЦСК;1:1 | |||
| match7 = 3;1;СПА;ЛОК;0:1 | |||
| match8 = 3;1;ЗЕН;ДИН;3:1 | |||
| match9 = 3;1;КРА;ЦСК;2:1 | |||
| match10 = 4;1;ЗЕН;СПА;1:3 | |||
| match11 = 4;1;ЛОК;ЦСК;2:0 | |||
| match12 = 4;1;КРА;ДИН;3:0 | |||
| match13 = 5;1;СПА;ЦСК;0:2 | |||
| match14 = 5;1;КРА;ЗЕН;1:2 | |||
| match15 = 5;1;ЛОК;ДИН;2:1 | |||
| highlight1 = 1;3;green;Группа за 1–3 места | |||
| highlight2 = 4;3;blue;Группа за 4–6 места | |||
}} | |||
=== Группа за 1–3 места === | |||
{{#invoke:Турнирная таблица|main | |||
| teams = ЛОК;КРА;ЗЕН | |||
| name_ЛОК = Локомотив | |||
| name_КРА = Краснодар | |||
| name_ЗЕН = Зенит | |||
| heading_level = 4 | |||
| tie1 = очки | |||
| tie2 = личные | |||
| tie3 = разница | |||
| tie4 = забитые | |||
| start_ЛОК = 5;4;0;1;7;3;12 | |||
| start_КРА = 5;3;1;1;8;4;10 | |||
| start_ЗЕН = 5;2;1;2;8;8;7 | |||
| h2h_match1 = 1;1;ЗЕН;ЛОК;1:2 | |||
| h2h_match2 = 2;1;КРА;ЛОК;1:0 | |||
| h2h_match3 = 5;1;КРА;ЗЕН;1:2 | |||
| match1 = 6;1;ЗЕН;КРА;2:2 | |||
| match2 = 7;1;ЗЕН;ЛОК;0:2 | |||
| match3 = 8;1;ЛОК;КРА;1:0 | |||
| match4 = 9;2;КРА;ЗЕН;0:1 | |||
| match5 = 10;2;ЛОК;ЗЕН;2:0 | |||
| match6 = 11;2;КРА;ЛОК;0:1 | |||
| highlight1 = 1;1;green;Чемпион | |||
| show_progress = yes | |||
| progress_highlight1 = 1;green | |||
}} | |||
=== Группа за 4–6 места === | |||
{{#invoke:Турнирная таблица|main | |||
| teams = СПА;ДИН;ЦСК | |||
| name_СПА = Спартак | |||
| name_ДИН = Динамо | |||
| name_ЦСК = ЦСКА | |||
| first_place = 4 | |||
| heading_level = 4 | |||
| tie1 = очки | |||
| tie2 = личные | |||
| tie3 = разница | |||
| tie4 = забитые | |||
| start_СПА = 5;1;2;2;4;5;5 | |||
| start_ДИН = 5;1;1;3;4;8;4 | |||
| start_ЦСК = 5;1;1;3;4;7;4 | |||
| h2h_match1 = 1;1;ДИН;ЦСК;2:0 | |||
| h2h_match2 = 2;1;ДИН;СПА;0:0 | |||
| h2h_match3 = 5;1;СПА;ЦСК;0:2 | |||
| match1 = 6;1;ЦСК;ДИН;1:2 | |||
| match2 = 7;1;ЦСК;СПА;0:1 | |||
| match3 = 8;1;СПА;ДИН;1:2 | |||
| match4 = 9;2;ДИН;ЦСК;1:2 | |||
| match5 = 10;2;СПА;ЦСК;0:2 | |||
| match6 = 11;2;ДИН;СПА;0:1 | |||
| highlight1 = 6;1;red;Выбывание | |||
| show_progress = yes | |||
| progress_highlight1 = 6;red | |||
}} | |||
</pre> | |||
Результат: | |||
=== Первый этап === | |||
{{#invoke:{{ROOTPAGENAME}}|main | |||
| teams = СПА;ЦСК;ЗЕН;ЛОК;ДИН;КРА | |||
| name_СПА = Спартак | |||
| name_ЦСК = ЦСКА | |||
| name_ЗЕН = Зенит | |||
| name_ЛОК = Локомотив | |||
| name_ДИН = Динамо | |||
| name_КРА = Краснодар | |||
| rounds = 1 | |||
| heading_level = 4 | |||
| tie1 = очки | |||
| tie2 = личные | |||
| tie3 = разница | |||
| tie4 = забитые | |||
| match1 = 1;1;СПА;КРА;1:1 | |||
| match2 = 1;1;ДИН;ЦСК;2:0 | |||
| match3 = 1;1;ЗЕН;ЛОК;1:2 | |||
| match4 = 2;1;ДИН;СПА;0:0 | |||
| match5 = 2;1;КРА;ЛОК;1:0 | |||
| match6 = 2;1;ЗЕН;ЦСК;1:1 | |||
| match7 = 3;1;СПА;ЛОК;0:1 | |||
| match8 = 3;1;ЗЕН;ДИН;3:1 | |||
| match9 = 3;1;КРА;ЦСК;2:1 | |||
| match10 = 4;1;ЗЕН;СПА;1:3 | |||
| match11 = 4;1;ЛОК;ЦСК;2:0 | |||
| match12 = 4;1;КРА;ДИН;3:0 | |||
| match13 = 5;1;СПА;ЦСК;0:2 | |||
| match14 = 5;1;КРА;ЗЕН;1:2 | |||
| match15 = 5;1;ЛОК;ДИН;2:1 | |||
| highlight1 = 1;3;green;Группа за 1–3 места | |||
| highlight2 = 4;3;blue;Группа за 4–6 места | |||
}} | |||
=== Группа за 1–3 места === | |||
{{#invoke:{{ROOTPAGENAME}}|main | |||
| teams = ЛОК;КРА;ЗЕН | |||
| name_ЛОК = Локомотив | |||
| name_КРА = Краснодар | |||
| name_ЗЕН = Зенит | |||
| heading_level = 4 | |||
| tie1 = очки | |||
| tie2 = личные | |||
| tie3 = разница | |||
| tie4 = забитые | |||
| start_ЛОК = 5;4;0;1;7;3;12 | |||
| start_КРА = 5;3;1;1;8;4;10 | |||
| start_ЗЕН = 5;2;1;2;8;8;7 | |||
| h2h_match1 = 1;1;ЗЕН;ЛОК;1:2 | |||
| h2h_match2 = 2;1;КРА;ЛОК;1:0 | |||
| h2h_match3 = 5;1;КРА;ЗЕН;1:2 | |||
| match1 = 6;1;ЗЕН;КРА;2:2 | |||
| match2 = 7;1;ЗЕН;ЛОК;0:2 | |||
| match3 = 8;1;ЛОК;КРА;1:0 | |||
| match4 = 9;2;КРА;ЗЕН;0:1 | |||
| match5 = 10;2;ЛОК;ЗЕН;2:0 | |||
| match6 = 11;2;КРА;ЛОК;0:1 | |||
| highlight1 = 1;1;green;Чемпион | |||
| show_progress = yes | |||
| progress_highlight1 = 1;green | |||
}} | |||
=== Группа за 4–6 места === | |||
{{#invoke:{{ROOTPAGENAME}}|main | |||
| teams = СПА;ДИН;ЦСК | |||
| name_СПА = Спартак | |||
| name_ДИН = Динамо | |||
| name_ЦСК = ЦСКА | |||
| first_place = 4 | |||
| heading_level = 4 | |||
| tie1 = очки | |||
| tie2 = личные | |||
| tie3 = разница | |||
| tie4 = забитые | |||
| start_СПА = 5;1;2;2;4;5;5 | |||
| start_ДИН = 5;1;1;3;4;8;4 | |||
| start_ЦСК = 5;1;1;3;4;7;4 | |||
| h2h_match1 = 1;1;ДИН;ЦСК;2:0 | |||
| h2h_match2 = 2;1;ДИН;СПА;0:0 | |||
| h2h_match3 = 5;1;СПА;ЦСК;0:2 | |||
| match1 = 6;1;ЦСК;ДИН;1:2 | |||
| match2 = 7;1;ЦСК;СПА;0:1 | |||
| match3 = 8;1;СПА;ДИН;1:2 | |||
| match4 = 9;2;ДИН;ЦСК;1:2 | |||
| match5 = 10;2;СПА;ЦСК;0:2 | |||
| match6 = 11;2;ДИН;СПА;0:1 | |||
| highlight1 = 6;1;red;Выбывание | |||
| show_progress = yes | |||
| progress_highlight1 = 6;red | |||
}} | }} | ||
Текущая версия от 14:14, 3 октября 2026
Модуль строит для кругового футбольного турнира — двухкругового или однокругового — турнирную таблицу, шахматку результатов и, по желанию, таблицу положения команд по турам. Очки, разница мячей, места, карточки и снятия очков считаются автоматически по данным о матчах.
Турнир, в котором после первого этапа таблица делится на группы, оформляется несколькими таблицами: таблицы групп начинаются с итогов первого этапа — см. «Турнир из нескольких этапов».
Использование
Модуль вызывается напрямую из статьи:
{{#invoke:Football|main| … }}
Модуль читает только параметры самого вызова #invoke. Если нужен шаблон-обёртка, он должен явно передавать в модуль каждый параметр.
Модуль выводит по порядку:
- турнирную таблицу — без собственного заголовка (заголовок раздела ставится в статье);
- строку «Критерии определения мест» и, если с какой-то команды снимались очки, блок «Примечания»;
- раздел «Результаты» с шахматкой;
- раздел «Положение команд по турам» — только при
show_progress = yes.
Заголовки разделов — обычные вики-заголовки (по умолчанию === … ===), поэтому они попадают в оглавление статьи. Уровень заголовков меняется параметром heading_level.
Быстрый старт
{{#invoke:Турнирная таблица|main
| teams = СПА;ЦСК;ЗЕН
| name_СПА = Спартак
| name_ЦСК = ЦСКА
| name_ЗЕН = Зенит
| match1 = 1;1;СПА;ЦСК;2:1
| match2 = 2;1;ЦСК;ЗЕН;0:0
| match3 = 3;1;ЗЕН;СПА;1:3
| match4 = 4;2;ЦСК;СПА;
| match5 = 5;2;ЗЕН;ЦСК;
| match6 = 6;2;СПА;ЗЕН;
}}
Несыгранные матчи можно внести заранее с пустым счётом: в шахматке они видны как «—» и начинают учитываться, как только вписан счёт.
Для однокругового турнира добавьте rounds = 1 — см. «Шахматка».
Команды
| Параметр | Описание |
|---|---|
teams |
Обязательный. Коды команд через «;», например СПА;ЦСК;ЗЕН. Порядок кодов — это порядок строк и столбцов шахматки и строк таблицы по турам; итоговая таблица сортируется сама. Коды должны быть уникальными. Удобнее всего короткие коды из букв и цифр без пробелов: они входят в имена других параметров.
|
name_КОД |
Название команды, например name_СПА = Спартак. Можно использовать вики-разметку: name_СПА = [[ФК «Спартак»|Спартак]]. Если название не указано, выводится код.
|
Матчи
Каждый матч — отдельный параметр: match1, match2 и так далее. Нумерация без пропусков: модуль читает матчи по порядку и останавливается на первом отсутствующем или пустом номере, поэтому матчи после пропуска не учитываются.
Части значения разделяются «;». Допускаются три формата:
| Формат | Пример | Примечание |
|---|---|---|
тур;круг;хозяева;гости;счёт |
5;2;СПА;ЛОК;2:2 |
Полный формат. Номер тура нужен для таблицы положения по турам, номер круга — для режима шахматки resultsMode = round.
|
круг;хозяева;гости;счёт |
2;СПА;ЛОК;2:2 |
Матч не попадает в таблицу положения по турам. |
хозяева;гости;счёт |
СПА;ЛОК;2:2 |
Матч не попадает в таблицу положения по турам. |
Хозяева и гости указываются кодами из teams. Тур — число, круг — 1 или 2.
Возможные значения счёта:
| Значение | Что означает | Что видно в шахматке |
|---|---|---|
2:1 (можно 2 : 1) |
Матч сыгран: голы хозяев, двоеточие, голы гостей | Счёт и цвет результата |
пусто, - или — |
Матч ещё не сыгран | — |
перенесён или перенесен |
Матч перенесён | перенесён |
отменён или отменен |
Матч отменён | отменён |
| что-либо другое | Счёт не распознан, матч не учитывается | ошибка: … |
Техническое поражение записывается обычным счётом, например 0:3. Если за матч с команды ещё и сняли очки, это указывается отдельно — см. раздел «Снятие очков».
Очки за результат
| Параметр | По умолчанию | Описание |
|---|---|---|
points_win |
3 | Очки за победу |
points_draw |
1 | Очки за ничью |
points_loss |
0 | Очки за поражение |
Критерии определения мест
Параметры tie1 … tie10 задают критерии в порядке применения: если по первому критерию команды равны, сравнивается второй, и так далее. Если не указан ни один, используется порядок очки → разница → забитые → победы → название. Если команды равны по всем критериям, выше та, чей код раньше по алфавиту.
| Значение | Выше команда, у которой… |
|---|---|
очки |
больше очков (с учётом снятых и стартовых) |
разница |
лучше разница забитых и пропущенных мячей |
забитые |
больше забитых мячей |
победы |
больше побед |
игры |
больше сыгранных матчей |
личные |
лучше результаты в матчах между всеми командами, набравшими столько же очков: сравниваются очки в этих матчах, затем разница мячей в них, забитые в них и победы в них. Учитываются матчи этой таблицы и матчи h2h_matchN (см. «Личные встречи с учётом первого этапа»); снятые и стартовые очки здесь не учитываются. Критерий имеет смысл только после очки.
|
название |
название раньше по алфавиту (сравнивается текст параметра name_КОД как есть, вместе с разметкой)
|
Стартовые показатели команд (start_КОД) входят во все критерии, кроме личные.
Под таблицей выводится строка «Критерии определения мест: …» с выбранным порядком. Нераспознанные значения модуль пропускает, но показывает в этой строке, так что по ней удобно проверять написание.
Пример: очки, затем личные встречи, затем общая разница мячей.
| tie1 = очки | tie2 = личные | tie3 = разница
Цветовые зоны
Параметры highlight1 … highlight10 (без пропусков в нумерации) выделяют группы мест:
highlightN = место;количество;класс;текст
| Часть | Описание |
|---|---|
| место | Первое место зоны — в нумерации таблицы, то есть с учётом first_place (см. «Нумерация мест»)
|
| количество | Сколько мест подряд входит в зону (по умолчанию 1) |
| класс | CSS-класс. Строки зоны получают классы highlight и указанный, например class="highlight green". Сами цвета задаются стилями вики (см. «Оформление»).
|
| текст | Подпись зоны (необязательно). Может содержать ссылки и «;». |
Если хотя бы у одной зоны есть текст, в таблице появляется столбец «Повышение или выбывание»: подпись выводится одной объединённой ячейкой на всю зону, места между зонами — пустыми объединёнными ячейками. Зоны не должны пересекаться. Зона, которая начинается выше первого места таблицы, обрезается, а зоны целиком за пределами таблицы не выводятся.
| highlight1 = 1;1;green;Выход в Лигу чемпионов | highlight2 = 2;2;blue;Выход в Лигу конференций | highlight3 = 15;2;red;Выбывание в Первую лигу
Шахматка
Раздел «Результаты». Строки и столбцы — команды в порядке teams, в ячейке — матч команды строки с командой столбца.
| Параметр | Значения | Описание |
|---|---|---|
rounds |
2 (по умолчанию) или 1 |
Число кругов: 1 — однокруговой турнир
|
resultsMode |
round |
Только для двухкругового турнира: строки по кругам, а не «дома — в гостях» |
Двухкруговой турнир (по умолчанию): каждая пара играет по разу на поле каждой из команд, поэтому у команды две строки. В первой — её домашние матчи, во второй — выездные. При resultsMode = round первая строка показывает матчи первого круга, вторая — второго (по номеру круга в matchN).
Однокруговой турнир (rounds = 1): каждая пара играет один раз, поэтому у команды одна строка, а в ячейке — единственный матч пары, на чьём бы поле он ни был. Параметр resultsMode при этом не действует.
Счёт всегда записан как «хозяева:гости», а цвет ячейки показывает результат для команды строки: класс ui green — победа, ui yellow — ничья, ui red — поражение. Например, в однокруговой шахматке матч «Спартак» — ЦСКА 0:2 и в строке «Спартака», и в строке ЦСКА записан как «0:2», но у «Спартака» ячейка красная, а у ЦСКА — зелёная.
Если у пары больше матчей, чем ячеек (например, отменённый матч и переигровка), в ячейке показывается первый сыгранный из них, а если сыгранных нет — первый с пометкой «перенесён», «отменён» или «ошибка: …».
Положение команд по турам
Параметр show_progress = yes добавляет раздел «Положение команд по турам»: для каждого тура — место команды после всех матчей этого и предыдущих туров. Учитываются только матчи с номером тура (полный формат matchN); туры идут по возрастанию, строки — в порядке teams. Места определяются по тем же критериям, что и в итоговой таблице (личные встречи — только по матчам до этого тура включительно). Если ни у одного матча нет номера тура, вместо таблицы выводится пояснение.
Ячейки с определёнными местами можно выделить параметрами progress_highlight1 … progress_highlight10:
progress_highlightN = место;класс — ячейка получает классы highlight и указанный.
| show_progress = yes | progress_highlight1 = 1;green | progress_highlight2 = 16;red
Снятие очков учитывается начиная с тура матча, к которому оно привязано, а ячейка этого тура получает ту же сноску, что и команда в итоговой таблице.
Стартовые показатели (start_КОД) действуют с первого тура таблицы, а матчи h2h_matchN учитываются в критерии личные как сыгранные до первого тура. Места выводятся в нумерации таблицы (с учётом first_place), и в progress_highlightN места указываются в этой же нумерации.
Карточки
Карточки необязательны. Если они не указаны ни в одном матче, ни у одной команды и ни в одних стартовых показателях, столбцов карточек в таблице нет. Если они указаны хотя бы где-нибудь, после столбца «О» появляются три столбца — у всех команд.
Карточки учитываются раздельно, как в подробной футбольной статистике, чтобы вторая жёлтая карточка не засчитывалась дважды:
| Столбец | Вид | Что считается |
|---|---|---|
| | yellow |
Жёлтые карточки — все предупреждения, кроме второй жёлтой, после которой игрок удалён |
| | yellowred |
Удаления за вторую жёлтую карточку — по одному на каждое такое удаление |
| | red |
Прямые красные карточки |
Как записывать разные случаи (один игрок в одном матче):
| Что произошло | yellow | yellowred | red |
|---|---|---|---|
| Одна жёлтая карточка | 1 | 0 | 0 |
| Две жёлтые карточки и удаление | 1 | 1 | 0 |
| Прямая красная карточка | 0 | 0 | 1 |
| Жёлтая, затем прямая красная | 1 | 0 | 1 |
Общее число удалений команды равно сумме столбцов yellowred и red.
Карточки выводятся для справки и на места в таблице не влияют.
Карточки по матчам
matchN_yellow, matchN_yellowred, matchN_red — карточки в матче N в формате хозяева:гости:
| match1 = 1;1;СПА;ЦСК;2:1 | match1_yellow = 2:3 | match1_yellowred = 0:1
Здесь у хозяев две жёлтые карточки, у гостей — три жёлтые и одно удаление за вторую жёлтую. Неуказанный вид карточек считается как 0:0. Карточки суммируются по всем матчам, где они указаны, независимо от счёта, и прибавляются к карточкам из стартовых показателей (start_КОД), если они там заданы.
Итог команды
yellow_КОД, yellowred_КОД, red_КОД — итоговое количество карточек команды (целое неотрицательное число). Если у команды указан хотя бы один из этих параметров, все её карточки берутся только из них (неуказанные считаются нулём), а карточки из матчей и стартовых показателей этой команды не учитываются. У остальных команд карточки по-прежнему считаются по матчам.
| yellow_ЗЕН = 41 | yellowred_ЗЕН = 2 | red_ЗЕН = 1
Так удобно поступать, если поматчевой статистики нет или итог нужно привести в соответствие с официальными данными.
Снятие очков
Снятие очков привязывается к конкретному матчу:
matchN_deduction = код;очки;причина
| Часть | Описание |
|---|---|
| код | Команда, с которой сняты очки. Должна быть одной из двух команд матча N. |
| очки | Сколько очков снято: положительное число, можно дробное (1,5).
|
| причина | Необязательно. Пишется как продолжение фразы: «за неявку на матч», «по решению КДК». Точка в конце не нужна. Можно использовать ссылки и «;». |
Для второго снятия в том же матче (например, с обеих команд) используется matchN_deduction2, и так далее до matchN_deduction5.
| match7 = 4;2;ЦСК;СПА;1:1 | match7_deduction = СПА;3;за участие в матче дисквалифицированного игрока
Результат:
- в итоговой таблице очки команды уменьшены, у названия стоит сноска вида [a], а при наведении на очки видна подсказка «Снято 3 очка»;
- под таблицей появляется блок «Примечания» с текстом С команды «Спартак» снято 3 очка в 4-м туре (матч «ЦСКА» — «Спартак») за участие в матче дисквалифицированного игрока. Номер тура упоминается, если он указан в матче;
- в таблице положения по турам очки снимаются начиная с этого тура, а в ячейке этого тура стоит та же сноска.
Сноски обозначаются буквами a, b, c… сверху вниз по итоговой таблице. Снятие действует независимо от того, сыгран ли матч, и не влияет на критерий личные.
Очки, снятые с команды до начала таблицы (например, в первом этапе турнира), здесь не указываются: они уже входят в её стартовые очки — см. «Стартовые показатели».
Турнир из нескольких этапов
Бывает, что после первого этапа таблица делится на группы — пополам или в другой пропорции, например 6 первых команд играют за 1–6 места, а 8 последних — за 7–14 места, — и команды доигрывают в своих группах. Такой турнир оформляется несколькими таблицами:
- первый этап — обычная таблица всех команд (если этап однокруговой — с
rounds = 1); - каждая группа второго этапа — отдельная таблица только из команд группы и матчей второго этапа. Итоги первого этапа задаются стартовыми показателями
start_КОД, а у групп ниже первой нумерация мест начинается сfirst_place. Если среди критериев естьличные, в таблицу группы добавляются ещё и матчи первого этапа —h2h_matchN.
Стартовые показатели переписываются из итоговой таблицы первого этапа вручную. Зато так можно описать любой регламент перехода: сохраняются все результаты, очки делятся пополам или учитываются только матчи с командами своей группы.
Полный пример — в разделе «Пример турнира из двух этапов».
Стартовые показатели
start_КОД = И;В;Н;П;МЗ;МП;О;ЖК;2ЖК;КК — показатели, с которыми команда начинает таблицу. Части идут в том же порядке, что и столбцы итоговой таблицы (без РМ — она вычисляется сама), а за ними карточки:
| Часть | Что означает | Если пусто |
|---|---|---|
| И | Игры | В + Н + П |
| В, Н, П | Победы, ничьи, поражения | 0 |
| МЗ, МП | Забитые и пропущенные мячи | 0 |
| О | Очки; могут быть дробными (12,5) и отрицательными |
Вычисляются по победам, ничьим и поражениям с учётом points_win, points_draw, points_loss
|
| ЖК, 2ЖК, КК | Жёлтые карточки, удаления за вторую жёлтую карточку, прямые красные — как yellow, yellowred, red в разделе «Карточки» |
0 |
Все части, кроме О, — целые неотрицательные числа. Если И указано, оно должно быть равно В + Н + П. Последние части можно не писать: при 3 очках за победу start_СПА = 13;9;2;2;27;10 означает то же, что start_СПА = 13;9;2;2;27;10;29.
Стартовые показатели:
- прибавляются к результатам матчей таблицы и учитываются во всех критериях, кроме
личные; - в таблице положения по турам действуют с первого тура этой таблицы;
- в шахматке не видны: в ней только матчи этой таблицы;
- если в них указаны карточки, те складываются с карточками из матчей, а итог команды (
yellow_КОДи т. д.) заменяет и те и другие.
Очки, снятые в первом этапе, уже входят в очки О, и сноски о них в таблице группы не выводятся. Снятие очков за матчи второго этапа указывается как обычно — matchN_deduction.
Если во второй этап переходят не все результаты первого, в start_КОД указывается только то, что переходит. Например, если команды сохраняют половину очков, а игры и мячи считаются заново: start_СПА = ;;;;;;14,5.
Параметры start_КОД для кодов, которых нет в teams, не читаются, поэтому в таблицы всех групп можно вставить один и тот же блок со всеми командами.
Нумерация мест
first_place — номер первого места таблицы, по умолчанию 1. Для группы за 7–14 места указывается first_place = 7: места в турнирной таблице и в таблице положения по турам нумеруются с 7-го. В этой же нумерации указываются места в highlightN и progress_highlightN, например highlight1 = 13;2;red;Выбывание.
Зона, которая начинается выше первого места таблицы, обрезается, а зоны целиком за пределами таблицы не выводятся, поэтому одинаковый набор зон тоже можно вставить в таблицы всех групп.
Личные встречи с учётом первого этапа
В таблице группы критерий личные видит только её матчи, а по регламенту обычно учитываются все матчи сезона между командами. Матчи первого этапа добавляются параметрами h2h_match1, h2h_match2… (без пропусков в нумерации) в тех же форматах, что и matchN. Такие матчи:
- учитываются только в критерии
личные, а в таблице положения по турам — как сыгранные до первого тура; - не влияют на показатели команд, шахматку и таблицу по турам: итоги первого этапа уже есть в
start_КОД; - пропускаются, если в матче играет команда, которой нет в
teams, или если матч не сыгран.
Проще всего скопировать в таблицу группы строки matchN из таблицы первого этапа и заменить в них match на h2h_match. Матчи с командами других групп модуль пропустит сам, а получившиеся из карточек и снятий очков строки вроде h2h_match5_yellow не читает — их можно удалить.
Оформление
| Параметр | Описание |
|---|---|
heading_level |
Уровень заголовков «Результаты» и «Положение команд по турам»: от 2 до 6, по умолчанию 3 (=== Результаты ===). При значении 2 — == Результаты ==.
|
id |
Префикс якорей для сносок. По умолчанию вычисляется по списку команд, поэтому обычно его указывать не нужно. Задайте разные id, если на одной странице две таблицы с одинаковым списком команд и со снятием очков. Лучше использовать латиницу, цифры и дефис.
|
CSS-классы, которые выводит модуль:
| Класс | Где используется |
|---|---|
football-tables |
Общий блок вокруг всех таблиц |
football-standings, football-results, football-progress |
Итоговая таблица, шахматка, таблица по турам |
football-info |
Строка критериев и блок примечаний |
football-notes |
Блок примечаний |
football-note-ref |
Сноска о снятии очков |
football-deduction |
Ячейка таблицы по турам, в которой сняты очки |
football-cards |
Ячейки столбцов карточек |
football-card, football-card-yellow, football-card-yellowred, football-card-red |
Значки карточек в заголовке |
highlight и класс зоны |
Строки цветовых зон и выделенные ячейки таблицы по турам |
ui green, ui yellow, ui red |
Результаты в шахматке |
football-corner, football-team-header, football-diagonal |
Угловая ячейка, названия команд и диагональ шахматки |
Цвета зон и результатов модуль не задаёт — они берутся из стилей вики. Если таких стилей ещё нет, их можно добавить в MediaWiki:Common.css, например:
.football-tables .highlight.green { background-color: #bbf3bb; }
.football-tables .highlight.blue { background-color: #bbebff; }
.football-tables .highlight.red { background-color: #ffbbbb; }
.football-results td.ui.green { background-color: #bbf3bb; }
.football-results td.ui.yellow { background-color: #ffffbb; }
.football-results td.ui.red { background-color: #ffbbbb; }
.football-progress td.football-deduction { font-weight: bold; }
Сообщения об ошибках
При ошибке во входных данных модуль вместо таблиц выводит сообщение, начинающееся со слова «Ошибка»:
| Сообщение | Что исправить |
|---|---|
| не указан параметр teams | Добавьте список команд. |
| команда с кодом … указана более одного раза | Уберите повтор из teams.
|
| матч N имеет неправильный формат | В matchN меньше трёх частей через «;».
|
| параметр h2h_matchN имеет неправильный формат | В h2h_matchN меньше трёх частей через «;».
|
| в матче N неизвестная команда … | Код не входит в teams. Проверьте написание, в том числе не попали ли латинские буквы вместо кириллических.
|
| параметр matchN_yellow имеет неправильный формат … | Карточки в матче записываются как число:число (то же для matchN_yellowred и matchN_red).
|
| в параметре matchN_deduction должна быть указана команда матча … | Код команды должен совпадать с хозяевами или гостями матча N. |
| в параметре matchN_deduction не указано, сколько очков снято | Вторая часть должна быть ненулевым числом. |
| параметр yellow_КОД должен быть целым неотрицательным числом … | Исправьте итог карточек команды (то же для yellowred_КОД и red_КОД).
|
| параметр rounds может быть равен 1 … или 2 … | Укажите 1 для однокругового турнира или уберите параметр.
|
| параметр first_place должен быть целым положительным числом … | Укажите номер первого места таблицы, например 7.
|
| в параметре start_КОД больше 10 значений … | Частей не больше десяти: И;В;Н;П;МЗ;МП;О;ЖК;2ЖК;КК.
|
| в параметре start_КОД значение … должно быть целым неотрицательным числом … | Исправьте названную часть. Дробными и отрицательными могут быть только очки. |
| в параметре start_КОД очки (О) должны быть числом … | Седьмая часть — число, например 29 или 14,5.
|
| в параметре start_КОД число игр … не равно сумме побед, ничьих и поражений … | Проверьте И, В, Н и П или оставьте И пустым — тогда оно вычислится. |
Нераспознанный счёт работу модуля не останавливает: такой матч не учитывается, а в шахматке на его месте видно «ошибка: …».
Пример
Четыре команды, шесть туров, карточки, снятие очков, цветовые зоны и таблица положения по турам. Без снятия очков первое место занял бы «Спартак».
{{#invoke:Турнирная таблица|main
| teams = СПА;ЦСК;ЗЕН;ЛОК
| name_СПА = Спартак
| name_ЦСК = ЦСКА
| name_ЗЕН = Зенит
| name_ЛОК = Локомотив
| match1 = 1;1;СПА;ЦСК;2:1
| match2 = 1;1;ЗЕН;ЛОК;1:1
| match3 = 2;1;ЦСК;ЗЕН;0:2
| match4 = 2;1;ЛОК;СПА;1:3
| match5 = 3;1;СПА;ЗЕН;1:1
| match6 = 3;1;ЦСК;ЛОК;2:0
| match7 = 4;2;ЦСК;СПА;1:1
| match8 = 4;2;ЛОК;ЗЕН;0:1
| match9 = 5;2;ЗЕН;ЦСК;3:1
| match10 = 5;2;СПА;ЛОК;2:2
| match11 = 6;2;ЗЕН;СПА;0:2
| match12 = 6;2;ЛОК;ЦСК;перенесён
| match1_yellow = 2:3
| match1_yellowred = 0:1
| match4_yellow = 3:1
| match7_yellow = 1:2
| match7_red = 1:0
| match9_yellow = 2:2
| match11_yellow = 1:3
| match11_yellowred = 1:0
| match7_deduction = СПА;3;за участие в матче дисквалифицированного игрока
| highlight1 = 1;1;green;Выход в финальный турнир
| highlight2 = 4;1;red;Выбывание
| show_progress = yes
| progress_highlight1 = 1;green
| progress_highlight2 = 4;red
}}
Результат:
| Место | Команда | И | В | Н | П | МЗ | МП | РМ | О | | | | Повышение или выбывание |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Зенит | 6 | 3 | 2 | 1 | 8 | 5 | +3 | 11 | 3 | 1 | 0 | Выход в финальный турнир |
| 2 | Спартак[a] | 6 | 3 | 3 | 0 | 11 | 6 | +5 | 9 | 8 | 0 | 0 | |
| 3 | ЦСКА | 5 | 1 | 1 | 3 | 5 | 8 | -3 | 4 | 6 | 1 | 1 | |
| 4 | Локомотив | 5 | 0 | 2 | 3 | 4 | 9 | -5 | 2 | 3 | 0 | 0 | Выбывание |
- ↑ С команды «Спартак» снято 3 очка в 4-м туре (матч «ЦСКА» — «Спартак») за участие в матче дисквалифицированного игрока.
Результаты
| Спартак | ЦСКА | Зенит | Локомотив | |
|---|---|---|---|---|
| Спартак | — | 2:1 | 1:1 | 2:2 |
| 1:1 | 0:2 | 1:3 | ||
| ЦСКА | 1:1 | — | 0:2 | 2:0 |
| 2:1 | 3:1 | перенесён | ||
| Зенит | 0:2 | 3:1 | — | 1:1 |
| 1:1 | 0:2 | 0:1 | ||
| Локомотив | 1:3 | перенесён | 0:1 | — |
| 2:2 | 2:0 | 1:1 |
Положение команд по турам
| Команда | Тур | |||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| Спартак | 1 | 1 | 1 | 2[a] | 2 | 2 |
| ЦСКА | 4 | 4 | 3 | 3 | 3 | 3 |
| Зенит | 2 | 2 | 2 | 1 | 1 | 1 |
| Локомотив | 3 | 3 | 4 | 4 | 4 | 4 |
Пример турнира из двух этапов
Шесть команд играют первый этап в один круг, затем три лучшие разыгрывают 1–3 места, а остальные — 4–6 места: в своих группах команды играют в два круга. Все результаты первого этапа сохраняются, а при равенстве очков места определяются по личным встречам за весь сезон.
Стартовые показатели в таблицах групп — это строки итоговой таблицы первого этапа, а в h2h_matchN — матчи первого этапа между командами группы. В группе за 4–6 места «Динамо» и ЦСКА набрали поровну очков и во втором этапе обменялись гостевыми победами 2:1, поэтому «Динамо» выше благодаря победе 2:0 в первом этапе. Без строк h2h_match выше оказался бы ЦСКА — у него лучше разница мячей.
=== Первый этап ===
{{#invoke:Турнирная таблица|main
| teams = СПА;ЦСК;ЗЕН;ЛОК;ДИН;КРА
| name_СПА = Спартак
| name_ЦСК = ЦСКА
| name_ЗЕН = Зенит
| name_ЛОК = Локомотив
| name_ДИН = Динамо
| name_КРА = Краснодар
| rounds = 1
| heading_level = 4
| tie1 = очки
| tie2 = личные
| tie3 = разница
| tie4 = забитые
| match1 = 1;1;СПА;КРА;1:1
| match2 = 1;1;ДИН;ЦСК;2:0
| match3 = 1;1;ЗЕН;ЛОК;1:2
| match4 = 2;1;ДИН;СПА;0:0
| match5 = 2;1;КРА;ЛОК;1:0
| match6 = 2;1;ЗЕН;ЦСК;1:1
| match7 = 3;1;СПА;ЛОК;0:1
| match8 = 3;1;ЗЕН;ДИН;3:1
| match9 = 3;1;КРА;ЦСК;2:1
| match10 = 4;1;ЗЕН;СПА;1:3
| match11 = 4;1;ЛОК;ЦСК;2:0
| match12 = 4;1;КРА;ДИН;3:0
| match13 = 5;1;СПА;ЦСК;0:2
| match14 = 5;1;КРА;ЗЕН;1:2
| match15 = 5;1;ЛОК;ДИН;2:1
| highlight1 = 1;3;green;Группа за 1–3 места
| highlight2 = 4;3;blue;Группа за 4–6 места
}}
=== Группа за 1–3 места ===
{{#invoke:Турнирная таблица|main
| teams = ЛОК;КРА;ЗЕН
| name_ЛОК = Локомотив
| name_КРА = Краснодар
| name_ЗЕН = Зенит
| heading_level = 4
| tie1 = очки
| tie2 = личные
| tie3 = разница
| tie4 = забитые
| start_ЛОК = 5;4;0;1;7;3;12
| start_КРА = 5;3;1;1;8;4;10
| start_ЗЕН = 5;2;1;2;8;8;7
| h2h_match1 = 1;1;ЗЕН;ЛОК;1:2
| h2h_match2 = 2;1;КРА;ЛОК;1:0
| h2h_match3 = 5;1;КРА;ЗЕН;1:2
| match1 = 6;1;ЗЕН;КРА;2:2
| match2 = 7;1;ЗЕН;ЛОК;0:2
| match3 = 8;1;ЛОК;КРА;1:0
| match4 = 9;2;КРА;ЗЕН;0:1
| match5 = 10;2;ЛОК;ЗЕН;2:0
| match6 = 11;2;КРА;ЛОК;0:1
| highlight1 = 1;1;green;Чемпион
| show_progress = yes
| progress_highlight1 = 1;green
}}
=== Группа за 4–6 места ===
{{#invoke:Турнирная таблица|main
| teams = СПА;ДИН;ЦСК
| name_СПА = Спартак
| name_ДИН = Динамо
| name_ЦСК = ЦСКА
| first_place = 4
| heading_level = 4
| tie1 = очки
| tie2 = личные
| tie3 = разница
| tie4 = забитые
| start_СПА = 5;1;2;2;4;5;5
| start_ДИН = 5;1;1;3;4;8;4
| start_ЦСК = 5;1;1;3;4;7;4
| h2h_match1 = 1;1;ДИН;ЦСК;2:0
| h2h_match2 = 2;1;ДИН;СПА;0:0
| h2h_match3 = 5;1;СПА;ЦСК;0:2
| match1 = 6;1;ЦСК;ДИН;1:2
| match2 = 7;1;ЦСК;СПА;0:1
| match3 = 8;1;СПА;ДИН;1:2
| match4 = 9;2;ДИН;ЦСК;1:2
| match5 = 10;2;СПА;ЦСК;0:2
| match6 = 11;2;ДИН;СПА;0:1
| highlight1 = 6;1;red;Выбывание
| show_progress = yes
| progress_highlight1 = 6;red
}}
Результат:
Первый этап
| Место | Команда | И | В | Н | П | МЗ | МП | РМ | О | Повышение или выбывание |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Локомотив | 5 | 4 | 0 | 1 | 7 | 3 | +4 | 12 | Группа за 1–3 места |
| 2 | Краснодар | 5 | 3 | 1 | 1 | 8 | 4 | +4 | 10 | |
| 3 | Зенит | 5 | 2 | 1 | 2 | 8 | 8 | 0 | 7 | |
| 4 | Спартак | 5 | 1 | 2 | 2 | 4 | 5 | -1 | 5 | Группа за 4–6 места |
| 5 | Динамо | 5 | 1 | 1 | 3 | 4 | 8 | -4 | 4 | |
| 6 | ЦСКА | 5 | 1 | 1 | 3 | 4 | 7 | -3 | 4 |
Результаты
| Спартак | ЦСКА | Зенит | Локомотив | Динамо | Краснодар | |
|---|---|---|---|---|---|---|
| Спартак | — | 0:2 | 1:3 | 0:1 | 0:0 | 1:1 |
| ЦСКА | 0:2 | — | 1:1 | 2:0 | 2:0 | 2:1 |
| Зенит | 1:3 | 1:1 | — | 1:2 | 3:1 | 1:2 |
| Локомотив | 0:1 | 2:0 | 1:2 | — | 2:1 | 1:0 |
| Динамо | 0:0 | 2:0 | 3:1 | 2:1 | — | 3:0 |
| Краснодар | 1:1 | 2:1 | 1:2 | 1:0 | 3:0 | — |
Группа за 1–3 места
| Место | Команда | И | В | Н | П | МЗ | МП | РМ | О | Повышение или выбывание |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Локомотив | 9 | 8 | 0 | 1 | 13 | 3 | +10 | 24 | Чемпион |
| 2 | Зенит | 9 | 3 | 2 | 4 | 11 | 14 | -3 | 11 | |
| 3 | Краснодар | 9 | 3 | 2 | 4 | 10 | 9 | +1 | 11 |
Результаты
| Локомотив | Краснодар | Зенит | |
|---|---|---|---|
| Локомотив | — | 1:0 | 2:0 |
| 0:1 | 0:2 | ||
| Краснодар | 0:1 | — | 0:1 |
| 1:0 | 2:2 | ||
| Зенит | 0:2 | 2:2 | — |
| 2:0 | 0:1 |
Положение команд по турам
| Команда | Тур | |||||
|---|---|---|---|---|---|---|
| 6 | 7 | 8 | 9 | 10 | 11 | |
| Локомотив | 1 | 1 | 1 | 1 | 1 | 1 |
| Краснодар | 2 | 2 | 2 | 3 | 3 | 3 |
| Зенит | 3 | 3 | 3 | 2 | 2 | 2 |
Группа за 4–6 места
| Место | Команда | И | В | Н | П | МЗ | МП | РМ | О | Повышение или выбывание |
|---|---|---|---|---|---|---|---|---|---|---|
| 4 | Спартак | 9 | 3 | 2 | 4 | 7 | 9 | -2 | 11 | |
| 5 | Динамо | 9 | 3 | 1 | 5 | 9 | 13 | -4 | 10 | |
| 6 | ЦСКА | 9 | 3 | 1 | 5 | 9 | 11 | -2 | 10 | Выбывание |
Результаты
| Спартак | Динамо | ЦСКА | |
|---|---|---|---|
| Спартак | — | 1:2 | 0:2 |
| 0:1 | 0:1 | ||
| Динамо | 0:1 | — | 1:2 |
| 1:2 | 1:2 | ||
| ЦСКА | 0:1 | 1:2 | — |
| 0:2 | 1:2 |
Положение команд по турам
| Команда | Тур | |||||
|---|---|---|---|---|---|---|
| 6 | 7 | 8 | 9 | 10 | 11 | |
| Спартак | 5 | 4 | 5 | 5 | 6 | 4 |
| Динамо | 4 | 5 | 4 | 4 | 4 | 5 |
| ЦСКА | 6 | 6 | 6 | 6 | 5 | 6 |