Модуль:Football/doc

Материал из Наро-Фоминский Футбол
Версия от 12:58, 24 сентября 2026; Andrew (обсуждение | вклад) (Новая страница: «Модуль строит для кругового футбольного турнира турнирную таблицу, шахматку результатов и, по желанию, таблицу положения команд по турам. Очки, разница мячей, места, карточки и снятия очков считаются автоматически по данным о матчах. == Использование ==...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Это страница документации Модуль:Football.

Модуль строит для кругового футбольного турнира турнирную таблицу, шахматку результатов и, по желанию, таблицу положения команд по турам. Очки, разница мячей, места, карточки и снятия очков считаются автоматически по данным о матчах.

Использование

Модуль вызывается напрямую из статьи:

{{#invoke:Football|main| … }}

Модуль читает только параметры самого вызова #invoke. Если нужен шаблон-обёртка, он должен явно передавать в модуль каждый параметр.

Модуль выводит по порядку:

  1. турнирную таблицу — без собственного заголовка (заголовок раздела ставится в статье);
  2. строку «Критерии определения мест» и, если с какой-то команды снимались очки, блок «Примечания»;
  3. раздел «Результаты» с шахматкой;
  4. раздел «Положение команд по турам» — только при 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;СПА;ЗЕН;
}}

Несыгранные матчи можно внести заранее с пустым счётом: в шахматке они видны как «—» и начинают учитываться, как только вписан счёт.

Команды

Параметр Описание
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 задают критерии в порядке применения: если по первому критерию команды равны, сравнивается второй, и так далее. Если не указан ни один, используется порядок очки → разница → забитые → победы → название. Если команды равны по всем критериям, выше та, чей код раньше по алфавиту.

Значение Выше команда, у которой…
очки больше очков (с учётом снятых)
разница лучше разница забитых и пропущенных мячей
забитые больше забитых мячей
победы больше побед
игры больше сыгранных матчей
личные лучше результаты в матчах между всеми командами, набравшими столько же очков: сравниваются очки в этих матчах, затем разница мячей в них, забитые в них и победы в них. Снятые очки здесь не учитываются. Критерий имеет смысл только после очки.
название название раньше по алфавиту (сравнивается текст параметра name_КОД как есть, вместе с разметкой)

Под таблицей выводится строка «Критерии определения мест: …» с выбранным порядком. Нераспознанные значения модуль пропускает, но показывает в этой строке, так что по ней удобно проверять написание.

Пример: очки, затем личные встречи, затем общая разница мячей.

| tie1 = очки
| tie2 = личные
| tie3 = разница

Цветовые зоны

Параметры highlight1 … highlight10 (без пропусков в нумерации) выделяют группы мест:

highlightN = место;количество;класс;текст

Часть Описание
место Первое место зоны
количество Сколько мест подряд входит в зону (по умолчанию 1)
класс CSS-класс. Строки зоны получают классы highlight и указанный, например class="highlight green". Сами цвета задаются стилями вики (см. «Оформление»).
текст Подпись зоны (необязательно). Может содержать ссылки и «;».

Если хотя бы у одной зоны есть текст, в таблице появляется столбец «Повышение или выбывание»: подпись выводится одной объединённой ячейкой на всю зону, места между зонами — пустыми объединёнными ячейками. Зоны не должны пересекаться; места за пределами таблицы игнорируются.

| highlight1 = 1;1;green;Выход в Лигу чемпионов
| highlight2 = 2;2;blue;Выход в Лигу конференций
| highlight3 = 15;2;red;Выбывание в Первую лигу

Шахматка

Раздел «Результаты». Каждой команде (в порядке teams) соответствуют две строки, столбцы — соперники. По умолчанию в первой строке — домашние матчи команды, во второй — выездные.

Счёт всегда записан как «хозяева:гости», а цвет ячейки показывает результат для команды строки: класс ui green — победа, ui yellow — ничья, ui red — поражение.

При resultsMode = round первая строка показывает матчи первого круга, вторая — второго (по номеру круга в matchN).

Шахматка рассчитана на двухкруговой турнир: каждая пара команд играет по одному разу на поле каждой из них.

Положение команд по турам

Параметр show_progress = yes добавляет раздел «Положение команд по турам»: для каждого тура — место команды после всех матчей этого и предыдущих туров. Учитываются только матчи с номером тура (полный формат matchN); туры идут по возрастанию, строки — в порядке teams. Места определяются по тем же критериям, что и в итоговой таблице (личные встречи — только по матчам до этого тура включительно). Если ни у одного матча нет номера тура, вместо таблицы выводится пояснение.

Ячейки с определёнными местами можно выделить параметрами progress_highlight1 … progress_highlight10:

progress_highlightN = место;класс — ячейка получает классы highlight и указанный.

| show_progress       = yes
| progress_highlight1 = 1;green
| progress_highlight2 = 16;red

Снятие очков учитывается начиная с тура матча, к которому оно привязано, а ячейка этого тура получает ту же сноску, что и команда в итоговой таблице.

Карточки

Карточки необязательны. Если они не указаны ни в одном матче и ни у одной команды, столбцов карточек в таблице нет. Если они указаны хотя бы где-нибудь, после столбца «О» появляются три столбца — у всех команд.

Карточки учитываются раздельно, как в подробной футбольной статистике, чтобы вторая жёлтая карточка не засчитывалась дважды:

Столбец Вид Что считается
​ 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. Карточки суммируются по всем матчам, где они указаны, независимо от счёта.

Итог команды

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… сверху вниз по итоговой таблице. Снятие действует независимо от того, сыгран ли матч, и не влияет на критерий личные.

Оформление

Параметр Описание
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 меньше трёх частей через «;».
в матче N неизвестная команда … Код не входит в teams. Проверьте написание, в том числе не попали ли латинские буквы вместо кириллических.
параметр matchN_yellow имеет неправильный формат … Карточки в матче записываются как число:число (то же для matchN_yellowred и matchN_red).
в параметре matchN_deduction должна быть указана команда матча … Код команды должен совпадать с хозяевами или гостями матча N.
в параметре matchN_deduction не указано, сколько очков снято Вторая часть должна быть ненулевым числом.
параметр yellow_КОД должен быть целым неотрицательным числом … Исправьте итог карточек команды (то же для yellowred_КОД и red_КОД).

Нераспознанный счёт работу модуля не останавливает: такой матч не учитывается, а в шахматке на его месте видно «ошибка: …».

Пример

Четыре команды, шесть туров, карточки, снятие очков, цветовые зоны и таблица положения по турам. Без снятия очков первое место занял бы «Спартак».

{{#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Зенит632185+311310Выход в финальный турнир
2Спартак[a]6330116+59800
3ЦСКА511358-34611
4Локомотив502349-52300Выбывание
Критерии определения мест: очки → разница → забитые → победы → название
Примечания:
  1. ↑ С команды «Спартак» снято 3 очка в 4-м туре (матч «ЦСКА» — «Спартак») за участие в матче дисквалифицированного игрока.

Результаты

СпартакЦСКАЗенитЛокомотив
Спартак—2:11:12:2
1:10:21:3
ЦСКА1:1—0:22:0
2:13:1перенесён
Зенит0:23:1—1:1
1:10:20:1
Локомотив1:3перенесён0:1—
2:22:01:1

Положение команд по турам

КомандаТур
123456
Спартак1112[a]22
ЦСКА443333
Зенит222111
Локомотив334444