diff options
Diffstat (limited to 'librevideojs.php')
-rw-r--r-- | librevideojs.php | 241 |
1 files changed, 241 insertions, 0 deletions
diff --git a/librevideojs.php b/librevideojs.php new file mode 100644 index 0000000..fb1d025 --- /dev/null +++ b/librevideojs.php @@ -0,0 +1,241 @@ +<?php + +/* Implementación de LibreVideoJS +==============================================================================================*/ +include_once 'libre-panel.php'; + +if (!class_exists('LIBREVIDEOJS')){ + + class LIBREVIDEOJS{ + + var $L_version = '2.0'; + + function __construct(){ + define('L_VERSION', $this->L_version); + $this->theme_includes(); + } + + function theme_includes(){ + if (!is_admin()) { + add_action('wp_enqueue_scripts', 'librevideojs_base'); + add_shortcode('librevideojs_video', 'LibreVideoJS_embed'); + //allows shortcode execution in the widget, excerpt and content + add_filter('widget_text', 'do_shortcode'); + add_filter('the_excerpt', 'do_shortcode', 11); + add_filter('the_content', 'do_shortcode', 11); + } + } + } + + $GLOBALS['easy_video_player'] = new LIBREVIDEOJS(); + new librevideojs_panel_shortcode(); +} + +function librevideojs_base(){ + global $post, $theme_url; + $theme_url = get_bloginfo('template_url', __FILE__); + if ( ( is_author() || is_page() || is_single() ) && strpos($post->post_content, '[librevideojs_video') !== false ){ + wp_enqueue_style('lvjs-mix-master', $theme_url . '/css/mix-material/master.min.css', array(), '1.4'); + wp_enqueue_script('LibreVideoJS', $theme_url . '/js/cliplibrejs.developer.min.js', array(), L_VERSION); + wp_enqueue_script('jquery-libre', $theme_url . '/js/jquery-3.1.1.min.js', array(), '3.1.1', true); + } + else { + return false; + } +} + +function LibreVideoJS_embed($atts, $content=null){ + extract(shortcode_atts(array( + 'url' => '', + 'url_calidad' => '', + 'code' => '', + 'selector' => '', + 'width' => '', + 'controls' => '', + 'preload' => 'auto', + 'autoplay' => 'false', + 'loop' => '', + 'muted' => '', + 'poster' => '', + 'skin' => '', + 'class' => '', + ), $atts)); + + if(empty($url)){ + return __('you need to specify the src of the video file', 'Lidra'); + } + //src + $src = '<source data-res="'.$url_calidad.'" src="'.$url.'" type="video/'.$code.'"/>'; + + //resolution selector + if(!empty($selector)){ + $resolution = "$selector"; + } + else { + $resolution = "$url_calidad"; + } + + //controls + if($controls == "false"){ + $controls = ""; + } + else{ + $controls = " controls"; + } + + //preload + if($preload == "metadata"){ + $preload = ' preload="metadata"'; + } + else if($preload == "none"){ + $preload = ' preload="none"'; + } + else{ + $preload = ' preload="auto"'; + } + + //autoplay + if($autoplay == "true"){ + $autoplay = " autoplay"; + } + else{ + $autoplay = ""; + } + + //loop + if($loop == "true"){ + $loop = " loop"; + } + else{ + $loop = ""; + } + + //muted + if($muted == "true"){ + $muted = " muted"; + } + else{ + $muted = ""; + } + + //Tracks + if(!is_null( $content )){ + $track = do_shortcode($content); + } + else{ + $track = ""; + } + + //Qualities + if(!is_null( $content = '' )){ + $calidades = do_shortcode($content); + } + else{ + $calidades = ""; + } + + //skin theme + if(!empty($skin)){ + $_skin = "$skin"; + } + else{ + $_skin= "mixteal"; + } + + //poster + if(!empty($poster)){ + $poster = " poster='$poster'"; + } + $player = "librevideojs" . uniqid(); + + //languages + $_no_html5 = __('Sorry, this video will not work because your web browser does not support HTML5 video. Please, change or update your browser', 'Lidra'); + + $_no_browser = '<p class="no_html5">' . $_no_html5 . '</p>'; + + //custom style + $style = ''; + if(!empty($width)){ + $style = <<<EOT + <style> + $player { + max-width:{$width}px; + } + </style> +EOT; + + } + $output = <<<EOT + <div class="LibreVideoJS"> + <video id="$player" class="cliplibre-js-responsive-container librevjs-hd cliplibre-js librevjs-libre-{$_skin}-skin" {$controls}{$preload}{$autoplay}{$loop}{$muted}{$poster} data-setup='{}'> + {$src}\n\t\t{$calidades}{$track}{$_no_browser} + </video> + </div> + <script> + cliplibrejs('$player',{plugins:{resolutionSelector:{force_types:['video/webm','video/ogg','video/mp4'],default_res:"$resolution",}},nativeControlsForTouch:false}).ready(function(){this.hotkeys({volumeStep:0.1,seekStep:5,enableMute:true,enableFullscreen: true,enableNumbers:true}),this.progressTips();}); + </script> + $style +EOT; + return $output; +} + +/*Adding subtitles using... [track]*/ +function track_shortcode($atts, $content=null){ + extract(shortcode_atts(array( + 'kind' => '', + 'subt' => '', + 'srclang' => '', + 'label' => '', + 'default' => '', + ), $atts)); + + if($kind){ + $kind = " kind='$kind'"; + } + + if($subt){ + $subt = " src='$subt'"; + } + + if($srclang){ + $srclang = " srclang='$srclang'"; + } + + if($label){ + $label = " label='$label'"; + } + + if($default == "true" || $default == "default"){ + $default = " default"; + } + else{ + $default = ""; + } + + $track = "<track" . $kind . $subt . $srclang . $label . $default . "/>\n\t\t"; + + return $track; +} +add_shortcode('track', 'track_shortcode'); + +/*Adding qualities*/ +function calidades_shortcode($atts, $content=null){ + extract(shortcode_atts(array( + 'lvjs_calidad' => '', + 'src_video' => '', + 'lvjs_code' => '', + ), $atts)); + + if($lvjs_calidad){ + $lvjs_calidad = " data-res='$lvjs_calidad'"; + } + + if($src_video){ + $src_video = " src='$src_video'"; + } + + $calidades = "<source" . $lvjs_calidad . $src_video . " type='video/".$lvjs_code."'/>\n\t\t"; + + return $calidades; +} +add_shortcode('calidades', 'calidades_shortcode'); |