Skip to main content

Skill - Вставить всплывающий виджет GetCourse на лендинг

---
description: Вставить всплывающий виджет GetCourse на лендинг. Передай скрипт(ы) виджета и укажи, какая кнопка должна его открывать.
---

## Что такое виджет GetCourse

Виджет GetCourse — это тег `<script>` с двумя ключевыми атрибутами:
- `id` — уникальный хеш, по которому платформа идентифицирует точку вставки
- `src` — URL вида `https://fitnessmama.school/pl/lite/widget/script?id=XXXXXXX`

Скрипт рендерит форму регистрации/оплаты прямо рядом с собой в DOM.

## Твоя задача

Пользователь предоставил один или несколько скриптов виджетов GetCourse и указал, какие кнопки должны их открывать.

Выполни следующие шаги:

### 1. Прочитай файл лендинга

Прочитай целевой HTML-файл, чтобы понять:
- Где находится закрывающий тег `</style>`
- Какие кнопки нужно связать с виджетами (их текст, классы, текущий `href`)
- Есть ли уже существующие модальные окна или скрипты виджетов

### 2. Добавь CSS модальных окон

Вставь перед `</style>` следующие стили (адаптируй border-radius и цвета под дизайн страницы):

```css
/* ===== GETCOURSE WIDGET MODALS ===== */
.gc-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(4px);
  z-index: 9999;
  align-items: center;
  justify-content: center;
}
.gc-modal-overlay.active {
  display: flex;
}
.gc-modal {
  background: #fff;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  margin: 16px;
  overflow: hidden;
  position: relative;
}
.gc-modal-close {
  position: absolute;
  top: 12px;
  right: 16px;
  font-size: 28px;
  cursor: pointer;
  color: #666;
  background: none;
  border: none;
  line-height: 1;
  z-index: 1;
}
.gc-modal-close:hover {
  color: #222;
}
.gc-modal-body {
  padding: 8px;
}
```

### 3. Добавь HTML модальных окон и JavaScript

Вставь перед `</body>`. Для каждого виджета создай отдельный оверлей.
Именуй id как `gc-modal-[тип]`, например `gc-modal-free`, `gc-modal-vip`.
Скрипт виджета помести внутрь `.gc-modal-body`.

Шаблон для одного виджета:

```html
<!-- Modal [тип] -->
<div class="gc-modal-overlay" id="gc-modal-[тип]">
  <div class="gc-modal">
    <button class="gc-modal-close" onclick="gcCloseModal('[тип]')">&times;</button>
    <div class="gc-modal-body">
      <script id="[ID_ВИДЖЕТА]" src="[SRC_ВИДЖЕТА]"></script>
    </div>
  </div>
</div>
```

После всех модалок добавь единый блок JavaScript:

```html
<script>
  function gcOpenModal(type) {
    document.getElementById('gc-modal-' + type).classList.add('active');
    document.body.style.overflow = 'hidden';
  }
  function gcCloseModal(type) {
    document.getElementById('gc-modal-' + type).classList.remove('active');
    document.body.style.overflow = '';
  }
  // Закрытие по клику на фон оверлея
  document.querySelectorAll('.gc-modal-overlay').forEach(function(overlay) {
    overlay.addEventListener('click', function(e) {
      if (e.target === overlay) {
        overlay.classList.remove('active');
        document.body.style.overflow = '';
      }
    });
  });
  // Закрытие по клавише Escape
  document.addEventListener('keydown', function(e) {
    if (e.key === 'Escape') {
      document.querySelectorAll('.gc-modal-overlay.active').forEach(function(m) {
        m.classList.remove('active');
      });
      document.body.style.overflow = '';
    }
  });
</script>
```

### 4. Измени кнопки

Для каждой кнопки, которую нужно связать с виджетом:
- Замени `href="#"` на `href="javascript:void(0)"`
- Добавь `onclick="gcOpenModal('[тип]')"`

Пример:
```html
<!-- До -->
<a href="#" class="btn-primary">Купить</a>

<!-- После -->
<a href="javascript:void(0)" class="btn-primary" onclick="gcOpenModal('vip')">Купить</a>
```

### 5. Проверь результат

Сообщи пользователю:
- Какие кнопки были изменены
- Какие модальные окна созданы (id каждого)
- Как протестировать: открыть файл в браузере, нажать кнопки, проверить закрытие через ×, клик на фон, Escape

## Важные правила

- **Не дублируй** скрипты виджетов — каждый `id` виджета должен встречаться в DOM только один раз
- Если на странице уже есть своя модальная система, **используй её стили** вместо gc-modal-*
- Если пользователь указал несколько виджетов (Free, VIP и т.д.) — создай отдельный оверлей для каждого
- Если кнопка уже ссылается на `#tariffs` или другой якорь (прокрутка к секции) — **не трогай её**, только кнопки самой оплаты/регистрации