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('[тип]')">×</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` или другой якорь (прокрутка к секции) — **не трогай её**, только кнопки самой оплаты/регистрации
No Comments