Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions flowplayer.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
}

global $fv_wp_flowplayer_ver;
$fv_wp_flowplayer_ver = '7.9.3.24';
$fv_wp_flowplayer_ver = '7.9.3.25';
$fv_wp_flowplayer_core_ver = '7.2.14.11';
include_once( dirname( __FILE__ ) . '/includes/extra-functions.php' );
if( file_exists( dirname( __FILE__ ) . '/includes/module.php' ) ) {
Expand Down Expand Up @@ -96,7 +96,7 @@
if( version_compare(phpversion(),'5.5.0') != -1 ) {
include_once(dirname( __FILE__ ) . '/models/media-browser.php');
}

if( version_compare(phpversion(),'7.3.5') != -1 ) {
include_once(dirname( __FILE__ ) . '/models/media-browser-s3.php');

Expand Down Expand Up @@ -128,6 +128,8 @@

include_once(dirname( __FILE__ ) . '/models/youtube.php');

include_once(dirname( __FILE__ ) . '/models/related-videos.php');

add_action('plugins_loaded', 'fv_player_bunny_stream_include' );

if( !function_exists( 'fv_player_bunny_stream_include' ) && version_compare(PHP_VERSION, '5.2.17') >= 0 ) {
Expand Down
2 changes: 1 addition & 1 deletion flowplayer/fv-player.min.js

Large diffs are not rendered by default.

34 changes: 26 additions & 8 deletions flowplayer/modules/overlay-popup.module.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ flowplayer(function (api,root) {
current_overlay = false;

if( root.data('end_popup_preview') ){
jQuery(document).ready( function() {
jQuery(document).ready( function() {
api.trigger('finish', [ api] );
});
}

function overlay_height_check() {
var count = 0;
var overlay_height_check = setInterval( function() {
Expand All @@ -23,7 +23,7 @@ flowplayer(function (api,root) {
}
}, 50 );
}

function show_overlay() {
var overlay_data = root.attr('data-overlay');
if( typeof(overlay_data) !='undefined' && overlay_data.length ) {
Expand Down Expand Up @@ -65,7 +65,24 @@ flowplayer(function (api,root) {
}
}
}


function show_related_videos() {
var related_videos = root.attr('data-related-videos');

if( typeof(related_videos) !='undefined' && related_videos.length ) {
try {
related_videos = JSON.parse(related_videos);
} catch (e) {
return false;
}
}

if( related_videos && related_videos.html ) {
root.addClass('is-popup-showing');
root.find('.fp-player').append( '<div id="'+player_id+'_custom_popup" class="wpfp_custom_popup">'+related_videos.html+'</div>' );
}
}

api.bind("ready", function () {
if (current_overlay.length == 1) {
current_overlay.remove();
Expand All @@ -74,7 +91,7 @@ flowplayer(function (api,root) {
if( !root.data('overlay_show_after') ) {
show_overlay();
}

}).bind('progress', function(e,api,current) {
if (current > root.data('overlay_show_after') ){
show_overlay();
Expand All @@ -85,6 +102,7 @@ flowplayer(function (api,root) {
}
}).bind("pause", function (e) {
show_popup(e.type); // todo: only if showing on pause is enabled or FV Player PPV
show_related_videos();
}).bind("resume unload seek", function () {
if( root.hasClass('is-popup-showing') ) {
root.find('.wpfp_custom_popup').remove();
Expand All @@ -96,10 +114,10 @@ flowplayer(function (api,root) {
jQuery(document).on('click', '.fv_fp_close', function() {
var current_overlay = jQuery(this).parents('.wpfp_custom_ad_content'),
video = current_overlay.find('video');

current_overlay.fadeOut();
if( video.length ) video[0].pause();

return false;
} );

Expand All @@ -113,4 +131,4 @@ jQuery(document).on('focus','.fv_player_popup input[type=text], .fv_player_popup
jQuery(document).on('blur','.fv_player_popup input[type=text], .fv_player_popup input[type=email], .fv_player_popup textarea', function() {
var api = jQuery(this).parents('.flowplayer').data('flowplayer');
if( api ) api.disable(false);
});
});
104 changes: 104 additions & 0 deletions models/related-videos.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
<?php

if( !class_exists('FV_Player_Related_Videos') ) :

class FV_Player_Related_Videos {

public $max_related_videos = 4;
public $max_related_posts = 10;

function __construct() {
add_filter('fv_flowplayer_attributes', array($this, 'related_videos_popup'), 10, 3);
}

public function related_videos_popup($attributes, $media, $player) {
if( !function_exists('yarpp_get_related') ) {
return $attributes;
}

// prevent player duplicate
remove_shortcode('fvplayer');

// get related posts
$related_posts = yarpp_get_related(
array(
'limit' => $this->max_related_posts, // maximum number of related entries to return
'order' => 'score DESC', // column on "wp_posts" to order by, then a space, and whether to order in ascending ("ASC") or descending ("DESC") order
'promote_yarpp' => false, // boolean indicating whether to add 'Powered by YARPP' below related posts
'post_type' => array('post', 'page'), // post types to include in results
));

// add shortcode back
add_shortcode('fvplayer','flowplayer_content_handle');

if( !is_array($related_posts ) ) {
return $attributes;
}

global $wpdb;

// get all player meta
$player_meta_all = $wpdb->get_results("SELECT * FROM `{$wpdb->prefix}fv_player_playermeta` WHERE meta_key = 'post_id'");

// html for related videos
$related_videos_html = '';

// keep track of related videos count
$current_related_videos = 0;

// loop through related posts
foreach($related_posts as $related_post) {
$post_id = $related_post->ID;

// loop through player meta
foreach($player_meta_all as $player_meta) {

// if player meta is for this post
if( $player_meta->meta_value == $post_id ) {
$id_player = $player_meta->id_player;

// get player data
$player_data = $wpdb->get_row("SELECT p.id, videos, v.id, src, splash FROM `{$wpdb->prefix}fv_player_players` AS p JOIN wp_fv_player_videos AS v ON find_in_set( v.id, p.videos ) WHERE p.id = $id_player");

if( !$player_data ) {
continue;
}

$splash_img = '';

// check if there is splash
if( $player_data->splash ) {
$splash_img = apply_filters( 'fv_flowplayer_resource', $player_data->splash );
} else {
$splash_img = get_the_post_thumbnail($post_id, 'thumbnail');
}

$related_videos_html .= '<div class="fv_player_related_video"><a href="'.get_permalink($post_id).'"><img src="'.$splash_img.'" alt="'.get_the_title($post_id).'" /></a><a href="'.get_permalink($post_id).'">'.get_the_title($post_id).'</a></div>';

$current_related_videos++;

if( $current_related_videos >= $this->max_related_videos ) {
break 2;
}

}
}

}

if( $related_videos_html ) {
$popup = '<div class="fv_player_popup wpfp_custom_popup_content fv_player_related_videos_wrap"><p>'.__('Related videos','fv-player-ppv') .'</p>' . '<div class="fv_player_related_videos">' . $related_videos_html . '</div></div>';

$attributes['data-related-videos'] = $player->json_encode( array( 'html' => $popup ) );
}

return $attributes;
}

}


global $FV_Player_Related_Videos;
$FV_Player_Related_Videos = new FV_Player_Related_Videos;

endif;