← Все ТЗ

🧩 Block-toggle архитектура страниц

Менеджер включает блоки галочками в админке. Если контента нет — блок скрыт
📅 24.04.2026 🏗 WP + Bricks + ACF Pro 📐 Стандарт для всех 6 сайтов портфеля

Содержание

  1. Идея и мотив
  2. Ключевой принцип
  3. UI админки
  4. Список блоков по типам страниц
  5. Матрица блоков × страны
  6. Техническая реализация
  7. Преимущества
  8. Roadmap внедрения

1 Идея и мотив

Правило пользователя (24.04.2026):
«Блочно — менеджер ставит галочку показывать вывод на страницу, Погода она появляется и тп, другие доп блоки. Сам блок зашит в админке, видео появилось — поставил галочку — оно на странице.»

Каждая посадочная (country, hotel, brand, niche) состоит из двух частей:

Менеджер в админке видит чекбоксы и настраивает каждую страницу индивидуально без программиста.

2 Ключевой принцип

Нет контента → блок не рендерится.
Не «Coming soon», не «В разработке», не пустая заглушка. Просто отсутствие блока в HTML.

Почему это важно:

3 UI админки (мок)

┌─ Страна: ТУРЦИЯ ─────────────────────────────────┐ │ │ │ Обязательные (всегда): │ │ 🔒 Hero + H1 │ │ 🔒 BLUF — 4 факта │ │ 🔒 Форма поиска │ │ 🔒 Sticky TOC │ │ │ │ Опциональные базовые: │ │ ☑ Популярные курорты (12 карточек) │ │ ☑ Туры из вашего города (15 городов) │ │ ☑ Почему эта страна (6 преимуществ) │ │ ☑ Погода по месяцам (таблица 10 мес) │ │ ☑ Цены по месяцам (таблица 9 мес) │ │ ☑ Достопримечательности (10 карточек) │ │ ☑ Лучшие отели (8 категорий) │ │ ☑ Виза · перелёт · валюта (4 карточки) │ │ ☑ Горящие туры (виджет Tourvisor) │ │ ☑ FAQ (12 вопросов) │ │ ☑ Блог (4 статьи) │ │ ☑ Другие страны (8 стран) │ │ │ │ Опциональные дополнительные: │ │ ☐ Видео-обзор [URL: ________] │ │ ☐ Аудио-версия [mp3: upload] │ │ ☐ Интерактивная карта │ │ ☐ Свадебные туры │ │ ☐ Горнолыжные курорты │ │ ☐ SPA / термальные источники │ │ ☐ Гастрономические туры │ │ ☐ Яхтенные туры │ │ ☐ Дайвинг │ │ ☐ Шопинг-туры │ │ ☐ Паломнические туры │ │ ☐ Отзывы клиентов (модерация) │ │ ☐ Инфографика (SVG upload) │ │ ☐ Промо-баннер кампании (CPT → campaign) │ │ ☐ Сравнение со странами (выбор стран) │ │ │ │ [Сохранить] [Предпросмотр] │ └──────────────────────────────────────────────────┘

4 Список блоков по типам страниц

4.1 Country landing (/turkey/, /maldives/, /uae/)

БлокОбязательныйDefaultНужен контент?
Hero + H1Да——
BLUF — 4 фактаДа——
Форма поискаДа——
Sticky TOCДа——
Популярные курортыНет✓—
Туры из вашего городаНет✓—
Почему эта странаНет✓—
Погода по месяцамНет✓—
Цены по месяцамНет✓—
ДостопримечательностиНет✓—
Отели по категориямНет✓—
Виза · перелётНет✓—
FAQНет✓—
Блог — гидыНет✓—
Другие страныНет✓—
Видео-обзорНет✗YouTube URL
Аудио-версияНет✗mp3 файл
Карта интерактивнаяНет✗—
Свадебные турыНет✗—
Горнолыжные курортыНет✗—
SPA · термальныеНет✗—
ГастрономияНет✗—
ДайвингНет✗—
Яхтенные турыНет✗—
Шопинг-турыНет✗—
Паломнические турыНет✗—
Отзывы клиентовНет✗список отзывов
ИнфографикаНет✗SVG файл
Промо-баннерНет✗CPT campaign

4.2 Hotel page (/turkey/antalya/belek/rixos-premium-belek-55750/)

БлокОбязательныйDefault
Hero + имя отеля + звёзды + рейтингДа—
BLUF «Главное» (8 фактов)Да—
Виджет бронирования (партнёр-поставщик)Да—
Галерея фотоДа—
Описание отеляНет✓
ПляжНет✓
НомераНет✓
ПитаниеНет✓
Для семейНет✓
SPA / фитнес / анимацияНет✓
Что рядомНет✓
Погода месяцевНет✓
FAQНет✓
Cross-brand (другие отели сети)Нет✓
Похожие отелиНет✓
Видео-обзор отеляНет✗
Отзывы гостей (агрегация)Нет✗
Live-трансляция / веб-камераНет✗
Экскурсии от отеляНет✗

5 Матрица блоков × страны

Каждая страна = уникальный набор галочек. Шаблон один — конфигурации разные.
БлокТурцияМальдивыОАЭИндияТаиланд
Курорты✓ 12— (атоллы)✓ 5✓ 8✓ 6
Из города✓ 15✓ 8✓ 10✓ 5✓ 8
Погода✓✓✓✓✓
Цены✓✓✓✓✓
Достопримечательности✓ 10—✓ 8✓ 12✓ 10
Горнолыжка✓ 4——✓ Гульмарг—
Свадебные✓✓ №1✓—✓
Медовый месяц✓✓✓—✓
Аюрведа———✓ 12—
SPA / термальные✓✓—✓✓
Гастрономия✓—✓✓✓
Дайвинг✓✓ топ✓—✓ топ
Яхтинг✓✓——✓
Шопинг-туры✓ Стамбул—✓ Дубай—✓ Бангкок
Паломничество———✓—
Видео— пока✓———
Аудио—✓—✓—

6 Техническая реализация

6.1 Регистрация блоков — functions.php

function get_country_blocks() {
    return [
        // Обязательные
        'hero'      => ['title' => 'Hero + H1',      'required' => true],
        'bluf'      => ['title' => 'BLUF 4 факта',    'required' => true],
        'search'    => ['title' => 'Форма поиска',    'required' => true],
        'toc'       => ['title' => 'Sticky TOC',      'required' => true],

        // Опциональные базовые (default: on)
        'resorts'         => ['title' => 'Курорты',             'default' => true],
        'from_city'       => ['title' => 'Из вашего города',    'default' => true],
        'why'             => ['title' => 'Почему эта страна',   'default' => true],
        'weather'         => ['title' => 'Погода по месяцам',   'default' => true],
        'prices'          => ['title' => 'Цены по месяцам',     'default' => true],
        'attractions'     => ['title' => 'Достопримечательности','default' => true],
        'hotel_categories'=> ['title' => 'Отели по категориям', 'default' => true],
        'practical'       => ['title' => 'Виза · перелёт',      'default' => true],
        'faq'             => ['title' => 'FAQ',                  'default' => true],
        'blog'            => ['title' => 'Блог',                 'default' => true],
        'cross_countries' => ['title' => 'Другие страны',        'default' => true],

        // Опциональные дополнительные (default: off, нужен контент)
        'video'      => ['title' => 'Видео-обзор', 'default' => false, 'needs' => 'video_url'],
        'audio'      => ['title' => 'Аудио-версия', 'default' => false, 'needs' => 'audio_mp3'],
        'wedding'    => ['title' => 'Свадебные туры', 'default' => false],
        'skiing'     => ['title' => 'Горнолыжные курорты', 'default' => false],
        'spa'        => ['title' => 'SPA-туризм', 'default' => false],
        'gastro'     => ['title' => 'Гастрономические туры', 'default' => false],
        'diving'     => ['title' => 'Дайвинг', 'default' => false],
        'yacht'      => ['title' => 'Яхтенные туры', 'default' => false],
        'shopping'   => ['title' => 'Шопинг-туры', 'default' => false],
        'religious'  => ['title' => 'Паломнические туры', 'default' => false],
        'reviews'    => ['title' => 'Отзывы клиентов', 'default' => false, 'needs' => 'reviews_list'],
        'infographic'=> ['title' => 'Инфографика', 'default' => false, 'needs' => 'svg_upload'],
        'promo'      => ['title' => 'Промо-баннер', 'default' => false, 'needs' => 'campaign_cpt'],
    ];
}

6.2 Рендер в шаблоне

<?php
$blocks = get_country_blocks();
foreach ($blocks as $slug => $block) {
    // required — всегда рендерим
    if (!empty($block['required'])) {
        include "blocks/{$slug}.php";
        continue;
    }
    // toggle off — пропускаем
    if (!get_field("show_{$slug}")) continue;
    // нужен контент, но его нет — пропускаем
    if (!empty($block['needs']) && !get_field($block['needs'])) continue;
    // рендерим
    include "blocks/{$slug}.php";
}
?>

6.3 ACF Field Group

Создаём ACF Group country_page_blocks со всеми полями-галочками:

7 Преимущества

ПлюсПочему работает
Нет пустых заглушекНет видео → блок скрыт, а не «Coming soon»
Страница адаптивна под странуМальдивы без «городских рейсов», Турция без «аюрведа»
Менеджер-firstНе нужен программист для нового блока
Переиспользование1 блок в коде → 73 страны могут его включить
Быстрый запуск новой страныКлонировали, оставили нужные галочки — 5 минут
A/B тестированиеВключил блок → замерил конверсию → решил
SEO-чистотаНет thin-content → нет штрафов
AI OverviewЧистый HTML = лучшее понимание LLM

8 Roadmap внедрения

Фаза 1 — Foundation (1-2 недели)

  1. Создать CPT country, hotel, brand, niche
  2. Создать ACF Field Groups country_blocks, hotel_blocks и т.д.
  3. Зарегистрировать 15 обязательных блоков + partials в теме
  4. Создать шаблон single-country.php с циклом рендера

Фаза 2 — Первые 3 страны (1 неделя)

  1. Турция (шаблон-эталон)
  2. Мальдивы (проверка на сильно отличающейся конфигурации)
  3. Египет (проверка масштабируемости)

Фаза 3 — Опциональные блоки (2-3 недели)

  1. Видео, аудио, инфографика (контент-зависимые)
  2. Свадебные, горнолыжка, SPA, гастро, дайвинг, яхтинг, шопинг, паломничество
  3. Отзывы (интеграция с модерацией)
  4. Промо-баннеры (связь с CPT campaign)

Фаза 4 — Масштабирование (1 месяц)

  1. Прогон 73 стран через скрипт импорта (включаем нужные блоки)
  2. 21 000 hotel pages через hotel_blocks
  3. 48 brand pages через brand_blocks
  4. 15 ниш × 38 стран = 570 niche-страниц через niche_blocks
Важно: связанные стандарты (live-reference):

Обновлено 24.04.2026 · BestOnline-tour.ru · Parent page: 📐 Мастер-стандарты