# 1С-Битрикс + RUTUBE Embed

Минимальная интеграция RUTUBE-видео в 1С-Битрикс через нативный компонент.

## Вариант 1 — простой helper-функция (рекомендуется)

В `bitrix/php_interface/init.php` (или `local/php_interface/init.php`) добавьте:

```php
<?php
/**
 * Партнёрский dist код RUTUBE (выдаёт менеджер)
 */
if (!defined('RUTUBE_DIST')) {
    define('RUTUBE_DIST', 'shkulevmedia_2');
}

/**
 * Генерирует HTML iframe для встраивания RUTUBE-видео с партнёрской разметкой.
 *
 * @param string $videoId 32-hex ID видео из Studio
 * @param array  $opts    width, height, no_ads, autoplay, mute
 * @return string HTML
 */
function renderRutubeEmbed($videoId, array $opts = []) {
    $videoId = preg_replace('/[^a-f0-9]/i', '', $videoId);
    if (strlen($videoId) !== 32) {
        return '';
    }

    $opts = array_merge([
        'width' => 720, 'height' => 405,
        'autoplay' => 'true', 'mute' => 'true', 'no_ads' => false,
    ], $opts);

    $params = [
        'dist' => RUTUBE_DIST,
        'anc'  => $_SERVER['HTTP_HOST'] ?? '',
        'tp'   => 'web',
        'autoplay' => $opts['autoplay'],
        'autostartmute' => $opts['mute'],
    ];
    if ($opts['no_ads']) {
        $params['referer'] = 'embed.noads';
    }

    $src = 'https://rutube.ru/play/embed/' . $videoId . '/?' . http_build_query($params);

    return sprintf(
        '<iframe width="%d" height="%d" src="%s" style="border:none" allow="clipboard-write; autoplay" allowFullScreen></iframe>',
        (int) $opts['width'], (int) $opts['height'], htmlspecialchars($src, ENT_QUOTES)
    );
}
```

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

### В шаблоне инфоблока (например, `bitrix/templates/.default/news/detail.php`)

```php
<?php if (!empty($arResult['PROPERTIES']['RUTUBE_VIDEO_ID']['VALUE'])): ?>
    <?= renderRutubeEmbed($arResult['PROPERTIES']['RUTUBE_VIDEO_ID']['VALUE']) ?>
<?php endif; ?>
```

### В произвольной странице

```php
<?= renderRutubeEmbed('479c58a745de50383649a3a0c7c7f0c5') ?>
```

### С кастомными параметрами

```php
<?= renderRutubeEmbed($videoId, [
    'width' => 1280,
    'height' => 720,
    'no_ads' => true,
]) ?>
```

## Где хранить video_id?

В свойствах инфоблока (Контент → Инфоблоки → ваш инфоблок → Свойства):
- Тип: «Строка»
- Код: `RUTUBE_VIDEO_ID`
- Валидация: regex `^[a-f0-9]{32}$` (32 hex-символа)

Редактор при создании новости вставляет 32-символьный ID из RUTUBE Studio → видео отображается на сайте автоматически.

## Вариант 2 — через JS-сниппет (для случаев когда PHP редактировать неудобно)

В шаблон сайта (`bitrix/templates/.default/header.php` или `footer.php`) добавьте:

```html
<script>window.RUTUBE_DIST = 'shkulevmedia_2';</script>
<script src="https://egor-yudin.ru/kit/rutube-embed-builder.min.js" defer></script>
```

В редакторе статьи (или через визуальный редактор) вставьте HTML:

```html
<div data-rutube-video-id="479c58a745de50383649a3a0c7c7f0c5"></div>
```

Скрипт автоматически найдёт div и заменит на iframe. Всё.
