• hi all, just posted this on the flowplayer forums. just made my first wordpress plugin. VERY crude one to embed flowplayer. thought i’d share it. copyleft so feel free to improve it! thanks to both Realivent.com’s lightbox plugin and Asymptomatic’s simple wordpress plugin tutorial for showing me how to do this.

    TO INSTALL:
    – save code below as fp4wp.php inside a fp4wp folder in the plugins folder.
    – copy the flowplayer folder inside this folder too.
    – in the backend go to options > miscellaneous and uncheck the option to organise uploads
    – set the 2 global variables at the top of the code accordingly, for example, if your wordpress install was in your site root it would look like:
    $fp4wp_uploads_path = ‘/wp-content/uploads/’;
    $fp4wp_plugins_path = ‘/wp-content/plugins/’;
    – go to plugins in the backend and click activate.

    TO USE:
    – upload a media file when writing/editing a post/page.
    – type [PLAYER=filename] wherever you wish to insert the player, replacing filename with the actual filename and extension.
    – one set of code is embedded for mp3 files and another for the rest. just edit the options in the source below.

    This could obviously be greatly improved by someone who knows more about wordpress plugins but I hope someone gets some use out of it anyway!

    CODE:

    <?php
    /*
    Plugin Name: fp4wp
    Plugin URI: https://renechristen.net
    Description: Embed FlowPlayer in WordPress.
    Version: 1.0
    Author: Rene Christen
    Author URI: https://renechristen.net
    */
    ?>
    <?php
    $fp4wp_uploads_path = ‘/wp-content/uploads/’;
    $fp4wp_plugins_path = ‘/wp-content/plugins/’;

    add_filter(‘the_content’, ‘fp4wp_the_content’);
    function fp4wp_the_content( $content )
    {
    // AUDIO
    $search = “/\[PLAYER=(.*\.mp3)\]/”; // audio: mp3
    preg_match_all($search, $content, $audio_matches);

    if (is_array($audio_matches[1]))
    {
    foreach ($audio_matches[1] as $filename)
    {
    $search = “[PLAYER=”.$filename.”]”;
    $replace = fp4wp_audio($filename);
    $content = str_replace ($search, $replace, $content);
    }
    }

    // VIDEO
    $search = “/\[PLAYER=(.*)\]/”; // video: mp4, m4v, m4a, mov, 3gp
    preg_match_all($search, $content, $video_matches);

    if (is_array($video_matches[1]))
    {
    foreach ($video_matches[1] as $filename)
    {
    $search = “[PLAYER=”.$filename.”]”;
    $replace = fp4wp_video($filename);
    $content = str_replace ($search, $replace, $content);
    }
    }

    return $content;
    }

    function fp4wp_audio($filename) { //.mp3,
    global $fp4wp_uploads_path;
    global $fp4wp_plugins_path;

    $string = ‘<object type=”application/x-shockwave-flash” data=”‘
    . $fp4wp_plugins_path . ‘fp4wp/flowplayer/FlowPlayer.swf” width=”320″ height=”22″ id=”FlowPlayer”><param name=”allowScriptAccess” value=”sameDomain” />
    <param name=”movie” value=”/heart/flowplayer/FlowPlayer.swf” />
    <param name=”quality” value=”high” />
    <param name=”scale” value=”noScale” />
    <param name=”wmode” value=”transparent” />
    <param name=”flashvars” value=”config={playList:[{ url: \”
    . $fp4wp_uploads_path . $filename . ‘\’, },],
    showPlayListButtons: false,
    loop: false,
    autoPlay: false,
    hideControls: false,
    showFullScreenButton: false,
    showMenu: false,
    showLoopButton: false,
    initialScale: \’orig\’,
    autoBuffering: false }); fo.write(\’fp1\’);}” /></object>’;

    return $string;
    }

    function fp4wp_video($filename) { //.mp4,.m4v,.m4a,.mov,.3gp
    $string = ‘<object type=”application/x-shockwave-flash” data=”‘
    . $fp4wp_plugins_path . ‘fp4wp/flowplayer/FlowPlayer.swf” width=”320″ height=”262″ id=”FlowPlayer”><param name=”allowScriptAccess” value=”sameDomain” />
    <param name=”movie” value=”/heart/flowplayer/FlowPlayer.swf” />
    <param name=”quality” value=”high” />
    <param name=”scale” value=”noScale” />
    <param name=”wmode” value=”transparent” />
    <param name=”flashvars” value=”config={videoFile: \”
    . $fp4wp_uploads_path . $filename . ‘\’},
    showPlayListButtons: true,
    loop: false,
    autoPlay: false,
    hideControls: false,
    showFullScreenButton: true,
    showMenu: false,
    showLoopButton: false,
    initialScale: \’orig\’,
    autoBuffering: false }); fo.write(\’fp1\’);}” /></object>’;

    return $string;
    }

    ?>

Viewing 10 replies - 1 through 10 (of 10 total)
  • Thanks for this!

    There is an error in the code which creates erroneous paths. In the function fp4wp_video you forgot to declare these variables as globals:

    global $fp4wp_uploads_path;
    global $fp4wp_plugins_path;

    Thanks, works well.

    NB: the embed tag needs to be updated in both audio and video formats if you want it to work in IE. File src should be same as the object tag.

    Okay, a few hopefully simple questions:

    1. Where do I actually FTP the flv movie file I’m trying to play within a post? Or should I use the upload button on the “Manage – Post” page?

    2. What does “heart” mean here in this line: <param name=”movie” value=”/heart/flowplayer/FlowPlayer.swf” />

    3. Where do you specify WHICH specific Flow player you want to use (classic, light, dark etc)?

    4. I got this error message when I put [PLAYER=filename] in my post…maybe it’s complaining that I haven’t actually specified a file name?

    Warning: Cannot modify header information – headers already sent by (output started at /home/scrow9/public_html/wp-content/plugins/fp4wp/fp4wp.php:96) in /home/scrow9/public_html/wp-includes/pluggable.php on line 391

    Thread Starter nay

    (@nay)

    Thanks for all the feedback guys and sorry I haven’t been keeping an eye on this thread.

    There is an error in the code which creates erroneous paths. In the function fp4wp_video you forgot to declare these variables as globals:

    global $fp4wp_uploads_path;
    global $fp4wp_plugins_path;

    thanks. fixed below.

    NB: the embed tag needs to be updated in both audio and video formats if you want it to work in IE. File src should be same as the object tag.

    thanks. fixed below.

    1. Where do I actually FTP the flv movie file I’m trying to play within a post? Or should I use the upload button on the “Manage – Post” page?

    you can change this line to wherever you want to upload your files:
    $fp4wp_uploads_path = ‘/wp-content/uploads/’;

    2. What does “heart” mean here in this line: <param name=”movie” value=”/heart/flowplayer/FlowPlayer.swf” />

    sorry, ‘heart’ was just the local folder i had my install in. I’ll delete it below to save confusion.

    3. Where do you specify WHICH specific Flow player you want to use (classic, light, dark etc)?

    to change the default skin, you need to specify a different player than ‘FlowPlayer.swf’ – check the flow player documentation for more info.

    4. I got this error message when I put [PLAYER=filename] in my post…maybe it’s complaining that I haven’t actually specified a file name?

    try specifying a file name once you have it set up correctly.

    okay, so here’s the updated code:

    /********************************/
    <?php
    /*
    Plugin Name: fp4wp
    Plugin URI: https://renechristen.net
    Description: Embed FlowPlayer in WordPress.
    Version: 1.1
    Author: Rene Christen
    Author URI: https://renechristen.net
    */
    ?>
    <?php
    $fp4wp_uploads_path = '/wp-content/uploads/';
    $fp4wp_plugins_path = '/wp-content/plugins/';
    
    add_filter('the_content', 'fp4wp_the_content');
    function fp4wp_the_content( $content )
    {
    	// AUDIO
    	$search = "/\[PLAYER=(.*\.mp3)\]/"; //.mp3
    	preg_match_all($search, $content, $audio_matches);
    
    	if (is_array($audio_matches[1]))
    	{
    		foreach ($audio_matches[1] as $filename)
    		{
    			$search = "[PLAYER=".$filename."]";
    			$replace = fp4wp_audio($filename);
    			$content = str_replace ($search, $replace, $content);
    		}
    	}
    
    	// VIDEO
    	$search = "/\[PLAYER=(.*)\]/"; //.mp4,.m4v,.m4a,.mov,.3gp,.flv etc...
    	preg_match_all($search, $content, $video_matches);
    
    	if (is_array($video_matches[1]))
    	{
    		foreach ($video_matches[1] as $filename)
    		{
    			$search = "[PLAYER=".$filename."]";
    			$replace = fp4wp_video($filename);
    			$content = str_replace ($search, $replace, $content);
    		}
    	}
    
    	return $content;
    }
    
    function fp4wp_audio($filename) { //.mp3
    	global $fp4wp_uploads_path;
    	global $fp4wp_plugins_path;
    
    	$string = '<object type="application/x-shockwave-flash" data="'
    	. $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayer.swf" width="320" height="22" id="FlowPlayer"><param name="allowScriptAccess" value="sameDomain" />
    	<param name="movie" value="' .  $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayer.swf" />
    	<param name="quality" value="high" />
    	<param name="scale" value="noScale" />
    	<param name="wmode" value="transparent" />
    	<param name="flashvars" value="config={playList:[{ url: \''
    	. $fp4wp_uploads_path . $filename . '\', },],
    	showPlayListButtons: false,
    	loop: false,
    	autoPlay: false,
    	hideControls: false,
    	showFullScreenButton: false,
    	showMenu: false,
    	showLoopButton: false,
    	initialScale: \'orig\',
    	autoBuffering: false }); fo.write(\'fp1\');}" /></object>';
    
    	return $string;
    }
    
    function fp4wp_video($filename) { //.mp4,.m4v,.m4a,.mov,.3gp,.flv etc...
    	global $fp4wp_uploads_path;
    	global $fp4wp_plugins_path;
    
    	$string = '<object type="application/x-shockwave-flash" data="'
    	. $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayer.swf" width="320" height="262" id="FlowPlayer"><param name="allowScriptAccess" value="sameDomain" />
    	<param name="movie" value="' .  $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayer.swf" />
    	<param name="quality" value="high" />
    	<param name="scale" value="noScale" />
    	<param name="wmode" value="transparent" />
    	<param name="flashvars" value="config={videoFile: \''
    	. $fp4wp_uploads_path . $filename . '\'},
    	showPlayListButtons: true,
    	loop: false,
    	autoPlay: false,
    	hideControls: false,
    	showFullScreenButton: true,
    	showMenu: false,
    	showLoopButton: false,
    	initialScale: \'orig\',
    	autoBuffering: false }); fo.write(\'fp1\');}" /></object>';
    
    	return $string;
    }
    
    ?>

    Hi Rene,
    thanks for this. The plugin worked fine, however I noticed, the video config parameters weren’t pickup when playing a video. I changed the PHP code where the <param name=”flashvars” value=”config={videoFile: \”
    . $fp4wp_uploads_path . $filename . ‘\’},
    and removed the }.

    The below code now works fine.

    //********************************************************

    <?php
    /*
    Plugin Name: fp4wp
    Plugin URI: https://renechristen.net
    Description: Embed FlowPlayer in WordPress.
    Version: 1.1
    Author: Rene Christen
    Author URI: https://renechristen.net
    */
    ?>
    <?php
    $fp4wp_uploads_path = '/wp-content/uploads/';
    $fp4wp_plugins_path = '/wp-content/plugins/';
    
    add_filter('the_content', 'fp4wp_the_content');
    function fp4wp_the_content( $content )
    {
    	// AUDIO
    	$search = "/\[PLAYER=(.*\.mp3)\]/"; //.mp3
    	preg_match_all($search, $content, $audio_matches);
    
    	if (is_array($audio_matches[1]))
    	{
    		foreach ($audio_matches[1] as $filename)
    		{
    			$search = "[PLAYER=".$filename."]";
    			$replace = fp4wp_audio($filename);
    			$content = str_replace ($search, $replace, $content);
    		}
    	}
    
    	// VIDEO
    	$search = "/\[PLAYER=(.*)\]/"; //.mp4,.m4v,.m4a,.mov,.3gp,.flv etc...
    	preg_match_all($search, $content, $video_matches);
    
    	if (is_array($video_matches[1]))
    	{
    		foreach ($video_matches[1] as $filename)
    		{
    			$search = "[PLAYER=".$filename."]";
    			$replace = fp4wp_video($filename);
    			$content = str_replace ($search, $replace, $content);
    		}
    	}
    
    	return $content;
    }
    
    function fp4wp_audio($filename) { //.mp3
    	global $fp4wp_uploads_path;
    	global $fp4wp_plugins_path;
    
    	$string = '<object type="application/x-shockwave-flash" data="'
    	. $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayerLight.swf" width="320" height="22" id="FlowPlayer"><param name="allowScriptAccess" value="sameDomain" />
    	<param name="movie" value="' .  $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayerLight.swf" />
    	<param name="quality" value="high" />
    	<param name="scale" value="noScale" />
    	<param name="wmode" value="transparent" />
    	<param name="flashvars" value="config={playList:[{ url: \''
    	. $fp4wp_uploads_path . $filename . '\', },],
    	showPlayListButtons: false,
    	loop: false,
    	autoPlay: false,
    	hideControls: false,
    	showFullScreenButton: false,
    	showMenu: false,
    	showLoopButton: false,
    	initialScale: \'orig\',
    	autoBuffering: false }" /></object>';
    
    	return $string;
    }
    
    function fp4wp_video($filename) { //.mp4,.m4v,.m4a,.mov,.3gp,.flv etc...
    	global $fp4wp_uploads_path;
    	global $fp4wp_plugins_path;
    
    	$string = '<object type="application/x-shockwave-flash" data="'
    	. $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayerLight.swf" width="510" height="426" id="FlowPlayer"><param name="allowScriptAccess" value="sameDomain" />
    	<param name="movie" value="' .  $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayerLight.swf" />
    	<param name="quality" value="high" />
    	<param name="scale" value="noScale" />
    	<param name="wmode" value="transparent" />
    	<param name="flashvars" value="config={videoFile: \''
    	. $fp4wp_uploads_path . $filename . '\',
    	showPlayListButtons: false,
    	showFullScreenButton: false,
    	loop: false,
    	usePlayOverlay: true,
    #	splashImageFile: \'image.jpg\',			//place splash image file here
    	autoPlay: false,
    	showMenu: true,
    	initialScale: \'fit\',
    	autoBuffering: true 	 }" /></object>';
    	return $string;
    }
    
    ?>

    how does the plug in folder looks like?

    does the flowplayer library content needs to be added to the plugin root?

    With the last changes, the plugin worked well for me. I really wanted to have the ability to add my own splash file per movie instance. so I added support/argument to do so.

    In the code below you need to specify the call:
    [PLAYER=file.flv splash=splash.jpg]

    hope others might find it useful.

    <?php
    /*
    Plugin Name: fp4wp
    Plugin URI: https://renechristen.net
    Description: Embed FlowPlayer in WordPress.
    Version: 1.1
    Author: Rene Christen
    Author URI: https://renechristen.net
    */
    ?>
    <?php
    $fp4wp_uploads_path = '/wp/wp-content/uploads/movies/';
    $fp4wp_plugins_path = '/wp/wp-content/plugins/';
    $url = 'https://domain.com';
    
    add_filter('the_content', 'fp4wp_the_content');
    function fp4wp_the_content( $content )
    {
    	// AUDIO
    	$search = "/\[PLAYER=(.*\.mp3)\]/"; //.mp3
    	preg_match_all($search, $content, $audio_matches);
    
    	if (is_array($audio_matches[1]))
    	{
    		foreach ($audio_matches[1] as $filename)
    		{
    			$search = "[PLAYER=".$filename."]";
    			$replace = fp4wp_audio($filename);
    			$content = str_replace ($search, $replace, $content);
    		}
    	}
    
    	// VIDEO
    	$search = "/\[PLAYER=(.*) splash=(.*)\]/"; //.mp4,.m4v,.m4a,.mov,.3gp,.flv etc...
    	preg_match_all($search, $content, $video_matches);
    
    	if (is_array($video_matches[1]))
    	{
    		foreach ($video_matches[1] as $filename)
    		{
    			//echo $filename;
    			$splashname = $video_matches[2][0];
    			$search = "[PLAYER=".$filename." splash=".$splashname."]";
    			$replace = fp4wp_video($filename, $splashname);
    			$content = str_replace ($search, $replace, $content);
    		}
    	}
    
    	return $content;
    }
    
    function fp4wp_audio($filename) { //.mp3
    	global $fp4wp_uploads_path;
    	global $fp4wp_plugins_path;
    
    	$string = '<object type="application/x-shockwave-flash" data="'
    	. $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayerLight.swf" width="320" height="22" id="FlowPlayer"><param name="allowScriptAccess" value="sameDomain" />
    	<param name="movie" value="' .  $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayerLight.swf" />
    	<param name="quality" value="high" />
    	<param name="scale" value="noScale" />
    	<param name="wmode" value="transparent" />
    	<param name="flashvars" value="config={playList:[{ url: \''
    	. $fp4wp_uploads_path . $filename . '\', },],
    	showPlayListButtons: false,
    	loop: false,
    	autoPlay: false,
    	hideControls: false,
    	showFullScreenButton: false,
    	showMenu: false,
    	showLoopButton: false,
    	initialScale: \'orig\',
    	autoBuffering: false }" /></object>';
    
    	return $string;
    }
    
    function fp4wp_video($filename, $splashname) { //.mp4,.m4v,.m4a,.mov,.3gp,.flv etc...
    	global $fp4wp_uploads_path;
    	global $fp4wp_plugins_path;
    	global $url;
    
    	$string = '<object type="application/x-shockwave-flash" data="'
    	. $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayerLP.swf" width="510" height="426" id="FlowPlayer"><param name="allowScriptAccess" value="sameDomain" />
    	<param name="movie" value="' .  $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayerLP.swf" />
    	<param name="quality" value="high" />
    	<param name="scale" value="noScale" />
    	<param name="wmode" value="transparent" />
    	<param name="flashvars" value="config={
           controlBarBackgroundColor: -1,
    	   controlBarGloss: \'none\',
    	   controlsOverVideo: \'ease\',
    
    	   bufferBarColor1: \'0x888888\',
    	   bufferBarColor2: \'0x888888\',
    	   progressBarColor1: \'0x0000ff\',
    	   progressBarColor2: \'0x0000ff\',
    	   progressBarBorderColor1: -1,
    	   progressBarBorderColor2: -1,
    
    	    showPlayListButtons: true,
    	    usePlayOverlay: false,
    	    autoPlay: false,
    
    	    useSmoothing: true,
    	    showMenu: false,
          	    showFullScreenButton: false,
    	     showVolumeSlider: false,
    	    timeDisplayFontColor: \'0x666666\',
    		initialScale: \'fit\',
    
    	    loop: false,
    
    	    playList: [
    		{ url: \'' . $fp4wp_uploads_path . $splashname. '\'},
    		{ url: \'' . $fp4wp_uploads_path . $filename . '\'}
    		]
    		}
    		" /></object>';
    	return $string;
    }
    
    ?>

    Completely rewritten fp4wp_video() to use original embedding javascript.
    Add string to <head>
    <script type=”text/javascript” src=”https://litvar.ru/wp-content/plugins/fp4wp/flowplayer/js/flashembed.js”&gt;
    </script>
    Put flashembed.js to the place.
    Call remain the same.

    <?php
    /*
    Plugin Name: fp4wp
    Plugin URI: https://renechristen.net
    Description: Embed FlowPlayer in WordPress.
    Version: 1.1
    Author: Rene Christen
    Author URI: https://renechristen.net
    Add: Oleg Petol
    URI: htp://kab.tv
    */
    ?>
    <?php
    $fp4wp_uploads_path = '/wp-content/videos/';
    $fp4wp_plugins_path = '/wp-content/plugins/';
    $url = 'https://litvar.ru';
    
    add_filter('the_content', 'fp4wp_the_content');
    function fp4wp_the_content( $content )
    {
    	// AUDIO
    	$search = "/\[PLAYER=(.*\.mp3)\]/"; //.mp3
    	preg_match_all($search, $content, $audio_matches);
    
    	if (is_array($audio_matches[1]))
    	{
    		foreach ($audio_matches[1] as $filename)
    		{
    			$search = "[PLAYER=".$filename."]";
    			$replace = fp4wp_audio($filename);
    			$content = str_replace ($search, $replace, $content);
    		}
    	}
    
    	// VIDEO
    	$search = "/\[PLAYER=(.*) splash=(.*)\]/"; //.mp4,.m4v,.m4a,.mov,.3gp,.flv etc...
    	preg_match_all($search, $content, $video_matches);
    
    	if (is_array($video_matches[1]))
    	{
    		foreach ($video_matches[1] as $filename)
    		{
    			//echo $filename;
    			$splashname = $video_matches[2][0];
    			$search = "[PLAYER=".$filename." splash=".$splashname."]";
    			$replace = fp4wp_video($filename, $splashname);
    			$content = str_replace ($search, $replace, $content);
    		}
    	}
    
    	return $content;
    }
    
    function fp4wp_audio($filename) { //.mp3
    	global $fp4wp_uploads_path;
    	global $fp4wp_plugins_path;
    
    	$string = '<object type="application/x-shockwave-flash" data="'
    	. $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayerLight.swf" width="320" height="22" id="FlowPlayer"><param name="allowScriptAccess" value="sameDomain" />
    	<param name="movie" value="' .  $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayerLight.swf" />
    	<param name="quality" value="high" />
    	<param name="scale" value="noScale" />
    	<param name="wmode" value="transparent" />
    	<param name="flashvars" value="config={playList:[{ url: \''
    	. $fp4wp_uploads_path . $filename . '\', },],
    	showPlayListButtons: false,
    	loop: false,
    	autoPlay: false,
    	hideControls: false,
    	showFullScreenButton: false,
    	showMenu: false,
    	showLoopButton: false,
    	initialScale: \'orig\',
    	autoBuffering: false }" /></object>';
    
    	return $string;
    }
    
    function fp4wp_video($filename, $splashname) { //.mp4,.m4v,.m4a,.mov,.3gp,.flv etc...
    	global $fp4wp_uploads_path;
    	global $fp4wp_plugins_path;
    	global $url;
    
    	$string = '<script> window.onload = function() {
    		 flashembed("flashmovie",
    			{ src:\'' . $fp4wp_plugins_path . 'fp4wp/flowplayer/FlowPlayerDark.swf\',
    				width: 400,
    				height: 320
    			},
    			{config: {
    				autoPlay:false,
    				showPlayListButtons: true,
    				showStopButton: true,
    				controlBarGloss: \'high\',
    				controlBarBackgroundColor:\'0x000000\',
    				progressBarColor1:\'0x000000\',
    				progressBarColor2:\'0x888888\',
    				initialScale: \'fit\',
    				loop: false,
    				splashImageFile: \'' . $fp4wp_uploads_path . $splashname. '\',
    				videoFile: \'' . $fp4wp_uploads_path . $filename . '\'
    			}}
    		);
    	}
    	</script><div id="flashmovie"></div>';
    
    	return $string;
    }
    
    ?>

    I was struggling to implement the FlowPlayer into my wordpress site but this code has made it easily achievable. Really appreciate the plugin share, nice one.

    I also use the extra splash feature dliem added, nice.

    Thanks so much, would take me until I was old and grey to figure out all that PHP, I do love messing about with code, but I’m far from competent so this is aweseom

    The FlowPlayer is awesome, but I am having some troubles with the audio and the progress bar. I used the plugin for wordpress but for some reason, the default of the audio is mute and I need to click on the audio button twice to hear the sound. Second problem is that I have, the progress bar immediately goes till the end as soon as the video uploads, so it is losing all of its purpose of showing progress on the screen :))

    Anyone having the same problems? and anyone with an idea what might be the issue. Your help is greatly appreciated.
    website: https://www.fishinglass.com
    Thank you.

Viewing 10 replies - 1 through 10 (of 10 total)
  • The topic ‘flowplayer plugin’ is closed to new replies.