В этой статье приведу пример как размещать видео с Rutube или VK в шаблоне элемента инфоблока через множественное пользовательское свойство.
В этом примере будет одно поле под адрес видео, в котором будет проверяться значение на принадлежность к той или иной площадке
1. Создаем свойство инфоблока в котором мы будем хранить адрес видео. Множественное свойство типа "строка", символьный код - любой (в нашем случае "VIDEO")
В нашем созданном свойстве укажу 2 видео: одно с vk и одно с rutube.
2. В файле result_modifier.php
получаем и обрабатываем наше свойство.
if ($arResult['DISPLAY_PROPERTIES']['VIDEO']) {
foreach ($arResult['DISPLAY_PROPERTIES']['VIDEO']['VALUE'] as $key => $value) {
// Проверяем, RuTube или VK
$isRutube = strpos($value, 'rutube') !== false;
$isVk = strpos($value, 'vk') !== false;
// Если это не Vk и не RuTube, пропускаем
if (!$isRutube && !$isVk) continue;
// RuTube
if ($isRutube) {
preg_match("/\/video\/([a-zA-Z0-9_-]+)/", $value, $matches);
if (!empty($matches[1])) {
$videoId = $matches[1]; // ID для RuTube
$platform = 'rutube';
} else {
continue; // Пропускаем, если не удалось получить ID
}
}
// Vk
if ($isVk) {
preg_match("/video-([\d]+)_(\d+)/i", $value, $matches);
if (!empty($matches[1]) && !empty($matches[2])) {
$videoOid= $matches[1];
$videoId= $matches[2];
$platform = 'vk';
}
else{
continue; // Пропускаем, если не удалось получить ID
}
}
//формируем конечный массив
$arResult['VIDEO'][] = array(
'LINK' => $value,
"OID" => $videoOid,
'NAME' => $arResult['DISPLAY_PROPERTIES']['VIDEO']['~DESCRIPTION'][$key],
'ID' => $videoId,
'PLATFORM' => $platform
);
}
}
3. В шаблоне компонента в нужное место выводим iframe с видео
<?php if($arResult['VIDEO']):?>
<div class="vide_container">
<?php foreach($arResult['VIDEO'] as $arFile):?>
<div class="item-det-video-wrap">
<?php if ($arFile['PLATFORM'] == 'rutube'): ?>
<iframe loading="lazy" width="800" height="450" src="https://rutube.ru/play/embed/<?php = $arFile['ID'] ?>" frameborder="0"></iframe>
<?php endif; ?>
<?php if ($arFile['PLATFORM'] == 'vk'): ?>
<iframe loading="lazy" width="800" height="450" src="https://vk.com/video_ext.php?oid=-<?php = $arFile['OID'] ?>&id=<?php = $arFile['ID'] ?>&hd=2"></iframe>
<?php endif; ?>
</div>
</div>
<?php endforeach?>
</div>
<?php endif?>
Вставка видео в произвольное место
Здесь нет никаких изменений. Вам нужно получить iframe код для вставки и разместить в нужном месте.
В Rutube - это например кнопка "Поделиться" далее кнопка "Код вставки плеера"
Вставляем этот код iframe в любое место на сайте.