aboutsummaryrefslogtreecommitdiffstats
path: root/librevideojs.php
diff options
context:
space:
mode:
Diffstat (limited to 'librevideojs.php')
-rw-r--r--librevideojs.php241
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');