Контактные данные:

Login Skype: bitrix-developer

ICQ: 603015460

Сертификаты 1С Битрикс : находятся тут

E-mail: Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

               Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Epson S22
joomla 3.0

Вы когда-нибудь сталкивались с такой задачей - нужно вставить в детальное описание елемента битрикса видео ролики, причем не стандартными средствами из админки ( при помощи доп. свойств) а чтоб человек, мог добавить любое количество видео роликов в елемент и разместить их где угодно (например после каждого абзаца в тексте) ?

На днях мне пришлось столкнутся с такой задачей, и вот как я поступил:

Первым этапом было создание инфоблока "Видео-ролики". Идея такова что каждый раздел данного инфоблока будет привязан к определенному елементу инфоблока. А его елементы будут не чем иным как видеоролками. Для этого в доп. свойствах елементов инфоблока "Видео-ролики" я задал новое свойство с типом "Видео" символьный код "video_file".

Далее было созданно дополнительное свойство в инфоблоке, в моём случае ето был инфоблок "Новости". Свойство имело тип "Привязка к разделам", символьный код "section_video" в свойствах которого я указал привязку к уже созданному инфоблоку "Видео-ролики".

На этом работа с админкой законченна, если не брать в счет наполнение инфоблоков роликами и статьями.

В следующем этапе я уже работал с шаблоном вывода детальной новости. У каждого путь к нему свой и он указан в настройках компонента "Новость детально".

В шаблоне я выполнил выборку роликов привязанных к данной новости и записал их в буфер:

<?
        $arrVideo =  array();
//обьявление массива видео роликов
        $arSelect = Array("ID", "NAME", "PROPERTY_video_file"); //выборка елементов связанного раздела с елементом новости
        $arFilter = Array("IBLOCK_ID"=>IntVal(3), "SECTION_ID"=>IntVal($arResult[PROPERTIES][section_video][VALUE]), "ACTIVE"=>"Y");
        $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
        while($ob = $res->GetNextElement())
        {
            $arFields = $ob->GetFields();          
            ob_start();
//обьявление о начале буферизации
          
            $APPLICATION->IncludeComponent("bitrix:player","",Array(
                "PLAYER_TYPE" => "auto",
                "USE_PLAYLIST" => "N",
                "PATH" => $arFields["PROPERTY_VIDEO_FILE_VALUE"]["path"],
                "WIDTH" => $arFields["PROPERTY_VIDEO_FILE_VALUE"]["width"],
                "HEIGHT" => $arFields["PROPERTY_VIDEO_FILE_VALUE"]["height"],
                "FILE_TITLE" => $arFields["NAME"],
                "FILE_AUTHOR" => $arFields["author"],
                "FILE_DATE" => $arFields["date"],
                "FILE_DESCRIPTION" => $arFields["descr"],
                "SKIN_PATH" => "/bitrix/components/bitrix/player/mediaplayer/skins",
                "CONTROLBAR" => "bottom",
                "WMODE_WMV" => "window",
                "VOLUME" => "90",
                "HIGH_QUALITY" => "Y",
                "ADVANCED_MODE_SETTINGS" => "N",
                "ALLOW_SWF" => "Y",
                )
            );
            
            $arrVideo[] = ob_get_contents();
//запись в буфер видеороликов
            ob_end_clean(); //очистка буфера
        }        
    ?>

Далее в месте где у нас выводится детальный текст новости ($arResult["DETAIL_TEXT"];) я убрал его вывод и заменил на свой код который ищет в детальном тексте метки видео и заменяет на вывод видео роликов. И после етого выводит уже готовый текст новости со вставленными в ним видео-роликами.

<?
for($i = 1; $i <= count($arrVideo); $i++)
//цикл перебирает все видео в массиве
    $arResult["DETAIL_TEXT"] = preg_replace('/\{VIDEO'.$i.'\}/', $arrVideo[$i-1], $arResult["DETAIL_TEXT"]); //регулярным вырожением заменяем метки на видео ролики из буфера
?>
<?echo $arResult["DETAIL_TEXT"];
//выводим измененный текст новости с вставленными видео роликами?>

Теперь достаточно в тексте новости указать метку {VIDEO1} и в етом месте появится одноименный ролик из инфоблока "Видео-ролики". Цифра в метке может быть любой все зависит от того сколько у вас видео роликов в разделе и какой по номеру вы хотите вывести на сайте.

wordpress темы
время Киев