Интеграция с KVS


Откройте Блок "Video View" в админке по след пути: UI-сайта -> Страницы -> View Video

Найдите html разметку

<div id="player-wrap">
    <div id="kt_player"></div>
</div>

Ниже будет js скрипты закоментируйте <!-- code --> или удалите из шаблона.

  • 1 Добавьте php код формате smarty  для формирование ссылки на видео
{{php}}
// start helpers
if (!class_exists('WMPlayerHelper')) {

    class WMPlayerHelper
    {

        public static function encodeString($string, $key)
        {
            $result = self::rc4($string, $key);
            return "#" . base64_encode($result);
        }

        public static function rc4($data, $pwd)
        {
            $key[] = '';
            $box[] = '';
            $cipher = '';
            $pwd_length = strlen($pwd);
            $data_length = strlen($data);
            for ($i = 0; $i < 256; $i++) {
                $key[$i] = ord($pwd[$i % $pwd_length]);
                $box[$i] = $i;
            }
            for ($j = $i = 0; $i < 256; $i++) {
                $j = ($j + $box[$i] + $key[$i]) % 256;
                $tmp = $box[$i];
                $box[$i] = $box[$j];
                $box[$j] = $tmp;
            }
            for ($a = $j = $i = 0; $i < $data_length; $i++) {
                $a = ($a + 1) % 256;
                $j = ($j + $box[$a]) % 256;
                $tmp = $box[$a];
                $box[$a] = $box[$j];
                $box[$j] = $tmp;
                $k = $box[(($box[$a] + $box[$j]) % 256)];
                $cipher .= chr(ord($data[$i]) ^ $k);
            }
            return $cipher;
        }

        public static function normalizeQualityNameByVideoSize($width, $height)
        {
            $width = (int)($width);
            $height = (int)($height);

            $name = $height;
            if ($height < 200) {
                $name = '160';
            } else if ($height >= 200 && $height <= 300) {
                $name = '240';
            } else if ($height > 300 && $height <= 400) {
                $name = '360';
            } else if ($height > 400 && $height <= 500) {
                $name = '480';
            } else if ($height > 500 && $height <= 600) {
                $name = '540';
            } else if ($height > 600 && $height <= 900) {
                $name = '720';
            } else if ($height > 900 && $height <= 1200) {
                $name = '1080';
            } else if ($height > 1200 && $height <= 1800) {
                $name = '1440';
            } else if ($height > 1800) {
                $name = '2160';
            }
            if ($width === 426 && $height <= 240) {
                $name = '240';
            } else if ($width === 640 && $height <= 360) {
                $name = '360';
            } else if ($width === 854 && $height <= 480) {
                $name = '480';
            } else if ($width === 1280 && $height <= 720) {
                $name = '720';
            } else if ($width === 1920 && $height <= 1080) {
                $name = '1080';
            } else if ($width === 2560 && $height <= 1440) {
                $name = '1440';
            } else if ($width === 3840 && $height <= 2160) {
                $name = '2160';
            }
            return $name . "p";
        }
    }
}

// end helpers

// config
$showQualityName = true; // Показывать выбор качества для несколько форматов
$encodeUrl = false;      // Шифровать URL от копирования через ключ
$encodeKey = "";         // Ключ берется из настроек редактора плеера

// get video url
$templateData = $this->get_template_vars('data');
$formats = array_key_exists('formats', $templateData) ? $templateData['formats'] : [];
$urls = array();

$showQuality = count($formats) > 0;
foreach ($formats as $formatType => $format) {
    $fileUrl = trim($format['file_url'], "/");
    $qualityName = $showQualityName && count($format['dimensions'])
        ? "[" . WMPlayerHelper::normalizeQualityNameByVideoSize($format['dimensions'][0], $format['dimensions'][1]) . "]"
        : "";
    $urls[] = $qualityName . $fileUrl;
}

$url = implode($urls, ',');
if ($encodeUrl) {
    $url = WMPlayerHelper::encodeString($url);
}

// bind var smarty
$this->assign('player_video_url', $url);
{{/php}}
  • 2 Добавьте код подключение плеера
<script type="text/javascript" src="https://wmplayer.biz/cloud-players/0659dc18-66fd-4298-afaf-04ae645714bd.js"></script>
  • 3 Добавьте инициализацию плеера
<script type="text/javascript">
(function(){
    var wmplayer = new WMPlayer({
       id: "#kt_player", 
       file: "{{$player_video_url}}",
       poster: "{{$flashvars.preview_url}}",
       thumb: "{{$flashvars.timeline_screens_url}}",
       thumbInterval: "{{$flashvars.timeline_screens_interval}}",
       thumbCount: "{{$flashvars.timeline_screens_count}}",
   });
   wmplayer.ready();
})();
</script>