} ?> </video> <div class="overlays" style="display: none;"> <?php if (!empty($model->top_image)) { $onClick = ''; $cursor = 'move'; if (!empty($model->top_image_url)) { $onClick = " ondblclick=\"window.open('" . $model->top_image_url . "', '_blank');\""; $cursor = 'pointer'; } else { $cursor = 'move'; } $imgPath = poa('application'); list($imgWidth, $imgHeight, $imgType, $imgAttr) = getimagesize($imgPath . '/../files/' . uid() . '/thumb/' . $model->top_image); $imagePos = explode(',', $model->top_image_pos); echo '<div id="top-image-panel"' . $onClick . ' style="cursor:' . $cursor . ';top: 0px; left: 0px; height: ' . ($imagePos[3] == "" || $imagePos[3] == 0 ? $imgHeight : $imagePos[3]) . 'px; width: ' . ($imagePos[2] == "" || $imagePos[2] == 0 ? $imgHeight : $imagePos[2]) . 'px; display: block;" class="custom-overlays" data-top="' . $imagePos[1] . '" data-left="' . $imagePos[0] . '">'; echo '<img src="' . Yii::app()->request->baseUrl . '/files/' . uid() . '/thumb/' . $model->top_image . '?rand=' . rand(100000, 999999) . '" style="position: absolute; left: 0px; top: 0px; height: ' . ($imagePos[3] == "" || $imagePos[3] == 0 ? $imgHeight : $imagePos[3]) . 'px; width: ' . ($imagePos[2] == "" || $imagePos[2] == 0 ? $imgHeight : $imagePos[2]) . 'px;" />'; echo '</div>'; } ?> <?php $start = array(); $end = array(); $oIds = array(); $overlay_link_counter = 1; $overlay_cc_counter = 1; foreach ($model->overlays as $ovr) { //$title=true;
public function actionGetCode($id, $code, $ovr = 0) { $base = Yii::app()->getBaseUrl(true); //"http://mfvideomgr.com/html5"; $model = Video::model()->findByPk($id); if (!$this->checkRepeats($id)) { app()->end(); } if (!$this->checkTiming($id)) { app()->end(); } if (!$this->checkLocation($id)) { app()->end(); } $bookmarkAllowed = !empty($model->hotspots_bookmark); $randId = md5(time() . rand(0, 999)); $xr = Yii::app()->request->getQuery('xr'); $code = "\n\tvar opt, player;\n\tif(typeof(\$) == \"undefined\" && typeof(jQuery) == \"undefined\")\n\t{\n\t\tjq = document.createElement('script');\n\t\tjq.src='//code.jquery.com/jquery-latest.min.js';\n\t\tjq.type='text/javascript';\n\t\tjq.onload = vidmgr_startup;\n\t\th = document.getElementsByTagName('head')[0];\n\t\th.appendChild(jq);\n\t}\n\telse\n\t\tjQuery(function(){vidmgr_startup()}); \n\tfunction vidmgr_startup()\n\t{\n\tif(typeof(\$) == 'undefined')\n\t\t\$ = jQuery;\n\tfunction startVjs(){\n\t\topt = {controls: false, autoplay: false, preload: false,plugins : { enlarge : {} }};\n"; if ($model->theme != 0) { $code .= "\t\topt.controls = true;\n"; } if ($model->buffer != 0) { $code .= "\t\topt.buffer = true;\n"; } if ($model->autoplay != 0) { $code .= "\t\topt.autoplay = true;\n"; } if ($model->height) { $code .= "\t\topt.height = {$model->height};\n"; } if ($model->width) { $code .= "\t\topt.width = {$model->width};\n"; } $source = ''; $isEx = substr($model->file, 0, 4) == 'http'; if ($isEx) { $source = $model->file; } else { $source = $this->createAbsoluteUrl("videosr/rcv", array('name' => $model->file, 'id' => $model->user_id)); } // showVideo1 $video_source = "<source src=\"" . $source . "\" type=\"videosr/mp4\"></source>"; $media_data = ''; if ($model->isExternal()) { if (preg_match("/^(?:https?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?\$/", $model->fileUrl)) { $media_data = " width=\"{$model->width}\" height=\"{$model->height}\" data-setup=\\'{ \"techOrder\": [\"youtube\"], \"src\": \"{$model->fileUrl}\",\"controls\": true, \"autoplay\": true }\\'"; } elseif (preg_match("/^.*(vimeo\\.com\\/)((channels\\/[A-z]+\\/)|(groups\\/[A-z]+\\/videos\\/))?([0-9]+)/", $model->fileUrl)) { $media_data = " width=\"{$model->width}\" height=\"{$model->height}\" data-setup=\\'{ \"techOrder\": [\"vimeo\"], \"src\": \"{$model->fileUrl}\" ,\"controls\": true, \"autoplay\": true }\\'"; } else { $media_data = ''; } } if ($media_data != '') { $video_source = ''; } $code .= "\n \tvar vcl = '<video id=\"{$randId}\" class=\"video-js vjs-theme-{$model->theme}\" {$media_data} >{$video_source}</video>';\n\t\tvar vc2 = '<div class=\"overlays\">"; if (!empty($model->top_image)) { $onClick = ''; if (!empty($model->top_image_url)) { $onClick = " onclick=\"window.open(\\'" . $model->top_image_url . "\\', \\'_blank\\')\""; } $imgPath = poa('webroot'); list($imgWidth, $imgHeight, $imgType, $imgAttr) = getimagesize($imgPath . '/files/' . $model->user_id . '/thumb/' . $model->top_image); $imagePos = explode(',', $model->top_image_pos); $code .= ' <div id="top-image-panel"' . $onClick . ' style="position: absolute; top: ' . ($imagePos[1] == "" ? "0" : $imagePos[1]) . 'px; left: ' . ($imagePos[0] == "" ? "0" : $imagePos[0]) . 'px; height: ' . ($imagePos[2] == "" ? $imgHeight : $imagePos[2]) . 'px; width: ' . ($imagePos[3] == "" ? $imgWidth : $imagePos[3]) . 'px; display: block; ' . ($model->top_image_url != "" ? "cursor: pointer;" : "") . ' class="custom-overlays" data-top="' . $imagePos[1] . '" data-left="' . $imagePos[0] . '">'; $code .= ' <img src="' . $base . '/files/' . $model->user_id . '/thumb/' . $model->top_image . '?rand=' . rand(100000, 999999) . '" style="left: 0px; top: 0px; width:' . ($imagePos[3] == "" ? $imgWidth : $imagePos[3]) . 'px; height:' . ($imagePos[2] == "" ? $imgHeight : $imagePos[2]) . 'px;" />'; $code .= ' </div>'; } $start = array(); $end = array(); $oIds = array(); $hotspoted = ''; $background_opacity = 0; if ($bookmarkAllowed) { foreach ($model->overlays as $ovr) { $points = explode(",", $ovr->points); $start[] = $ovr->startTime; $end[] = $ovr->endTime; $oIds[] = $ovr->id; $borderRadius = ''; if ($ovr->shape == 'cir') { $borderRadius = ' border-radius: ' . $points[3] / 2 . 'px;'; } $overlayimage = ''; if ($ovr->image != '' && $ovr->show_image_on_area == 1) { $image_opacity = (int) $ovr->image_opacity / 100; $file_path = Yii::app()->getBaseUrl(true) . '/files/' . $model->user_id . '/' . $ovr->image . '?rand=' . rand(100000, 999999); $overlayimage = "<img src=\"{$file_path}\" style=\"opacity:{$image_opacity};height:{$points[2]}px;width:{$points[3]}px;{$borderRadius};position: absolute;left:0px;\" >"; } $time_point_function = ''; if ($ovr->go_to_time_point == 1) { $time_point_function = 'player.currentTime(' . $ovr->time_point . ');'; if ($ovr->play_auto == 1) { $time_point_function .= 'player.play();'; } else { $time_point_function .= 'player.pause();'; } } $click_preference = 'onclick'; if ($ovr->click_preference == 1) { $click_preference = 'ondblclick'; } else { $click_preference = 'onclick'; } $background_opacity = (double) $ovr->overlay_opacity / 100; $code .= "\t\t<div itemprop=\"offers\" id=\"overlayS_{$ovr->id}\" data-left=\"{$points[0]}\" data-top=\"{$points[1]}\" class=\"custom-overlays\" style=\"height:{$points[2]}px; width:{$points[3]}px;cursor:pointer;background-color:{$ovr->overlay_color};opacity:{$background_opacity};{$borderRadius}\" {{$click_preference}}=\"return addBM(\\'{$ovr->url}\\', {$ovr->id});{$time_point_function}\"> " . $overlayimage . " </div>"; $hotspoted .= "\t\t<li style=\"display:none\" id=\"hotspoti{$ovr->id}\"><a href=\"{$ovr->url}\" target=\"_blank\">{$ovr->url}</a></li>"; } } else { foreach ($model->overlays as $ovr) { $points = explode(",", $ovr->points); $start[] = $ovr->startTime; $end[] = $ovr->endTime; $oIds[] = $ovr->id; $borderRadius = ''; if ($ovr->shape == 'cir') { $borderRadius = ' border-radius: ' . $points[3] / 2 . 'px;'; } $time_point_function = ''; $open_link = "window.open(\\'{$ovr->url}\\', \\'_blank\\');"; if ($ovr->go_to_time_point == 1) { $time_point_function = 'player.currentTime(' . $ovr->time_point . ');'; if ($ovr->play_auto == 1) { $time_point_function .= 'player.play();'; } else { $time_point_function .= 'player.pause();'; } $open_link = ""; } $click_preference = 'onclick'; if ($ovr->click_preference == 1) { $click_preference = 'ondblclick'; } else { $click_preference = 'onclick'; } $font_style = ''; if ($ovr->font_size != '' && $ovr->font_size > 0) { $font_style .= 'font-size:' . $ovr->font_size . 'px;'; } else { $font_style .= 'font-size: 12px;'; } if ($ovr->font_family != '') { $font_style .= 'font-family:' . $ovr->font_family . ';'; } if ($ovr->font_color != '') { $font_style .= 'color:' . $ovr->font_color . ';'; } if ($ovr->font_is_bold == 1) { $font_style .= 'font-weight:bold;'; } if ($ovr->font_is_underline == 1) { $font_style .= 'text-decoration:underline;'; } if ($ovr->font_is_italic == 1) { $font_style .= 'font-style:italic;'; } if ($ovr->text_opacity != '') { $text_opacity = (int) $ovr->text_opacity / 100; $font_style .= 'opacity:' . $text_opacity . ';'; } $overlay_color = ''; if ($ovr->show_text == '1' && $ovr->overlay_text != '' && $ovr->text_background_is_transparent == 1) { $overlay_color = 'transparent'; } else { $overlay_color = $ovr->overlay_color; } $overlayimage = ''; if ($ovr->image != '' && $ovr->show_image_on_area == 1) { $image_opacity = (int) $ovr->image_opacity / 100; $file_path = Yii::app()->getBaseUrl(true) . '/files/' . $model->user_id . '/' . $ovr->image . '?rand=' . rand(100000, 999999); $overlayimage = "<img src=\"{$file_path}\" style=\"opacity:{$image_opacity};height:{$points[2]}px;width:{$points[3]}px;{$borderRadius};position: absolute;left:0px;\" >"; } $background_opacity = (double) $ovr->overlay_opacity / 100; $text = ''; if ($ovr->show_text == '1') { $ovr->overlay_text = str_replace("'", "\\'", $ovr->overlay_text); $text = "<input style=\"height:{$points[2]}px;width:{$points[3]}px;position:absolute;border:none;background:transparent;{$font_style}\" disabled=\"disabled\" value=\"{$ovr->overlay_text}\">"; } else { $text = ''; } $code .= "\t\t<div itemprop=\"offers\" id=\"overlayS_{$ovr->id}\" data-left=\"{$points[0]}\" data-top=\"{$points[1]}\" class=\"custom-overlays\" style=\"height:{$points[2]}px; width:{$points[3]}px; cursor:pointer;background-color:{$overlay_color};opacity:{$background_opacity};{$borderRadius}\" {$click_preference}=\"player.pause(); {$open_link}{$time_point_function}\"> " . $overlayimage . " {$text} </div>"; } } $start = implode(",", $start); $end = implode(",", $end); $oIds = implode(",", $oIds); $video_title = $model->title; $video_description = str_replace("'", "", html_entity_decode($model->description, ENT_QUOTES)); $video_description = str_replace('"', '', $video_description); $code .= "\t\t</div>'"; $code .= "\n\t\tif(\$('#videoBox-{$xr}').length ==0)\n\t\t{\n\t\t\tvar scr = \$('script[src *= {$xr}]')[0];\n\t\t\t\$(scr).before('<div id=\"videoBox-{$xr}\" class=\"videoBox\" itemprop=\"video\" itemscope itemtype=\"http://schema.org/VideoObject\"><h1 itemprop=\"name\" style=\"display:none\">{$video_title}</h1><meta itemprop=\"title\" content=\"{$video_title}\" /><meta itemprop=\"description\" content=\"{$video_description}\" /></div>');\n\t\t}\n\t\t\$('#videoBox-{$xr}').append(vcl);\n\t\t\$('#videoBox-{$xr}').append(vc2);\n\t \t"; $bmFunc = ''; $playerEnded = ''; if ($bookmarkAllowed) { $code .= "\n \t\tvar vc3 = '<div class=\"mfbookmark\" style=\"float:left\" id=\"mfbookmark-{$xr}\"><label title=\"By checking this box you will be able to select any clickable hotspot for viewing after the video completes. Video will not pause during play.\"><input type=\"checkbox\" id=\"mfbookmark-chk-{$xr}\" value=\"1\" /> Bookmark Hotspots</label></div>';\n\t\t\t\$('#videoBox-{$xr}').append(vc3);\n\t\t\tvar vc4 = '<div class=\"hotspoted\" id=\"hotspoted-{$xr}\"><p>Bookmarked Hotspots</p><ul>{$hotspoted}</ul></div>';\n\t\t\t\$('#videoBox-{$xr}').append(vc4);\n \t"; $playerEnded = "\n \t\tplayer.on('ended', function(){\n\t\t\tvar hcx = 0;\n\t\t\t\$('#hotspoted-{$xr} li').each(function(i,o){\n\t\t\t\tif(\$(o).css('display')!='none')\n\t\t\t\t\thcx++;\n\t\t\t});\n\t\t\tif(hcx>0)\n\t\t\t{\n\t\t\t\t\$('#hotspoted-{$xr}').show();\n\t\t\t\t\$('#hotspoted-{$xr}').css('position','absolute');\n\t\t\t\t\n\t\t\t\t//\$('#hotspoted-{$xr}').css('background','#ffffff');\n\t\t\t\t\$('#hotspoted-{$xr}').css('top','10px');\n\t\t\t\t\$('#hotspoted-{$xr}').css('left','10px');\n\t\t\t\t\t\n\t\t\t}\n\t\t});\n \t"; $bmFunc = ' function addBM(url,id){ $(\'#bmnoti-' . $xr . '\').remove(); var sx = $(\'#mfbookmark-chk-' . $xr . '\').prop(\'checked\').toString(); if(sx!="false" && sx!="undefined"){ $(\'#hotspoti\'+id).css(\'display\', \'\'); $(\'#videoBox-' . $xr . '\').append(\'<div class="bmnoti" style="float:left; color:#ff0000" id="bmnoti-' . $xr . '"> Hotspot bookmarked!</div>\'); setTimeout(function(){ $(\'#bmnoti-' . $xr . '\').fadeOut(300).remove(); }, 2000); }else{ $(\'#hotspoti\'+id).css(\'display\', \'none\'); player.pause(); window.open(url, \'_blank\'); } return false; } '; } $code .= '$("#' . $randId . '").addClass("vjs-theme-' . $model->theme . '"); console.log($("#videoBox-' . $xr . '").height());'; if ($model->overlay == "1") { $code .= "\n\t \t\$.colorbox({inline:true,scrolling:false, href:'#videoBox-{$xr}',intialHeight:" . ($model->height + 30) . ", innerWidth: " . $model->width . ", innerHeight: " . ($model->height + 30) . ", onCleanup:function(){player.pause();},onClose:function(){player.pause();}, onComplete: function(){\n\t\t\t"; } if ($model->overlay == "2") { $code .= "\n\t \t\$.colorbox({inline:true,scrolling:false,overlayClose:false, opacity:0, innerWidth: " . $model->width . ", innerHeight: " . ($model->height + 18) . ",\n\t\t"; if (!empty($model->X)) { $code .= "top:\"" . $model->X . $model->Xdrop . "\", "; } if (!empty($model->Y)) { $code .= "left:\"" . $model->Y . $model->Ydrop . "\", "; } $code .= "\n\t \tfixed:true,href:'#videoBox-{$xr}', onCleanup:function(){player.pause();},\n\t \tonClose:function(){player.pause();}, onComplete: function(){\n\t\t\t"; } if ($model->overlay == "3") { $code .= "\n\t \t\$.colorbox({inline:true,scrolling:false,overlayClose:false, opacity:0, innerWidth: " . $model->width . ", innerHeight: " . $model->height . ",\n\t \tfixed:true,href:'#videoBox-{$xr}', onCleanup:function(){player.pause();},\n\t \tonClose:function(){player.pause();}, onComplete: function(){\n\t\t\t"; } $code .= "\n videojs.Enlarge = videojs.Button.extend({\n /** @constructor */\n init: function(player, options){\n videojs.Button.call(this, player, options);\n this.on('click', this.onClick);\n }\n });\n\n videojs.Enlarge.prototype.onClick = function() {\n\t\tif(player.width() <= " . $model->width . ") {\n\t\t\tplayer.width(player.width() * 1.5);\n\t\t\tplayer.height(player.height() * 1.5);\n\t\t\tparent.\$.colorbox.resize({innerWidth:player.width(), innerHeight:player.height()});\n\t\t\t\$('.vjs-enlarge-button').addClass('enlarged');\n\t\t} else {\n\t\t\tplayer.width(player.width() / 1.5);\n\t\t\tplayer.height(player.height() / 1.5);\n\t\t\tparent.\$.colorbox.resize({innerWidth:player.width(), innerHeight:player.height()});\n\t\t\t\$('.vjs-enlarge-button').removeClass('enlarged');\n\t\t}\n };\n\n // Note that we're not doing this in prototype.createEl() because\n // it won't be called by Component.init (due to name obfuscation).\n var createEnlargeButton = function() {\n var props = {\n className: 'vjs-enlarge-button vjs-control',\n innerHTML: '<div class=\"vjs-control-content\"><span class=\"vjs-control-text\">' + ('Enlarge') + '</span></div>',\n role: 'button',\n 'aria-live': 'polite', // let the screen reader user know that the text of the button may change\n tabIndex: 0\n };\n return videojs.Component.prototype.createEl(null, props);\n };\n\n var enlarge;\n videojs.plugin('enlarge', function() {\n var options = { 'el' : createEnlargeButton() };\n enlarge = new videojs.Enlarge(this, options);\n this.controlBar.el().appendChild(enlarge.el());\n });\n\n\t \t\tvideojs('{$randId}', opt).ready(function(){\n\t \t\tplayer = this;\n\t \t\tplayer.on('play', posOverlays);\n\t\t\tplayer.on('resize', posOverlays);\n\t\t\tplayer.on('timeupdate', function(){showOvs(player);});\n\t\t\t//\$('#mfbookmark label').popover();\n\t\t\t{$playerEnded}\n\t\t\t\n\t\t\tvideoTitle = '" . $model->title . "';\n\t\t\t//\$.getScript('" . $base . "/js/video-ga.js');\n\t \t\t"; $code .= "});"; if ($model->overlay >= "1") { $code .= "}});"; } $code .= "};\n\t\t\n\t\tvar start = '" . $start . "';\n\t\tvar end = '" . $end . "';\n\t\tvar oIds = '" . $oIds . "';\n\t\tstart = start.split(',');\n\t\tend = end.split(',');\n\t\toIds = oIds.split(',');"; $code .= ' function showOvs(player){ var len = start.length; var t = player.currentTime(); for(var i = 0; i < len ; i++){ if((t) >= parseInt(start[i]) && (t) <= parseInt(end[i])){ if(!$("#overlayS_"+oIds[i]).is(":visible")) { $("#overlayS_"+oIds[i]).show(); posOverlays(); } } else { $("#overlayS_"+oIds[i]).hide(); } } } function posOverlays(){ $(".overlays").show(); $("#hotspoted-' . $xr . '").hide(); var off = $("#' . $randId . '").offset(); $(".custom-overlays").each(function(){ $(this).css({top: $(this).data("top"), left: $(this).data("left") }); }); } var custu_css = ".custom-overlays{opacity: 0.3; position: absolute; line-height: 9; z-index: 10000; } .black_overlay{ position: absolute;top: 0%;left: 0%;width: 100%;height: 100%;background-color: black;z-index:1001;-moz-opacity: 0.8;opacity:.80;filter: alpha(opacity=80); } .white_content {position: absolute;top: 25%;left: 25%;width: 50%;height: 50%;padding: 16px;border: 16px solid orange;background-color: white;z-index:1002;overflow: auto; } ";'; $code .= "\n\t\t\$(function(){\n\t\t\t\$.ajax({url:'http://vjs.zencdn.net/4.2.1/video.js', dataType: 'script', success: function(){\n\t\t\t\$.ajax({url:'" . $base . "/js/videojs.custom.min.js', dataType: 'script', success: function(){\n\t\t\t\$.ajax({url:'" . $base . "/js/youtube.js', dataType: 'script', success: function(){}});\n \$.ajax({url:'" . $base . "/js/media.vimeo.js', dataType: 'script', success: function(){}});\n\t\t\t \$.get('" . $base . "/videosr/rcvitem?item=" . urlencode('video-js.css') . "', function(css)\n\t\t\t {\n \t\t\t \t\$('<style type=\"text/css\"></style>')\n \t\t\t.html(css)\n \t\t\t.appendTo('head');\n\t\t\t\t\t\n\t\t\t\t\$('<style type=\"text/css\"></style>')\n\t\t\t\t.html(custu_css)\n\t\t\t\t.appendTo('head');\n\t\t\t\t"; $code .= "\n \$.get('" . $base . "/video-themes/theme-" . $model->theme . "/css/main.css', function(css2){\n \$('<style type=\"text/css\"></style>')\n .html(css2)\n .appendTo('head');\n });\n "; if ($model->overlay == "1") { $code .= "\$.ajax({url:'" . $base . "/videosr/rcvitem?item=" . urlencode("jquery.colorbox-min.js") . "', dataType: 'script', success: function(){\n\t\t\t\t\t \t\$.get('" . $base . "/videosr/rcvitem?item=" . urlencode("colorbox.css") . "', function(css)\n\t\t\t\t\t \t{\n\t\t\t \t\t\t \t\$('<style type=\"text/css\"></style>')\n\t\t\t \t\t\t.html(css)\n\t\t\t \t\t\t.appendTo('head');\n\t\t\t\t\t\t"; } if ($model->overlay == "2") { $code .= "\$.ajax({url:'" . $base . "/videosr/rcvitem?item=" . urlencode("jquery.colorbox-min.js") . "', dataType: 'script', success: function(){\n\t\t\t\t\t \t\$.get('" . $base . "/videosr/rcvitem?item=" . urlencode("colorbox.css") . "', function(css)\n\t\t\t\t\t \t{\n\t\t\t \t\t\t \t\$('<style type=\"text/css\"></style>')\n\t\t\t \t\t\t.html(css)\n\t\t\t \t\t\t.appendTo('head');\n\t\t\t\t\t\t"; } $code .= "startVjs();"; if ($model->overlay == "0") { $code .= "\n\n \n var ov_off = \$('#{$randId}').offset();\n var ov_h = \$('#{$randId}').height();\n var ov_w = \$('#{$randId}').width();\n console.log(ov_off);\n \$('.overlays').css({top: ov_off.top , left: ov_off.left, height: ov_h-30, width: ov_w});\n \$('.overlays').css('position','absolute');\n\n "; } if ($model->overlay >= "1") { $code .= "});\n\t\t\t\t\t}});"; } $code .= "\n\t\t\t });\n\t\t\t}});\n\n\n\t\t}});\n\t\t});\n\t}\n\t" . $bmFunc . "\n\t"; header("application/x-javascript"); header("Content-Type: application/javascript"); header("X-Content-Type-Options: nosniff"); header("Access-Control-Allow-Origin: *"); echo $code; }
public function actionGetCode($id, $code, $ovr = 0) { //return 'currently on maintainence'; $base = Yii::app()->getBaseUrl(true); //"http://mfvideomgr.com/html5"; $model = Video::model()->findByPk($id); if (!$this->checkRepeats($id)) { app()->end(); } if (!$this->checkTiming($id)) { app()->end(); } if (!empty($model->geolocations)) { if (!$this->checkLocation($id)) { app()->end(); } } $bookmarkAllowed = !empty($model->hotspots_bookmark); $randId = md5(time() . rand(0, 999)); $xr = Yii::app()->request->getQuery('xr'); $loop = "false"; if ($model->enable_loop == 1) { $loop = "true"; } else { $loop = "false"; } $code = "\n\tvar opt, player;\n\tif(typeof(\$) == \"undefined\" && typeof(jQuery) == \"undefined\")\n\t{\n\t\tjq = document.createElement('script');\n\t\tjq.src='//code.jquery.com/jquery-latest.min.js';\n\t\tjq.type='text/javascript';\n\t\tjq.onload = vidmgr_startup;\n\t\th = document.getElementsByTagName('head')[0];\n\t\th.appendChild(jq);\n\t}\n\telse\n\t\tjQuery(function(){vidmgr_startup()}); \n\tfunction vidmgr_startup()\n\t{\n\tif(typeof(\$) == 'undefined')\n\t\t\$ = jQuery;\n\tfunction startVjs(){\n\t\topt = {controls: false, autoplay: false, preload : 'auto' ,loop:{$loop} ,customControlsOnMobile: true,nativeControlsForTouch:false,plugins : { enlarge : {} }};\n"; if ($model->theme != 0) { $code .= "\t\topt.controls = true;\n"; } if ($model->buffer != 0) { $code .= "\t\topt.buffer = true;\n"; } if ($model->autoplay != 0) { $code .= "\t\topt.autoplay = true;\n"; } if ($model->height) { $code .= "\t\topt.height = {$model->height};\n"; } if ($model->width) { $code .= "\t\topt.width = {$model->width};\n"; } $poster = ""; if ($model->shopableimage != "") { $poster = Yii::app()->getBaseUrl(true) . '/files/' . $model->user_id . '/' . $model->shopableimage . '?rand=' . rand(100000, 999999); $code .= " opt.poster = '{$poster}';\n"; } $source = ''; $isEx = substr($model->file, 0, 4) == 'http'; if ($isEx) { $source = $model->file; } else { $source = $this->createAbsoluteUrl("video/rcv", array('name' => $model->file, 'id' => $model->user_id)); } // showVideo1 $shopable_image = ''; if ($model->shopableimage != '' && $model->enable_shopableimage == 1) { $shopable_image = "<img class=\"vigmgr_main_img\" src=\"" . Yii::app()->getBaseUrl(true) . '/files/' . $model->user_id . '/' . $model->shopableimage . '?rand=' . rand(100000, 999999) . "\"/><style>#{$randId}{display:none !important;}</style>"; $model->fileUrl = ''; $model->file = ''; $source = ''; } $video_source = "<source src=\"" . $source . "\" type=\"video/mp4\"></source>"; $media_data = ''; $plugin = ''; $shared_js_code = ""; $youtube_js = ""; $vimeo_js = ""; if ($model->isExternal()) { if (preg_match("/^(?:https?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?\$/", $model->fileUrl)) { $code .= "console.log('youtube link: {{$model->fileUrl}}')"; $media_data = " width=\"{$model->width}\" height=\"{$model->height}\" data-setup=\\'{ \"techOrder\": [\"youtube\"], \"src\": \"{$model->fileUrl}\",\"controls\": true, \"autoplay\": true }\\'"; } elseif (preg_match("/^.*(vimeo\\.com\\/)((channels\\/[A-z]+\\/)|(groups\\/[A-z]+\\/videos\\/))?([0-9]+)/", $model->fileUrl)) { $code .= "console.log('vimeo link: {{$model->fileUrl}}')"; $media_data = " width=\"{$model->width}\" height=\"{$model->height}\" data-setup=\\'{ \"techOrder\": [\"vimeo\"], \"src\": \"{$model->fileUrl}\" ,\"controls\": true, \"autoplay\": true }\\'"; } else { $media_data = ''; if ($model->share == 1) { // $plugin = " data-setup=\'{\"plugins\":{\"addThis\":{\"website_url\": false,\"reddit\":false,\"delicious\":false}}}\'"; } } } else { if ($model->share == 1) { //$plugin = " data-setup=\'{\"plugins\":{\"addThis\":{\"website_url\": false,\"reddit\":false,\"delicious\":false}}}\'"; } } if ($media_data != '') { $video_source = ''; } $track = ''; if ($model->enable_cc == 1 && $model->cc_file != "") { $track = "<track kind=\"captions\" src=\"" . $this->createAbsoluteUrl("video/rcvtrack", array('name' => $model->cc_file, 'id' => $model->user_id)) . "\" label=\"English\" default >"; } $video_poster_data = ""; if ($model->shopableimage != "") { $video_poster_data = " poster=\"" . Yii::app()->getBaseUrl(true) . '/files/' . $model->user_id . '/' . $model->shopableimage . '?rand=' . rand(100000, 999999) . "\" data-poster=\"" . Yii::app()->getBaseUrl(true) . '/files/' . $model->user_id . '/' . $model->shopableimage . '?rand=' . rand(100000, 999999) . "\""; } $code .= "\n \tvar vcl = '<video id=\"{$randId}\" class=\"video-js vjs-theme-{$model->theme}\" {$media_data} {$plugin} {$video_poster_data} >{$video_source} {$track}</video>';\n\t\tvar vc2 = '<div class=\"overlays\" style=\"display:none;\">{$shopable_image}"; if (!empty($model->top_image)) { $onClick = ''; if (!empty($model->top_image_url)) { $onClick = " onclick=\"window.open(\\'" . $model->top_image_url . "\\', \\'_blank\\')\""; } $imgPath = poa('webroot'); list($imgWidth, $imgHeight, $imgType, $imgAttr) = getimagesize($imgPath . '/files/' . $model->user_id . '/thumb/' . $model->top_image); $imagePos = explode(',', $model->top_image_pos); $code .= ' <div id="top-image-panel"' . $onClick . ' style="position: absolute; top: ' . ($imagePos[1] == "" ? "0" : $imagePos[1]) . 'px; left: ' . ($imagePos[0] == "" ? "0" : $imagePos[0]) . 'px; height: ' . ($imagePos[2] == "" ? $imgHeight : $imagePos[2]) . 'px; width: ' . ($imagePos[3] == "" ? $imgWidth : $imagePos[3]) . 'px; display: block; ' . ($model->top_image_url != "" ? "cursor: pointer;" : "") . ' class="custom-overlays" data-top="' . $imagePos[1] . '" data-left="' . $imagePos[0] . '">'; $code .= ' <img src="' . $base . '/files/' . $model->user_id . '/thumb/' . $model->top_image . '?rand=' . rand(100000, 999999) . '" style="left: 0px; top: 0px; width:' . ($imagePos[3] == "" ? $imgWidth : $imagePos[3]) . 'px; height:' . ($imagePos[2] == "" ? $imgHeight : $imagePos[2]) . 'px;" />'; $code .= ' </div>'; } $start = array(); $end = array(); $oIds = array(); $hotspoted = ''; $background_opacity = 0; $commands = "var commands = {"; $popup = ""; if ($bookmarkAllowed) { foreach ($model->overlays as $ovr) { $points = explode(",", $ovr->points); $start[] = $ovr->startTime; $end[] = $ovr->endTime; $oIds[] = $ovr->id; $borderRadius = ''; if ($ovr->shape == 'cir') { $borderRadius = ' border-radius: ' . $points[3] / 2 . 'px;'; } $time_point_function = ''; $open_link = ""; if ($ovr->url != "" && $ovr->is_link == '1') { $open_link = "window.open(\\'{$ovr->url}\\', \\'_blank\\');"; } if ($ovr->go_to_time_point == 1) { $time_point_function = 'player.currentTime(' . $ovr->time_point . ');'; if ($ovr->play_auto == 1) { $time_point_function .= 'player.play();'; } else { $time_point_function .= 'player.pause();'; } $open_link = ""; } $click_preference = 'onclick'; if ($ovr->click_preference == 1) { $click_preference = 'ondblclick'; } else { $click_preference = 'onclick'; } $font_style = ''; if ($ovr->font_size != '' && $ovr->font_size > 0) { $font_style .= 'font-size:' . $ovr->font_size . 'px;'; } else { $font_style .= 'font-size: 12px;'; } if ($ovr->font_family != '') { $font_style .= 'font-family:' . $ovr->font_family . ';'; } if ($ovr->font_color != '') { $font_style .= 'color:' . $ovr->font_color . ';'; } if ($ovr->font_is_bold == 1) { $font_style .= 'font-weight:bold;'; } if ($ovr->font_is_underline == 1) { $font_style .= 'text-decoration:underline;'; } if ($ovr->font_is_italic == 1) { $font_style .= 'font-style:italic;'; } if ($ovr->text_opacity != '') { $text_opacity = (int) $ovr->text_opacity / 100; $font_style .= 'opacity:' . $text_opacity . ';'; } $overlay_color = ''; if ($ovr->show_text == '1' && $ovr->overlay_text != '' && $ovr->text_background_is_transparent == 1) { $overlay_color = 'transparent'; } else { $overlay_color = $ovr->overlay_color; } $overlayimage = ''; if ($ovr->image != '' && $ovr->show_image_on_area == 1) { $image_opacity = (int) $ovr->image_opacity / 100; $file_path = Yii::app()->getBaseUrl(true) . '/files/' . $model->user_id . '/' . $ovr->image . '?rand=' . rand(100000, 999999); $overlayimage = "<img src=\"{$file_path}\" style=\"opacity:{$image_opacity};height:{$points[2]}px;width:{$points[3]}px;{$borderRadius};position: absolute;left:0px;\" >"; } $background_opacity = (double) $ovr->overlay_opacity / 100; $text = ''; if ($ovr->show_text == '1') { $ovr->overlay_text = str_replace("'", "\\'", $ovr->overlay_text); $text = "<input style=\"height:{$points[2]}px;width:{$points[3]}px;position:absolute;border:none;background:transparent;cursor:pointer;{$font_style}\" readonly=\"readonly\" value=\"{$ovr->overlay_text}\">"; } else { $text = ''; } if ($ovr->speech_text_to_match != '' && $ovr->enable_voice_recohnition == 1) { $commands .= "'{$ovr->speech_text_to_match}': function() {\n \$('#overlayS_{$ovr->id}').trigger('click');\n new jBox('Notice', {\n content: 'Processing Voice Command: {$ovr->speech_text_to_match}'\n });\n },"; } if ($ovr->enable_popup) { $pop_up_height = $ovr->pop_up_height; $pop_up_opacity = $ovr->pop_up_opacity; $height_code = ''; $opacity_code = ''; if ($pop_up_height != '') { $pop_up_height = (int) $pop_up_height; $height_code = "height:{$pop_up_height},"; } if ($pop_up_opacity != '') { $pop_up_opacity = (double) $pop_up_opacity / 100; $opacity_code = "\$('#jBoxT_ovrly_{$ovr->id} .jBox-container').css('opacity','{$pop_up_opacity}');"; } $popup_content = ""; $popup_content = str_replace("'", "\\'", $ovr->popup_content); $popup_content = str_replace('"', "\\'", $ovr->popup_content); $popup_content = str_replace("/uploads", Yii::app()->getBaseUrl(true) . "/uploads", $ovr->popup_content); $popup_content = preg_replace('#\\R+#', '\\r\\n', $popup_content); if ($ovr->pop_up_preference == 'click') { $popup .= "new jBox('Tooltip', {\n id: 'jBoxT_ovrly_{$ovr->id}',\n theme: 'TooltipBorder',\n trigger: 'click',\n adjustDistance: {\n top: 55,\n right: 5,\n bottom: 5,\n left: 5\n },\n adjustTracker: true,\n {$height_code}\n closeOnClick: 'body',\n closeButton: 'box',\n animation: 'move',\n adjustPosition:true,\n attach: jQuery('#overlayS_{$ovr->id}'),\n target: jQuery('#overlayS_{$ovr->id}'),\n zIndex: 800000000,\n position: {\n x: '{$ovr->pop_up_position_x}',\n y: '{$ovr->pop_up_position_y}'\n },\n reposition:true,\n outside: '{$ovr->pop_up_outside_position}',\n pointer: 'left:0',\n offset: {\n x: 25\n },\n content: '{$popup_content}',\n onOpen: function() {},\n onOpen: function() {\n {$opacity_code}\n \$('#jBoxT_ovrly_{$ovr->id} .jBox-content').css('background','{$ovr->pop_up_color}');\n \$('head').append('<style>#jBoxT_ovrly_{$ovr->id} .jBox-pointer:after{background: {$ovr->pop_up_color} }</style>');\n \n },\n onClose: function() {\n \n }\n });"; } else { $popup .= "new jBox('Tooltip', {\n id: 'jBoxT_ovrly_{$ovr->id}',\n closeOnMouseleave: true,\n position: {\n x: '{$ovr->pop_up_position_x}',\n y: '{$ovr->pop_up_position_y}'\n },\n\n reposition:false,\n adjustPosition:true,\n outside: '{$ovr->pop_up_outside_position}',\n animation: 'zoomIn',\n {$height_code}\n attach: jQuery('#overlayS_{$ovr->id}'),\n zIndex: 800000000,\n content: '{$popup_content}',\n onOpen: function() {\n {$opacity_code}\n \$('#jBoxT_ovrly_{$ovr->id} .jBox-content').css('background','{$ovr->pop_up_color}');\n \$('head').append('<style>#jBoxT_ovrly_{$ovr->id} .jBox-pointer:after{background: {$ovr->pop_up_color} }</style>');\n },\n });"; } } $background_opacity = (double) $ovr->overlay_opacity / 100; $code .= " <div itemprop=\"offers\" id=\"overlayS_{$ovr->id}\" data-left=\"{$points[0]}\" data-top=\"{$points[1]}\" class=\"custom-overlays\" style=\"display:none;height:{$points[2]}px; width:{$points[3]}px; cursor:pointer;background-color:{$overlay_color};opacity:{$background_opacity};{$borderRadius}\" onclick=\"return addBM(\\'{$ovr->url}\\', {$ovr->id})\"> " . $overlayimage . " {$text} </div>"; $hotspoted .= "\t\t<li style=\"display:none\" id=\"hotspoti{$ovr->id}\"><a href=\"{$ovr->url}\" target=\"_blank\">{$ovr->url}</a></li>"; } } else { foreach ($model->overlays as $ovr) { $points = explode(",", $ovr->points); $start[] = $ovr->startTime; $end[] = $ovr->endTime; $oIds[] = $ovr->id; $borderRadius = ''; if ($ovr->shape == 'cir') { $borderRadius = ' border-radius: ' . $points[3] / 2 . 'px;'; } $time_point_function = ''; $open_link = ""; if ($ovr->url != "" && $ovr->is_link == '1') { $open_link = "window.open(\\'{$ovr->url}\\', \\'_blank\\');"; } $pause_video = 'player.pause();'; if ($ovr->go_to_time_point == 1) { $time_point_function = 'player.currentTime(' . $ovr->time_point . ');'; if ($ovr->play_auto == 1) { $time_point_function .= 'player.play();'; } else { $time_point_function .= 'player.pause();'; } $open_link = ""; $pause_video = ""; } $click_preference = 'onclick'; if ($ovr->click_preference == 1) { $click_preference = 'ondblclick'; } else { $click_preference = 'onclick'; } $font_style = ''; if ($ovr->font_size != '' && $ovr->font_size > 0) { $font_style .= 'font-size:' . $ovr->font_size . 'px;'; } else { $font_style .= 'font-size: 12px;'; } if ($ovr->font_family != '') { $font_style .= 'font-family:' . $ovr->font_family . ';'; } if ($ovr->font_color != '') { $font_style .= 'color:' . $ovr->font_color . ';'; } if ($ovr->font_is_bold == 1) { $font_style .= 'font-weight:bold;'; } if ($ovr->font_is_underline == 1) { $font_style .= 'text-decoration:underline;'; } if ($ovr->font_is_italic == 1) { $font_style .= 'font-style:italic;'; } if ($ovr->text_opacity != '') { $text_opacity = (int) $ovr->text_opacity / 100; $font_style .= 'opacity:' . $text_opacity . ';'; } $overlay_color = ''; if ($ovr->show_text == '1' && $ovr->overlay_text != '' && $ovr->text_background_is_transparent == 1) { $overlay_color = 'transparent'; } else { $overlay_color = $ovr->overlay_color; } $overlayimage = ''; if ($ovr->image != '' && $ovr->show_image_on_area == 1) { $image_opacity = (int) $ovr->image_opacity / 100; $file_path = Yii::app()->getBaseUrl(true) . '/files/' . $model->user_id . '/' . $ovr->image . '?rand=' . rand(100000, 999999); $overlayimage = "<img src=\"{$file_path}\" style=\"opacity:{$image_opacity};height:{$points[2]}px;width:{$points[3]}px;{$borderRadius};position: absolute;left:0px;\" >"; } $background_opacity = (double) $ovr->overlay_opacity / 100; $text = ''; if ($ovr->show_text == '1') { $ovr->overlay_text = str_replace("'", "\\'", $ovr->overlay_text); $text = "<input style=\"height:{$points[2]}px;width:{$points[3]}px;position:absolute;border:none;background:transparent;cursor:pointer;{$font_style}\" readonly=\"readonly\" value=\"{$ovr->overlay_text}\">"; } else { $text = ''; } if ($ovr->speech_text_to_match != '' && $ovr->enable_voice_recohnition == 1) { $commands .= "'{$ovr->speech_text_to_match}': function() {\n new jBox('Notice', {\n content: 'Processing Voice Command: {$ovr->speech_text_to_match}'\n });\n\n \$('#overlayS_{$ovr->id}').trigger('{$click_preference}');\n\n },"; } if ($ovr->cc_enabled == 1) { $ovr->overlay_text = str_replace("'", "\\'", $ovr->overlay_text); $ovr->overlay_text = preg_replace('#\\R+#', '\\r\\n\\n', $ovr->overlay_text); //$ovr->overlay_text =nl2br($ovr->overlay_text); $text = "<textarea style=\"height:{$points[2]}px;width:{$points[3]}px;position:absolute;border:none;background:transparent;resize: none;overflow:hidden;cursor:pointer;{$font_style}\" readonly=\"readonly\" >{$ovr->overlay_text}</textarea>"; $pause_video = ''; $open_link = ''; $time_point_function = ''; } $visibility = ''; if ($ovr->cc_enabled == 1 && $ovr->show_text == 0) { $visibility = 'visibility:hidden;'; } else { $visibility = ''; } $mouseOver = ""; if ($ovr->enable_popup) { $mouseOver = ""; $pop_up_height = $ovr->pop_up_height; $pop_up_opacity = $ovr->pop_up_opacity; $height_code = ''; $opacity_code = ''; if ($pop_up_height != '') { $pop_up_height = (int) $pop_up_height; $height_code = "height:{$pop_up_height},"; } if ($pop_up_opacity != '') { $pop_up_opacity = (double) $pop_up_opacity / 100; $opacity_code = "\$('#jBoxT_ovrly_{$ovr->id} .jBox-container').css('opacity','{$pop_up_opacity}');"; } $popup_content = ""; //$popup_content = str_replace("'","\'", $ovr->popup_content); // $popup_content = str_replace('"',"\'", $ovr->popup_content); $popup_content = str_replace("/uploads", Yii::app()->getBaseUrl(true) . "/uploads", $ovr->popup_content); $popup_content = preg_replace('#\\R+#', '\\r\\n', $popup_content); $popup_content = preg_replace("/[\"\\']/", "\\'", $popup_content); if ($ovr->pop_up_preference == 'click') { $popup .= "new jBox('Tooltip', {\n id: 'jBoxT_ovrly_{$ovr->id}',\n theme: 'TooltipBorder',\n {$height_code}\n trigger: 'click',\n adjustDistance: {\n top: 55,\n right: 5,\n bottom: 5,\n left: 5\n },\n adjustTracker: true,\n adjustPosition:true,\n closeOnClick: 'body',\n closeButton: 'box',\n animation: 'move',\n attach: jQuery('#overlayS_{$ovr->id}'),\n target: jQuery('#overlayS_{$ovr->id}'),\n zIndex: 800000000,\n position: {\n x: '{$ovr->pop_up_position_x}',\n y: '{$ovr->pop_up_position_y}'\n },\n reposition:true,\n outside: '{$ovr->pop_up_outside_position}',\n pointer: 'left:0',\n offset: {\n x: 25\n },\n content: '{$popup_content}',\n onOpen: function() {\n {$opacity_code}\n \$('#jBoxT_ovrly_{$ovr->id} .jBox-content').css('background','{$ovr->pop_up_color}');\n \$('head').append('<style>#jBoxT_ovrly_{$ovr->id} .jBox-pointer:after{background: {$ovr->pop_up_color} }</style>');\n \n },\n onClose: function() {\n \n }\n });"; } else { $popup .= "new jBox('Tooltip', {\n id: 'jBoxT_ovrly_{$ovr->id}',\n closeOnMouseleave: true,\n position: {\n x: '{$ovr->pop_up_position_x}',\n y: '{$ovr->pop_up_position_y}'\n },\n\n reposition:true,\n repositionOnOpen:true,\n adjustPosition:true,\n adjustTracker: true,\n {$height_code}\n outside: '{$ovr->pop_up_outside_position}',\n animation: 'zoomIn',\n attach: jQuery('#overlayS_{$ovr->id}'),\n zIndex: 800000000,\n content: '{$popup_content}',\n onOpen: function() {\n {$opacity_code}\n \$('#jBoxT_ovrly_{$ovr->id} .jBox-content').css('background','{$ovr->pop_up_color}');\n \$('head').append('<style>#jBoxT_ovrly_{$ovr->id} .jBox-pointer:after{background: {$ovr->pop_up_color} }</style>');\n },\n });"; } } $code .= "\t\t<div itemprop=\"offers\" id=\"overlayS_{$ovr->id}\" data-left=\"{$points[0]}\" data-top=\"{$points[1]}\" class=\"custom-overlays\" style=\"{$visibility}display:none;height:{$points[2]}px; width:{$points[3]}px; cursor:pointer;background-color:{$overlay_color};opacity:{$background_opacity};{$borderRadius}\" {$click_preference}=\"{$open_link}{$pause_video} {$time_point_function}\" onMouseover=\"{$mouseOver}\"> " . $overlayimage . " {$text} </div>"; } } $start = implode(",", $start); $end = implode(",", $end); $oIds = implode(",", $oIds); $video_title = $model->title; $video_description = str_replace("'", "", html_entity_decode($model->description, ENT_QUOTES)); $video_description = str_replace('"', '', $video_description); $code .= "\t\t</div>'"; $code .= "\n\t\tif(\$('#videoBox-{$xr}').length ==0)\n\t\t{\n\t\t\tvar scr = \$('script[src *= {$xr}]')[0];\n\t\t\t\$(scr).before('<div id=\"videoBox-{$xr}\" class=\"videoBox\" itemprop=\"video\" itemscope itemtype=\"http://schema.org/VideoObject\"><h1 itemprop=\"name\" style=\"display:none\">{$video_title}</h1><meta itemprop=\"title\" content=\"{$video_title}\" /><meta itemprop=\"description\" content=\"{$video_description}\" /></div>');\n\t\t}\n\t\t\$('#videoBox-{$xr}').append(vcl);\n\t\t\$('#videoBox-{$xr}').append(vc2);\n\t \t"; $bmFunc = ''; $playerEnded = ''; if ($model->hotspots_bookmark == '1') { $code .= "\n \t\tvar vc3 = '<div class=\"mfbookmark\" style=\"float:left\" id=\"mfbookmark-{$xr}\"><label title=\"By checking this box you will be able to select any clickable hotspot for viewing after the video completes. Video will not pause during play.\"><input type=\"checkbox\" id=\"mfbookmark-chk-{$xr}\" value=\"1\" /> Bookmark Hotspots</label></div>';\n console.log(vc3); \n\t\t\t\$('#videoBox-{$xr}').append(vc3);\n\t\t\tvar vc4 = '<div class=\"hotspoted\" id=\"hotspoted-{$xr}\" style=\"background:white;opacity:0.80;width:100%;height:auto;margin-top:20px;z-index:999999999999999999;\"><p>Bookmarked Hotspots</p><ul>{$hotspoted}</ul></div>';\n\t\t\t\$('#videoBox-{$xr}').append(vc4);\n \t"; $playerEnded = "\n \t\tplayer.on('ended', function(){\n\t\t\tvar hcx = 0;\n\t\t\t\$('#hotspoted-{$xr} li').each(function(i,o){\n\t\t\t\tif(\$(o).css('display')!='none')\n\t\t\t\t\thcx++;\n\t\t\t});\n\t\t\tif(hcx>0)\n\t\t\t{\n\t\t\t\t\$('#hotspoted-{$xr}').show();\n\t\t\t\t\$('#hotspoted-{$xr}').css('position','absolute');\n\t\t\t\t\n\t\t\t\t//\$('#hotspoted-{$xr}').css('background','#ffffff');\n\t\t\t\t\$('#hotspoted-{$xr}').css('top','10px');\n\t\t\t\t\$('#hotspoted-{$xr}').css('left','10px');\n\t\t\t\t\t\n\t\t\t}\n\t\t});\n \t"; $bmFunc = ' function addBM(url,id){ $(\'#bmnoti-' . $xr . '\').remove(); var sx = $(\'#mfbookmark-chk-' . $xr . '\').prop(\'checked\').toString(); if(sx!="false" && sx!="undefined"){ $(\'#hotspoti\'+id).css(\'display\', \'\'); $(\'#videoBox-' . $xr . '\').append(\'<div class="bmnoti" style="float:left; color:#ff0000" id="bmnoti-' . $xr . '"> Hotspot bookmarked!</div>\'); setTimeout(function(){ $(\'#bmnoti-' . $xr . '\').fadeOut(300).remove(); }, 2000); }else{ $(\'#hotspoti\'+id).css(\'display\', \'none\'); player.pause(); window.open(url, \'_blank\'); } return false; } '; } $code .= '$("#' . $randId . '").addClass("vjs-theme-' . $model->theme . '"); console.log($("#videoBox-' . $xr . '").height());'; if ($model->overlay == "1") { if ($model->hotspots_bookmark == '1') { $model->height = $model->height + 30; } $code .= "\n\t \t\$.colorbox({inline:true,scrolling:false, href:'#videoBox-{$xr}',intialHeight:" . $model->height . ", innerWidth: " . $model->width . ", innerHeight: " . $model->height . ", onCleanup:function(){player.pause();},onClose:function(){player.pause();}, onComplete: function(){\n\t\t\t"; } if ($model->overlay == "2") { if ($model->hotspots_bookmark == '1') { $model->height = $model->height + 30; } $code .= "\n\t \t\$.colorbox({inline:true,scrolling:false,overlayClose:false, opacity:0, innerWidth: " . $model->width . ", innerHeight: " . $model->height . ",\n\t\t"; if (!empty($model->X)) { $code .= "top:\"" . $model->X . $model->Xdrop . "\", "; } if (!empty($model->Y)) { $code .= "left:\"" . $model->Y . $model->Ydrop . "\", "; } $extra_code = ""; if ($model->show_overlay_border == 0) { $extra_code = "\n console.log('modal 2 initiated');\n \$('#cboxTopLeft').hide();\n \$('#cboxTopRight').hide();\n \$('#cboxBottomLeft').hide();\n \$('#cboxBottomRight').hide();\n \$('#cboxMiddleLeft').hide();\n \$('#cboxMiddleRight').hide();\n \$('#cboxTopCenter').hide();\n \$('#cboxBottomCenter').hide();"; } $code .= "\n\t \tfixed:true,href:'#videoBox-{$xr}', onCleanup:function(){player.pause();},\n\t \tonClose:function(){player.pause();}, onComplete: function(){\n \n {$extra_code}\n\t\t\t"; } if ($model->overlay == "3") { $code .= "\n\t \t\$.colorbox({inline:true,scrolling:false,overlayClose:false, opacity:0, innerWidth: " . $model->width . ", innerHeight: " . $model->height . ",\n\t \tfixed:true,href:'#videoBox-{$xr}', onCleanup:function(){player.pause();},\n\t \tonClose:function(){player.pause();}, onComplete: function(){\n console.log('modal initiated');\n\n\t\t\t"; } $code .= "\n videojs.Enlarge = videojs.Button.extend({\n /** @constructor */\n init: function(player, options){\n videojs.Button.call(this, player, options);\n this.on('click', this.onClick);\n }\n });\n\n videojs.Enlarge.prototype.onClick = function() {\n\t\tif(player.width() <= " . $model->width . ") {\n\t\t\tplayer.width(player.width() * 1.5);\n\t\t\tplayer.height(player.height() * 1.5);\n\t\t\tparent.\$.colorbox.resize({innerWidth:player.width(), innerHeight:player.height()});\n\t\t\t\$('.vjs-enlarge-button').addClass('enlarged');\n\t\t} else {\n\t\t\tplayer.width(player.width() / 1.5);\n\t\t\tplayer.height(player.height() / 1.5);\n\t\t\tparent.\$.colorbox.resize({innerWidth:player.width(), innerHeight:player.height()});\n\t\t\t\$('.vjs-enlarge-button').removeClass('enlarged');\n\t\t}\n };\n\n // Note that we're not doing this in prototype.createEl() because\n // it won't be called by Component.init (due to name obfuscation).\n var createEnlargeButton = function() {\n var props = {\n className: 'vjs-enlarge-button vjs-control',\n innerHTML: '<div class=\"vjs-control-content\"><span class=\"vjs-control-text\">' + ('Enlarge') + '</span></div>',\n role: 'button',\n 'aria-live': 'polite', // let the screen reader user know that the text of the button may change\n tabIndex: 0\n };\n return videojs.Component.prototype.createEl(null, props);\n };\n\n var enlarge;\n videojs.plugin('enlarge', function() {\n var options = { 'el' : createEnlargeButton() };\n enlarge = new videojs.Enlarge(this, options);\n this.controlBar.el().appendChild(enlarge.el());\n });\n\n\t \t\tvideojs('{$randId}', opt).ready(function(){\n\t \t\tplayer = this;\n \n\t \t\tplayer.on('play', posOverlays);\n\t\t\tplayer.on('resize', posOverlays);\n\t\t\tplayer.on('timeupdate', function(){showOvs(player);});\n\t\t\t//\$('#mfbookmark label').popover();\n\n \n\t\t\t{$playerEnded}\n\t\t\t\n\t\t\tvideoTitle = '" . $model->title . "';\n\t\t\t//\$.getScript('" . $base . "/js/video-ga.js');\n \n poster_data = '{$poster}';\n if(poster_data!=''){\n \$('video').attr('poster','" . $poster . "');\n console.log('check poster: " . $poster . "');\n }\n \n\t \t\t"; if ($model->enable_marker == 1) { $model->marker_code = preg_replace('#\\R+#', '', $model->marker_code); //$model->marker_code =nl2br($model->marker_code); $marker = "player.markers({" . $model->marker_code . "});"; $code .= $marker; } $code .= "});"; if ($model->overlay >= "1") { $code .= "}});"; } $code .= "};\n\t\t\n\t\tvar start = '" . $start . "';\n\t\tvar end = '" . $end . "';\n\t\tvar oIds = '" . $oIds . "';\n\t\tstart = start.split(',');\n\t\tend = end.split(',');\n\t\toIds = oIds.split(',');"; $fullscreen = "hidden"; if ($model->fullscreen_enabled == 1) { $fullscreen = "visible"; } $code .= ' function showOvs(player){ var len = start.length; var t = player.currentTime(); for(var i = 0; i < len ; i++){ if((t) >= parseInt(start[i]) && (t) <= parseInt(end[i])){ if(!$("#overlayS_"+oIds[i]).is(":visible")) { $("#overlayS_"+oIds[i]).show(); posOverlays(); } } else { $("#overlayS_"+oIds[i]).hide(); } } } function posOverlays(){ $("li.vjs-menu-item").eq(2).trigger("click"); $(".overlays").show(); $("#hotspoted-' . $xr . '").hide(); var off = $("#' . $randId . '").offset(); $(".custom-overlays").each(function(){ $(this).css({top: $(this).data("top"), left: $(this).data("left") }); }); } var custu_css = ".vjs-fullscreen-control{visibility:' . $fullscreen . '}.custom-overlays{opacity: 0.3; position: absolute; line-height: 0; z-index: 10000; } .black_overlay{ position: absolute;top: 0%;left: 0%;width: 100%;height: 100%;background-color: black;z-index:1001;-moz-opacity: 0.8;opacity:.80;filter: alpha(opacity=80); } .white_content {position: absolute;top: 25%;left: 25%;width: 50%;height: 50%;padding: 16px;border: 16px solid orange;background-color: white;z-index:1002;overflow: auto; } ";'; $share_js = ""; if ($model->share == 1) { $share_js = "\$.ajax({url:'" . $base . "/js/videojs.addThis.js', dataType: 'script', success: function(){}});\n \$.get('" . $base . "/video/rcvitem?item=" . urlencode('videojs.addThis.css') . "', function(css){\n \$('<style type=\"text/css\"></style>')\n .html(css)\n .appendTo('head');\n });"; } $marker_js = ""; if ($model->enable_marker == 1) { $marker_js = "\$.ajax({url:'" . $base . "/js/videojs.markers.js', dataType: 'script', success: function(){}});"; } $commands .= "'play':function(){\n new jBox('Notice', {\n content: 'Processing Voice Command: play'\n });\n player.play();\n },\n 'start':function(){\n new jBox('Notice', {\n content: 'Processing Voice Command: start'\n });\n\n player.play();\n },\n\n 'pause':function(){\n new jBox('Notice', {\n content: 'Processing Voice Command: pause'\n });\n\n player.pause();\n },\n\n 'stop':function(){\n new jBox('Notice', {\n content: 'Processing Voice Command: stop'\n });\n player.currentTime(0);\n player.pause();\n },\n\n 'refresh':function(){\n new jBox('Notice', {\n content: 'Processing Voice Command: refresh'\n });\n location.reload();\n },\n\n 'reload':function(){\n new jBox('Notice', {\n content: 'Processing Voice Command: reload'\n });\n location.reload();\n },\n\n '*term':function(term){\n \n new jBox('Notice', {\n content: 'Processing Voice Command: '+term\n });\n },\n\n\n "; $commands .= "}"; $code .= $commands; $code .= "\n\t\t\$(function(){\n\t\t\t\$.ajax({url:'" . $base . "/video-themes/video-js/video.js', dataType: 'script', success: function(){\n \$.ajax({url:'" . $base . "/js/videojs.custom.min.js', dataType: 'script', success: function(){\n \$.ajax({url:'" . $base . "/js/youtube.js', dataType: 'script', success: function(){}});\n \$.ajax({url:'" . $base . "/js/media.vimeo.js', dataType: 'script', success: function(){}});\n \$.ajax({url:'" . $base . "/js/annyang.min.js', dataType: 'script', success: function(){\n \n \n \n \$.get('" . $base . "/video/rcvitem?item=" . urlencode('jBox.css') . "', function(css)\n {\n \$('<style type=\"text/css\"></style>')\n .html(css)\n .appendTo('head');\n\n \$.ajax({url:'" . $base . "/js/jbox/jBox.js', dataType: 'script', success: function(){\n\n {$popup} \n\n setTimeout(function(){\n\n \$('.custom-overlays').mouseover();\n \$('.custom-overlays').mouseout();\n },1000);\n\n\n\n\n \$.get('" . $base . "/video/rcvitem?item=" . urlencode('froala_content.min.css') . "', function(css){\n \$('<style type=\"text/css\"></style>')\n .html(css)\n .appendTo('head');\n });\n\n \$.get('" . $base . "/video/rcvitem?item=" . urlencode('froala_style.min.css') . "', function(css){\n \$('<style type=\"text/css\"></style>')\n .html(css)\n .appendTo('head');\n });\n \n var voice_recognition = '{$ovr->enable_voice_recohnition}';\n\n if(annyang && voice_recognition=='1') {\n annyang.addCommands(commands);\n annyang.start();\n }\n\n }});\n\n\n });\n\n\n\n }});\n " . $marker_js . "\n \n\n \$.get('" . $base . "/video/rcvitem?item=" . urlencode('videojs.markers.css') . "', function(css){\n \$('<style type=\"text/css\"></style>')\n .html(css)\n .appendTo('head');\n });\n\n\n\n\t\t\t \$.get('" . $base . "/video/rcvitem?item=" . urlencode('video-js.css') . "', function(css)\n\t\t\t {\n \t\t\t \t\$('<style type=\"text/css\"></style>')\n \t\t\t.html(css)\n \t\t\t.appendTo('head');\n\t\t\t\t\t\n\t\t\t\t\$('<style type=\"text/css\"></style>')\n\t\t\t\t.html(custu_css)\n\t\t\t\t.appendTo('head');\n\t\t\t\t"; $main_css = $base . "/video-themes/theme-" . $model->theme . "/css/main.css"; $code .= "\n\n \$.get('" . $base . "/video/RcvThemecss?path=" . urlencode($main_css) . "', function(css2){\n \$('<style type=\"text/css\"></style>')\n .html(css2)\n .appendTo('head');\n });\n "; if ($model->overlay == "1") { $code .= "\$.ajax({url:'" . $base . "/video/rcvitem?item=" . urlencode("jquery.colorbox-min.js") . "', dataType: 'script', success: function(){\n\t\t\t\t\t \t\$.get('" . $base . "/video/rcvitem?item=" . urlencode("colorbox.css") . "', function(css)\n\t\t\t\t\t \t{\n\t\t\t \t\t\t \t\$('<style type=\"text/css\"></style>')\n\t\t\t \t\t\t.html(css)\n\t\t\t \t\t\t.appendTo('head');\n\t\t\t\t\t\t"; } if ($model->overlay == "2") { $code .= "\$.ajax({url:'" . $base . "/video/rcvitem?item=" . urlencode("jquery.colorbox-min.js") . "', dataType: 'script', success: function(){\n\t\t\t\t\t \t\$.get('" . $base . "/video/rcvitem?item=" . urlencode("colorbox.css") . "', function(css)\n\t\t\t\t\t \t{\n\t\t\t \t\t\t \t\$('<style type=\"text/css\"></style>')\n\t\t\t \t\t\t.html(css)\n\t\t\t \t\t\t.appendTo('head');\n\t\t\t\t\t\t"; } $code .= "startVjs();"; $shopablejs = ""; $temp_js = ''; if ($model->shopableimage != '' && $model->enable_shopableimage == 1) { $shopablejs = "\n \$('.overlays').css({top: ov_off.top , left: ov_off.left, height: ov_h, width: ov_w});\n \$('.overlays').find('.vigmgr_main_img').css({top: ov_off.top , left: ov_off.left, height: ov_h, width: ov_w,position:'absolute'});\n \n \$('.custom-overlays').show();\n player.pause(0);\n player.volume(0);\n \n \n setInterval(function(){\n\n \$('.custom-overlays').show();\n },0);\n \n "; $ov1 = "var ov_off = \$('#{$randId}').offset();\n var ov_h = '{$model->height}px';\n var ov_w = '{$model->width}px';\n console.log(ov_off);\n \$('.overlays').css({top: ov_off.top , left: ov_off.left, height: ov_h-30, width: ov_w});\n \$('.overlays').find('.vigmgr_main_img').css({top: ov_off.top , left: ov_off.left, height: ov_h, width: ov_w,position:'absolute'});\n \$('.custom-overlays').show();\n \$('.vjs-control-bar').hide().css('visibility','hidden');\n\n \n setInterval(function(){\n\n \$('.custom-overlays').show();\n \$('.vjs-control-bar').hide().css('visibility','hidden').remove();\n //player.pause();\n\n \n },0);\n\n setTimeout(function(){\n\n player.pause();\n },1000);\n\n "; } if ($model->overlay == "0") { $code .= "\n\n \n \n setTimeout(function(){\n\n setTimeout(function(){\n\n var ov_off = \$('#{$randId}').offset();\n var ov_h = \$('#{$randId}').height();\n var ov_w = \$('#{$randId}').width();\n console.log('developer');\n console.log(ov_off);\n console.log(\$('#{$randId}').position());\n \n\n \$('.overlays').css({top: ov_off.top , left: ov_off.left, height: ov_h-30, width: ov_w,position:'fixed'});\n \n \$( window ).resize(function() {\n var ov_off = \$('#{$randId}').offset();\n var ov_h = \$('#{$randId}').height();\n var ov_w = \$('#{$randId}').width();\n console.log('developer');\n console.log(ov_off);\n console.log(\$('#{$randId}').position());\n \$('.overlays').css({top: ov_off.top , left: ov_off.left, height: ov_h-30, width: ov_w,position:'fixed'});\n\n calculated_top = ov_off.top - \$(window).scrollTop();\n \$('.overlays').css({top: calculated_top});\n \n });\n\n \$(window).scroll(function() { //when window is scrolled\n ov_off = \$('#{$randId}').offset();\n calculated_top = ov_off.top - \$(window).scrollTop();\n calculated_left = ov_off.left - \$(window).scrollLeft();\n \$('.overlays').css({top: calculated_top,left:calculated_left});\n });\n\n },10);\n\n\n \n\n\n },1000);\n\n {$shopablejs}\n \n\n\n "; } if ($model->overlay == "1" || $model->overlay == "2") { $code .= "{$ov1}"; } if ($model->overlay >= "1") { $code .= "});\n\t\t\t\t\t}});"; } $code .= "\n\t\t\t });\n\t\t\t}});\n\n\n\t\t}});\n\t\t});\n\t}\n\t" . $bmFunc . "\n\t"; // header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' ); //header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' ); header('Cache-Control: no-cache, must-revalidate'); //header( 'Pragma: no-cache' ); header("application/x-javascript"); header("Content-Type: application/javascript"); header("X-Content-Type-Options: nosniff"); header("Access-Control-Allow-Origin: *"); echo $code; }
/** * Get path to a specific upload folder * @param string $subPath */ public static function uploadPath($subPath = null) { $path = poa('www') . '/../common/upload/'; return empty($subPath) ? $path : $path . $subPath; }