This code snippet shows how to create a Brightcove player plugin for the WordPress 2.X CMS that allows easy placement of videos within posts using the syntax [ brightcove video="123456" /].
/*
Plugin Name: Brightcove Video Player
Version: 1.0
Plugin URI: http://www.brightcove.com
Description: Simplifies the process of adding a Brightcove video to a WordPress blog.
Author: Bob de Wit
Author URI: http://brigthcove.active6.com
*/
//Set the publisher ID - YOU MUST SET THIS TO YOUR OWN PUBLISHER ID
$publisher = 1705665024;
//Set a default player to use - YOU MUST SET THIS TO YOUR OWN DEFAULT PLAYER
$player = 1911416499;
//Set width and height for the default video player
$width = 486;
$height = 412;
//Define default video variable
$videoid = 0;
//The actual parse content function called by the filter
//This will use the callback function BCVideo_Render to do the
//actual text replacement for the widget
function Brightcove_Parse($content)
{
$content = preg_replace_callback("/\[brightcove ([^]]*)\/\]/i", "Brightcove_Render", $content);
return $content;
}
function Brightcove_Render($matches)
{
global $video, $player, $publisher, $width, $height, $arguments;
$output = '';
$matches[1] = str_replace(array('”','?'), '', $matches[1]);
preg_match_all('/(\w*)=(.*?) /i', $matches[1], $attributes);
$arguments = array();
foreach ( (array) $attributes[1] as $key => $value )
{
// Strip out legacy quotes
$arguments[$value] = str_replace('"', '', $attributes[2][$key]);
}
//print_r( $arguments );
if (( !array_key_exists('video', $arguments) ) && ( !array_key_exists('player', $arguments) ))
{
return '
Brightcove Player Widget Error: Required parameter "video" or "player" is missing!
';
exit;
}
else
{
$video = $arguments['video'];
}
if( array_key_exists('width', $arguments) )
{
$height = $arguments['width'];
}
if( array_key_exists('height', $arguments) )
{
$height = $arguments['height'];
}
if( array_key_exists('player', $arguments) )
{
$player = $arguments['player'];
}
//$flashVars = "isVid=1&playerID=$player&publisherID=$publisher&@videoPlayer=$video";
$output .= "
";
return $output;
}
//Add a filter hook - this registers the function for all content
//text (Pages and Posts) to search for the [CONTRIBUTOR_WIDGET] tag.
add_filter('the_content', 'Brightcove_Parse');
Plugin Name: Brightcove Video Player
Version: 1.0
Plugin URI: http://www.brightcove.com
Description: Simplifies the process of adding a Brightcove video to a WordPress blog.
Author: Bob de Wit
Author URI: http://brigthcove.active6.com
*/
//Set the publisher ID - YOU MUST SET THIS TO YOUR OWN PUBLISHER ID
$publisher = 1705665024;
//Set a default player to use - YOU MUST SET THIS TO YOUR OWN DEFAULT PLAYER
$player = 1911416499;
//Set width and height for the default video player
$width = 486;
$height = 412;
//Define default video variable
$videoid = 0;
//The actual parse content function called by the filter
//This will use the callback function BCVideo_Render to do the
//actual text replacement for the widget
function Brightcove_Parse($content)
{
$content = preg_replace_callback("/\[brightcove ([^]]*)\/\]/i", "Brightcove_Render", $content);
return $content;
}
function Brightcove_Render($matches)
{
global $video, $player, $publisher, $width, $height, $arguments;
$output = '';
$matches[1] = str_replace(array('”','?'), '', $matches[1]);
preg_match_all('/(\w*)=(.*?) /i', $matches[1], $attributes);
$arguments = array();
foreach ( (array) $attributes[1] as $key => $value )
{
// Strip out legacy quotes
$arguments[$value] = str_replace('"', '', $attributes[2][$key]);
}
//print_r( $arguments );
if (( !array_key_exists('video', $arguments) ) && ( !array_key_exists('player', $arguments) ))
{
return '
Brightcove Player Widget Error: Required parameter "video" or "player" is missing!
';
exit;
}
else
{
$video = $arguments['video'];
}
if( array_key_exists('width', $arguments) )
{
$height = $arguments['width'];
}
if( array_key_exists('height', $arguments) )
{
$height = $arguments['height'];
}
if( array_key_exists('player', $arguments) )
{
$player = $arguments['player'];
}
//$flashVars = "isVid=1&playerID=$player&publisherID=$publisher&@videoPlayer=$video";
$output .= "
";
return $output;
}
//Add a filter hook - this registers the function for all content
//text (Pages and Posts) to search for the [CONTRIBUTOR_WIDGET] tag.
add_filter('the_content', 'Brightcove_Parse');

is this still an active project ?
It was intended as an example approach illustration, not really as a project.