Exemple #1
0
    /**
     * Generate HTML for local video player
     *
     * @return string
     */
    function generate_local_file($params)
    {
        $random_id = JSNPagebuilderHelpersShortcode::generateRandomString();
        $video_size = array();
        $video_size['width'] = ' width="' . $params['video_local_dimension_width'] . '" ';
        $video_size['height'] = $params['video_local_dimension_height'] != '' ? ' height="' . $params['video_local_dimension_height'] . '" ' : '';
        $player_options = '{';
        $player_options .= $params['video_local_start_volume'] ? 'startVolume: ' . (int) $params['video_local_start_volume'] / 100 . ',' : '';
        $player_options .= $params['video_local_loop'] ? 'loop: ' . $params['video_local_loop'] . ',' : '';
        $_progress_bar_color = isset($params['video_local_progress_color']) ? '$(".mejs-time-loaded, .mejs-horizontal-volume-current", video_container).css("background", "none repeat scroll 0 0 ' . $params['video_local_progress_color'] . '");' : '';
        $params['video_local_elements'] = explode('__#__', $params['video_local_elements']);
        $player_elements = '';
        $player_elements .= in_array('play_button', $params['video_local_elements']) ? '' : '$(".mejs-playpause-button", video_container).hide();';
        $player_elements .= in_array('overlay_play_button', $params['video_local_elements']) ? '' : '$(".mejs-overlay-button", video_container).hide();';
        $player_elements .= in_array('current_time', $params['video_local_elements']) ? '' : '$(".mejs-currenttime-container", video_container).hide();';
        $player_elements .= in_array('time_rail', $params['video_local_elements']) ? '' : '$(".mejs-time-rail", video_container).hide();';
        $player_elements .= in_array('track_duration', $params['video_local_elements']) ? '' : '$(".mejs-duration-container", video_container).hide();';
        $player_elements .= in_array('volume_button', $params['video_local_elements']) ? '' : '$(".mejs-volume-button", video_container).hide();';
        $player_elements .= in_array('volume_slider', $params['video_local_elements']) ? '' : '$(".mejs-horizontal-volume-slider", video_container).hide();';
        $player_elements .= in_array('fullscreen_button', $params['video_local_elements']) ? '' : '$(".mejs-fullscreen-button", video_container).hide();';
        // Alignment
        $container_class = 'local_file ';
        $container_style = '';
        if ($params['video_alignment'] === 'right') {
            $container_style .= 'float: right;';
            $container_class .= 'clearafter ';
        } else {
            if ($params['video_alignment'] === 'center') {
                $container_style .= 'margin: 0 auto;';
            } else {
                if ($params['video_alignment'] === 'left') {
                    $container_style .= 'float: left;';
                    $container_class .= 'clearafter ';
                }
            }
        }
        // Genarate Container class
        $container_class = $container_class ? ' class="' . $container_class . '" ' : '';
        $player_options .= 'defaultVideoHeight:' . (intval($params['video_local_dimension_height']) - 10) . ',';
        $player_options .= 'success: function(mediaElement, domObject){

var video_container= $(domObject).parents(".mejs-container");
' . $player_elements . '
},';
        $player_options .= 'keyActions:[], pluginPath:"' . JSNPB_PLG_SYSTEM_ASSETS_URL . '3rd-party/mediaelement/' . '"}';
        if (isset($params['video_source_local']) && $params['video_source_local'] != '') {
            $script = '
			JoomlaShine.jQuery(document).ready(function ($){
			new MediaElementPlayer("#' . $random_id . '",
			' . $player_options . '
			);
			});';
            $document = JFactory::getDocument();
            $document->addScriptDeclaration($script, 'text/javascript');
        }
        $container_style .= isset($params['video_margin_left']) && $params['video_margin_left'] != '' ? 'margin-left:' . $params['video_margin_left'] . 'px;' : '';
        $container_style .= isset($params['video_margin_top']) && $params['video_margin_top'] != '' ? 'margin-top:' . $params['video_margin_top'] . 'px;' : '';
        $container_style .= isset($params['video_margin_right']) && $params['video_margin_right'] != '' ? 'margin-right:' . $params['video_margin_right'] . 'px;' : '';
        $container_style .= isset($params['video_margin_bottom']) && $params['video_margin_bottom'] != '' ? 'margin-bottom:' . $params['video_margin_bottom'] . 'px;' : '';
        // This under is the fix for Chrome video dimension issue
        $container_style .= 'width: ' . $params['video_local_dimension_width'] . 'px;';
        $container_style .= 'height: ' . ($params['video_local_dimension_height'] + 5) . 'px;';
        $container_style = $container_style ? ' style=" ' . $container_style . ' " ' : '';
        // Define the media type
        $src = JURI::root() . str_replace(' ', '+', urldecode($params['video_source_local']));
        $source = '<source type="%s" src="%s" />';
        $type = JSNPagebuilderHelpersShortcode::checkFiletype($src);
        $source = sprintf($source, $type['type'], $src);
        $poster = ' ';
        if (trim((string) $params['video_thumbnail_source_local']) != '') {
            $poster = ' poster="' . JURI::root() . $params['video_thumbnail_source_local'] . '" ';
        }
        $video = '<video' . $poster . 'id="' . $random_id . '" ' . $video_size['width'] . $video_size['height'] . ' controls="controls" preload="none" src="' . $src . '">
' . $source . '
</video>';
        return '<div ' . $container_class . $container_style . '>' . $video . '
</div><div class="clear:both"></div>';
    }
    /**
     * Generate HTML for local audio player
     */
    function generate_local_files($params)
    {
        $random_id = JSNPagebuilderHelpersShortcode::generateRandomString();
        $audio_size = array();
        $audio_size['width'] = ' width="' . $params['audio_local_dimension_width'] . '" ';
        $audio_size['height'] = $params['audio_local_dimension_height'] != '' ? ' height="' . $params['audio_local_dimension_height'] . '" ' : '';
        $player_options = '{';
        $player_options .= $params['audio_local_start_volume'] != '' ? 'startVolume: ' . (int) $params['audio_local_start_volume'] / 100 . ',' : '';
        $player_options .= $params['audio_local_loop'] != '' ? 'loop: ' . $params['audio_local_loop'] . ',' : '';
        if (!isset($params['audio_local_player_image'])) {
            $_player_color = isset($params['audio_local_player_color']) ? '$( ".mejs-mediaelement, .mejs-controls", audio_container ).css( "background", "none repeat scroll 0 0 ' . $params['audio_local_player_color'] . '" );' : '';
        } else {
            $_player_color = isset($params['audio_local_player_color']) ? '$( ".mejs-mediaelement, .mejs-controls", audio_container ).css( "background", "url(\'' . $params['audio_local_player_image'] . '\' ) repeat scroll 0 0 ' . $params['audio_local_player_color'] . '");' : '';
        }
        $_progress_bar_color = isset($params['audio_local_progress_color']) ? '$( ".mejs-time-loaded, .mejs-horizontal-volume-current", audio_container ).css( "background", "none repeat scroll 0 0 ' . $params['audio_local_progress_color'] . '" );' : '';
        $params['audio_local_elements'] = explode('__#__', $params['audio_local_elements']);
        $player_elements = '';
        $player_elements .= in_array('play_button', $params['audio_local_elements']) ? '' : '$( ".mejs-playpause-button", audio_container ).hide();';
        $player_elements .= in_array('current_time', $params['audio_local_elements']) ? '' : '$( ".mejs-currenttime-container", audio_container ).hide();';
        $player_elements .= in_array('time_rail', $params['audio_local_elements']) ? '' : '$( ".mejs-time-rail", audio_container ).hide();';
        $player_elements .= in_array('track_duration', $params['audio_local_elements']) ? '' : '$( ".mejs-duration-container", audio_container ).hide();';
        $player_elements .= in_array('volume_button', $params['audio_local_elements']) ? '' : '$( ".mejs-volume-button", audio_container ).hide();';
        $player_elements .= in_array('volume_slider', $params['audio_local_elements']) ? '' : '$( ".mejs-horizontal-volume-slider", audio_container ).hide();';
        $container_class = '';
        if ($params['audio_alignment'] === 'right') {
            $player_elements .= 'audio_container.css( "float", "right" )';
            $container_class .= 'clearafter ';
        } else {
            if ($params['audio_alignment'] === 'center') {
                $player_elements .= 'audio_container.css( "margin", "0 auto" )';
            } else {
                if ($params['audio_alignment'] === 'left') {
                    $player_elements .= 'audio_container.css( "float", "left" )';
                    $container_class .= 'clearafter ';
                }
            }
        }
        // Genarate Container class
        $container_class = $container_class ? ' class="' . $container_class . '" ' : '';
        $player_options .= 'success: function( mediaElement, domObject ){
			
			var audio_container	= $( domObject ).parents( ".mejs-container" );
			' . $player_elements . '
		},';
        $player_options .= 'keyActions:[]}';
        if (isset($params['audio_source_local']) && !empty($params['audio_source_local'])) {
            $script = 'JoomlaShine.jQuery( document ).ready( function ($ ){
				new MediaElementPlayer("#' . $random_id . '",
					' . $player_options . '
				);
			});';
            $document = JFactory::getDocument();
            $document->addScriptDeclaration($script, 'text/javascript');
        }
        $container_style = '';
        $container_style .= isset($params['audio_margin_left']) && $params['audio_margin_left'] != '' ? 'margin-left:' . $params['audio_margin_left'] . 'px;' : '';
        $container_style .= isset($params['audio_margin_top']) && $params['audio_margin_top'] != '' ? 'margin-top:' . $params['audio_margin_top'] . 'px;' : '';
        $container_style .= isset($params['audio_margin_right']) && $params['audio_margin_right'] != '' ? 'margin-right:' . $params['audio_margin_right'] . 'px;' : '';
        $container_style .= isset($params['audio_margin_bottom']) && $params['audio_margin_bottom'] != '' ? 'margin-bottom:' . $params['audio_margin_bottom'] . 'px;' : '';
        $container_style = $container_style ? ' style=" ' . $container_style . ' " ' : '';
        // Define the media type
        $src = str_replace(' ', '+', $params['audio_source_local']);
        $source = '<source type="%s" src="%s" />';
        $type = JSNPagebuilderHelpersShortcode::checkFiletype($src);
        $source = sprintf($source, $type['type'], $src);
        return '<div ' . $container_class . $container_style . '>
								<audio controls="controls" preload="none" ' . $audio_size['width'] . $audio_size['height'] . ' id="' . $random_id . '" src="' . $src . '" >
									' . $source . '
								</audio>
							</div><div style="clear: both"></div>';
    }