Помощь по 10-0.ru

Как устроен сервис турниров

10-0.ru помогает оформить футбольный турнир: создать страницу, добавить команды, календарь матчей, результаты, таблицы, шахматку, сетку плей-офф и статистику матчей.

Как устроен сайт

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

/
Главная
Список турниров, дата, название, место, автор и переход к просмотру.
🏆
Турнир
Команды, календарь, таблицы, шахматка, плей-офф, результаты и редактор.
🔗
Публичная ссылка
После сохранения турнир доступен по красивой ссылке, которую можно отправить участникам.

Что умеет сервис

Основные возможности для организаторов футбольных турниров.

⚽
Команды и составы
Логотипы, тренеры, игроки и popup команды по клику.
📅
Календарь
Матчи, даты, этапы, туры, быстрый ввод счёта и заметки.
📊
Таблицы
Автоматический расчёт очков, мячей, побед, ничьих и поражений.
▦
Шахматка
Матрица игр по группам или общей лиге.
🏁
Плей-офф
Сетки, матчи за места, переход победителей и проигравших.
1A
Посев из групп
1A, 2B, 1А, 2В автоматически берутся из таблиц групп.
JSON
Импорт/экспорт
Полный перенос турнира через JSON-файл.
📝
События матчей
Голы, пенальти, жёлтые и красные карточки.
🎨
Оформление
Фон, обложка, логотип, описание и SEO-данные.

Как создать турнир

Короткий сценарий работы.

Открой создание
Нажми «Создать турнир» или перейди на /tournament.php.
Включи редактирование
Для сохранения потребуется вход по email-коду.
Заполни турнир
Название, город, даты, описание, логотип, обложка и фон.
Добавь команды и матчи
Создай команды, игроков, тренеров и календарь матчей.
Вноси результаты
Таблицы, шахматка и сетка пересчитываются автоматически.
Сохрани и поделись
После сохранения появится публичная ссылка турнира.

Пример JSON для импорта

Формат полного импорта турнира: турнир, команды, игроки, матчи и события.

Для полного импорта используй type: tournament_full_data. Плейсхолдеры 1A и 2B подставят команды из таблиц групп.
tournament-example.json
{
    "version": 4,
    "type": "tournament_full_data",
    "tournament": {
        "title": "Кубок города 2026",
        "seo_title": "Кубок города 2026 — календарь и результаты",
        "description": "Детский футбольный турнир среди команд 2016 года рождения.",
        "seo_description": "Календарь, таблицы, результаты и плей-офф турнира.",
        "place_name": "Киров",
        "date_from": "2026-09-27",
        "date_to": "2026-09-28",
        "logo_path": "",
        "header_image_path": "",
        "bg_color": "#ecf0ff"
    },
    "teams": [
        {
            "id": 0,
            "client_id": "team_dinamo_2016",
            "name": "СШ Динамо 2016",
            "logo_path": "",
            "coach": {
                "name": "Иван Иванов",
                "role": "Главный тренер"
            },
            "players": [
                {
                    "id": 0,
                    "client_id": "player_dinamo_10",
                    "player_number": "10",
                    "player_name": "Петров Артём",
                    "position": "Нападающий"
                }
            ]
        },
        {
            "id": 0,
            "client_id": "team_fakel_2016",
            "name": "Факел 2016",
            "logo_path": "",
            "coach": {
                "name": "Сергей Сергеев",
                "role": "Главный тренер"
            },
            "players": []
        }
    ],
    "matches": [
        {
            "id": 0,
            "client_id": "match_001",
            "team1": "СШ Динамо 2016",
            "team2": "Факел 2016",
            "team1_client_id": "team_dinamo_2016",
            "team2_client_id": "team_fakel_2016",
            "team1_placeholder": "",
            "team2_placeholder": "",
            "score1": 2,
            "score2": 1,
            "stage_type": "group",
            "stage_name": "Группа A",
            "round_name": "Тур 1",
            "round_order": 1,
            "match_date": "2026-09-27T10:00",
            "notes": "Поле №1",
            "events": [
                {
                    "team_side": 1,
                    "event_type": "goal",
                    "minute": 12,
                    "player_number": "10",
                    "player_name": "Петров Артём"
                }
            ]
        },
        {
            "id": 0,
            "client_id": "match_qf_001",
            "team1": "1A",
            "team2": "2B",
            "team1_client_id": "",
            "team2_client_id": "",
            "team1_placeholder": "1A",
            "team2_placeholder": "2B",
            "score1": "",
            "score2": "",
            "stage_type": "playoff",
            "stage_name": "Плей-офф",
            "round_name": "1/4 финала",
            "round_order": 2,
            "match_code": "QF1",
            "match_date": "2026-09-28T11:00",
            "notes": "Команды подставятся автоматически по таблицам групп",
            "events": []
        }
    ]
}

Основные поля JSON

Шпаргалка по структуре данных.

ПолеГдеОписание
tournamentМетаданныеНазвание, описание, город, даты, фон, логотип и SEO.
teamsКомандыСписок команд. Желательно указывать уникальный client_id.
playersСоставНомер, имя и позиция игрока.
matchesКалендарьКоманды, счёт, дата, этап, тур, заметки и события.
stage_typeМатчgroup, playoff, placement или friendly.
stage_nameГруппыНапример: Группа A. По этому строятся таблицы.
team1_placeholderПлей-оффМожно указать 1A, 2B, Победитель QF1.
eventsСтатистикаГолы, пенальти, жёлтые и красные карточки.

Статистика матча

События хранятся в events.

Типы событий

goal — гол

penalty_goal — гол с пенальти

own_goal — автогол

yellow — жёлтая карточка

red — красная карточка

penalty_shootout_scored — пенальти забит

penalty_shootout_missed — пенальти не забит

team_side

team_side: 1 — первая команда матча.

team_side: 2 — вторая команда матча.

Дополнительно можно указать номер и имя игрока: player_number, player_name.

Частые вопросы

Короткие ответы.

Можно ли создать турнир без регистрации?
Оформлять можно сразу, но для сохранения потребуется вход по email-коду.
Как сделать одну общую таблицу?
Для всех матчей укажи stage_type: group и одинаковый stage_name.
Как сделать несколько групп?
Используй разные stage_name: Группа A, Группа B, Группа C.
Как работает 1A и 2B?
1A — первое место группы A, 2B — второе место группы B. Сетка обновляется после изменения результатов.
Куда писать вопросы?
В группу проекта: vk.ru/rezultato.