/** * Fetch Flowplayer Drive API authentication code * * @since 1.2.0 */ protected function make_auth_request() { // get the login info $options = fp5_get_settings(); $user_name = isset($options['user_name']) ? $options['user_name'] : ''; $password = isset($options['password']) ? $options['password'] : ''; if (!$user_name || !$password) { Flowplayer_Drive_Error::showLoginError(); return; } $seed = $this->make_auth_seed_request(); if (!$seed) { return; } $auth_api_url = add_query_arg(array('callback' => '?', 'username' => $user_name, 'hash' => sha1($user_name . $seed . $password), 'seed' => $seed), $this->account_api_url); $args = array('user-agent' => 'wp_flowplayer5/version_' . $this->plugin_version); $response = wp_remote_get(esc_url_raw($auth_api_url), $args); if (200 != wp_remote_retrieve_response_code($response)) { Flowplayer_Drive_Error::showAuthenticationApiError(); return; } $auth = $this->json_decode_body($response); if (!$auth->success) { Flowplayer_Drive_Error::showUsernamePasswordError(); return; } return $auth->result->authcode; }
/** * Return the player version. * * @since 1.0.0 * * @return Player version variable. */ public function get_player_version() { $options = fp5_get_settings(); if (isset($options['fp_version']) && 'fp6' === $options['fp_version']) { return '6.0.4'; } else { return '5.5.2'; } }
static function single_video_processing($atts) { $return = array(); /** * flowplayer shortcode * * @example [flowplayer id="123" splash="trailer_1080p.jpg" webm="trailer_1080p.webm" mp4="trailer_1080p.mp4" ogg="trailer_1080p.ogv" width="1920" height="1080" skin="functional" autoplay="true" loop="true" fixed="false" subtitles="bunny-en.vtt" fixed_controls="true" coloring="default" preload="auto"] */ $shortcode_defaults = array('id' => '', 'mp4' => '', 'webm' => '', 'ogg' => '', 'flash' => '', 'hls' => '', 'loop' => '', 'autoplay' => '', 'preload' => '', 'poster' => '', 'skin' => '', 'splash' => '', 'subtitles' => '', 'max_width' => '', 'width' => '', 'height' => '', 'ratio' => '', 'fixed' => '', 'rtmp' => '', 'quality' => '', 'qualities' => '', 'coloring' => '', 'fixed_controls' => '', 'background' => '', 'aside_time' => '', 'show_title' => '', 'no_hover' => '', 'no_mute' => '', 'no_volume' => '', 'no_embed' => '', 'live' => '', 'play_button' => '', 'ads_time' => '', 'ad_type' => '', 'description_url' => '', 'lightbox' => '', 'title' => ''); $atts = array_filter(shortcode_atts($shortcode_defaults, $atts, 'flowplayer')); if (!empty($atts['id'])) { $return['id'] = $atts['id']; // get the meta from the post type $custom_fields = get_post_custom($return['id']); $custom_fields['title'][0] = get_the_title($return['id']); } else { $return['id'] = substr(md5(serialize($atts)), 0, 5); $custom_fields = array(); } $loop = self::get_custom_fields($custom_fields, 'fp5-loop', $atts, 'loop'); $autoplay = self::get_custom_fields($custom_fields, 'fp5-autoplay', $atts, 'autoplay'); $preload = self::get_custom_fields($custom_fields, 'fp5-preload', $atts, 'preload'); $poster = self::get_custom_fields($custom_fields, 'fp5-poster', $atts, 'poster'); $skin = self::get_custom_fields($custom_fields, 'fp5-select-skin', $atts, 'skin', 'minimalist'); $formats = array('application/x-mpegurl' => self::get_custom_fields($custom_fields, 'fp5-hls-video', $atts, 'hls'), 'video/webm' => self::get_custom_fields($custom_fields, 'fp5-webm-video', $atts, 'webm'), 'video/mp4' => self::get_custom_fields($custom_fields, 'fp5-mp4-video', $atts, 'mp4'), 'video/ogg' => self::get_custom_fields($custom_fields, 'fp5-ogg-video', $atts, 'ogg'), 'video/flash' => self::get_custom_fields($custom_fields, 'fp5-flash-video', $atts, 'flash')); $subtitles = self::get_custom_fields($custom_fields, 'fp5-vtt-subtitles', $atts, 'subtitles'); $max_width = self::get_custom_fields($custom_fields, 'fp5-max-width', $atts, 'max_width'); $ratio = self::get_custom_fields($custom_fields, 'fp5-aspect-ratio', $atts, 'ratio'); $fixed = self::get_custom_fields($custom_fields, 'fp5-fixed-width', $atts, 'fixed'); $data_rtmp = self::get_custom_fields($custom_fields, 'fp5-data-rtmp', $atts, 'rtmp'); $quality = self::get_custom_fields($custom_fields, 'fp5-default-quality', $atts, 'quality'); $qualities = self::get_custom_fields($custom_fields, 'fp5-qualities', $atts, 'qualities'); $coloring = self::get_custom_fields($custom_fields, 'fp5-coloring', $atts, 'coloring'); $fixed_controls = self::get_custom_fields($custom_fields, 'fp5-fixed-controls', $atts, 'fixed_controls'); $background = self::get_custom_fields($custom_fields, 'fp5-no-background', $atts, 'background'); $aside_time = self::get_custom_fields($custom_fields, 'fp5-aside-time', $atts, 'aside_time'); $show_title = self::get_custom_fields($custom_fields, 'fp5-show-title', $atts, 'show_title'); $no_hover = self::get_custom_fields($custom_fields, 'fp5-no-hover', $atts, 'no_hover'); $no_mute = self::get_custom_fields($custom_fields, 'fp5-no-mute', $atts, 'no_mute'); $no_volume = self::get_custom_fields($custom_fields, 'fp5-no-volume', $atts, 'no_volume'); $no_embed = self::get_custom_fields($custom_fields, 'fp5-no-embed', $atts, 'no_embed'); $live = self::get_custom_fields($custom_fields, 'fp5-live', $atts, 'live'); $play_button = self::get_custom_fields($custom_fields, 'fp5-play-button', $atts, 'play_button'); $ads_time = self::get_custom_fields($custom_fields, 'fp5-ads-time', $atts, 'ads_time'); $ad_type = self::get_custom_fields($custom_fields, 'fp5-ad-type', $atts, 'ad_type'); $title = self::get_custom_fields($custom_fields, 'title', $atts, 'title'); $return['splash'] = self::get_custom_fields($custom_fields, 'fp5-splash-image', $atts, 'splash'); $return['width'] = self::get_custom_fields($custom_fields, 'fp5-width', $atts, 'width'); $return['height'] = self::get_custom_fields($custom_fields, 'fp5-height', $atts, 'height'); $return['description_url'] = self::get_custom_fields($custom_fields, 'fp5-description-url', $atts, 'description_url', get_permalink()); $return['lightbox'] = self::get_custom_fields($custom_fields, 'fp5-lightbox', $atts, 'lightbox'); // Global settings // set the options for the shortcode - pulled from the register-settings.php $options = fp5_get_settings(); $key = isset($options['key']) ? $options['key'] : ''; $ga_account_id = isset($options['ga_account_id']) ? $options['ga_account_id'] : ''; $logo = isset($options['logo']) ? $options['logo'] : ''; $logo_origin = isset($options['logo_origin']) ? $options['logo_origin'] : ''; $brand_text = isset($options['brand_text']) ? $options['brand_text'] : ''; $text_origin = isset($options['text_origin']) ? $options['text_origin'] : ''; $asf_test = isset($options['asf_test']) ? $options['asf_test'] : ''; $return['asf_js'] = isset($options['asf_js']) ? $options['asf_js'] : ''; $return['fp_version'] = isset($options['fp_version']) ? $options['fp_version'] : ''; // Shortcode processing $ratio = $return['width'] != 0 && $return['height'] != 0 ? intval($return['height']) / intval($return['width']) : ''; if ($fixed == 'true' && $return['width'] != '' && $return['height'] != '') { $size = 'width:' . $return['width'] . 'px; height:' . $return['height'] . 'px; '; } elseif ($max_width != 0) { $size = 'max-width:' . $max_width . 'px; '; } else { $size = ''; } $return['style'] = array($size, 'background-image: url(' . esc_url($return['splash']) . ');'); // Prepare div data config $return['data_config'] = array(); if (has_filter('fp5_filter_flowplayer_data')) { $return['data_config'] = array(0 < strlen($key) ? 'data-key="' . esc_attr($key) . '"' : '', 0 < strlen($key) && 0 < strlen($logo) ? 'data-logo="' . esc_url($logo) . '"' : '', 0 < strlen($ga_account_id) ? 'data-analytics="' . esc_attr($ga_account_id) . '"' : '', $ratio != 0 ? 'data-ratio="' . esc_attr($ratio) . '"' : '', !empty($data_rtmp) ? 'data-rtmp="' . esc_attr($data_rtmp) . '"' : '', !empty($quality) && !empty($qualities) ? 'data-default-quality="' . esc_attr($quality) . '"' : '', !empty($qualities) ? 'data-qualities="' . esc_attr($qualities) . '"' : ''); } // Prepare video tag data config $video_data_config = array(); if (!empty($title) && !empty($show_title)) { $video_data_config['title'] = esc_attr($title); } $return['video_data_config'] = apply_filters('fp5_video_data_config', $video_data_config, $return['id']); // Prepare JS config $js_brand_config = array(); if (!empty($brand_text)) { $js_brand_config['text'] = esc_attr($brand_text); } if (1 == $text_origin) { $js_brand_config['showOnOrigin'] = true; } $js_brand_config = apply_filters('fp5_js_brand_config', $js_brand_config, $return['id']); $js_config = array(); if (0 == $return['width'] && 0 == $return['height']) { $js_config['adaptiveRatio'] = true; } if ('true' == $live) { $js_config['live'] = esc_attr($live); } if ('true' == $no_embed) { $js_config['embed'] = false; } if (0 < strlen($key)) { $js_config['key'] = esc_attr($key); } if (0 < strlen($key) && 0 < strlen($logo)) { $js_config['logo'] = esc_url($logo); } if (0 < strlen($ga_account_id)) { $js_config['analytics'] = esc_attr($ga_account_id); } if ($ratio != 0) { $js_config['ratio'] = esc_attr($ratio); } if (!empty($data_rtmp)) { $js_config['rtmp'] = esc_attr($data_rtmp); } if (!empty($quality) && !empty($qualities)) { $js_config['defaultQuality'] = esc_attr($quality); } if (!empty($qualities)) { if ('fp6' === $return['fp_version']) { $js_config['qualities'] = explode(',', esc_attr($qualities)); } else { $js_config['qualities'] = esc_attr($qualities); } } if (0 < strlen($key)) { $js_config['brand'] = $js_brand_config; } $return['js_config'] = apply_filters('fp5_js_config', $js_config, $return['id']); $return['classes'] = array('flowplayer-video flowplayer-video-' . $return['id'], $skin, !empty($return['splash']) ? 'is-splash' : '', !empty($logo_origin) ? 'commercial' : '', isset($return['id']) ? 'flowplayer-' . $return['id'] : '', 'default' != $coloring ? $coloring : '', $fixed_controls ? 'fixed-controls' : '', $background ? 'no-background' : '', $aside_time ? 'aside-time' : '', $no_hover ? 'no-hover' : '', $no_mute ? 'no-mute' : '', $no_volume ? 'no-volume' : '', $play_button ? 'play-button' : ''); $return['attributes'] = array($autoplay == 'true' ? 'autoplay' : '', $loop == 'true' ? 'loop' : '', !empty($preload) ? 'preload="' . esc_attr($preload) . '"' : '', $poster == 'true' ? 'poster' : ''); $return['asf_test'] = !empty($asf_test) ? 'on' : 'off'; $ads_time = isset($ads_time) ? $ads_time : ''; $return['ads_time'] = 0 == $ads_time ? 0.01 : $ads_time; $return['ad_type'] = !empty($ad_type) ? esc_attr($ad_type) : ''; $return['source'] = array(); foreach ($formats as $format => $src) { if (!empty($src)) { $return['src'][$format] = apply_filters('fp5_filter_video_src', $src, $format, $return['id']); $return['source'][$format] = '<source type="' . esc_attr($format) . '" src="' . esc_attr($return['src'][$format]) . '">'; } } $return['track'] = ''; if ('' != $subtitles) { $return['track'] = '<track src="' . esc_url($subtitles) . '"/>'; } // Check if a video has been added before output if ($formats['video/webm'] || $formats['video/mp4'] || $formats['video/ogg'] || $formats['video/flash'] || $formats['application/x-mpegurl']) { return $return; } }
/** * Flowplayer global JavaScript settings. * * @since 1.0.0 */ public function global_config_script() { // set the options for the shortcode - pulled from the display-settings.php $options = fp5_get_settings(); $embed_library = !empty($options['library']) ? $options['library'] : ''; $embed_script = !empty($options['script']) ? $options['script'] : ''; $embed_skin = !empty($options['skin']) ? $options['skin'] : ''; $embed_swf = !empty($options['swf']) ? $options['swf'] : ''; $asf_js = !empty($options['asf_js']) ? $options['asf_js'] : ''; if (($embed_library || $embed_script || $embed_skin || $embed_swf) && $this->has_flowplayer_video) { $return = '<!-- flowplayer global options -->'; $return .= '<script>'; $return .= 'flowplayer.conf = {'; $return .= 'embed: {'; $return .= !empty($embed_library) ? 'library: "' . esc_js($embed_library) . '",' : ''; $return .= !empty($embed_script) ? 'script: "' . esc_js($embed_script) . '",' : ''; $return .= !empty($embed_skin) ? 'skin: "' . esc_js($embed_skin) . '",' : ''; $return .= !empty($embed_swf) ? 'swf: "' . esc_js($embed_swf) . '"' : ''; $return .= '}'; $return .= '};'; $return .= '</script>'; echo $return; } if ($asf_js) { ?> <script> flowplayer(function(api, root) { flowplayer_ima.create(api, root); }); </script> <?php } }