* @version 0.20 * * Changelog * ========= * * 0.10 - Initial build with FlowPlayer 1.x * 0.20 - Release using FlowPlayer 2.0.1 */ // Extension credits that show up on Special:Version $wgExtensionCredits['parserhook'][] = array( 'name' => 'FlowPlayerExtension', 'author' => 'Avidan Ross', 'url' => 'http://www.mediawiki.org/wiki/Extension:FlowPlayerExtension', 'description' => 'Allows the display of flv movies within a wiki using the FlowPlayer movie player.' ); $wgExtensionFunctions[] = "FlowPlayerExtension"; function FlowPlayerExtension() { global $wgParser; $wgParser->disableCache(); $wgParser->setHook( "flowplayer", "renderFlowPlayer" ); } function renderFlowPlayer( $input, $args ) { //if width and height are not set, give defaults if(is_null($args["width"])) $args["width"] = 320; if(is_null($args["height"])) $args["height"] = 240; if($args["advanced"] != "") { $flowPlayerVariables =array( "videoFile","baseURL","usePlayOverlay", "splashImageFile","initialScale","videoHeight","useNativeFullScreen", "fullScreenScriptURL","bufferLength","startingBufferLength","useSmoothing", "videoLink","emailPostUrl","emailVideoLink","emailDefaultMessage","url","name","live", "start","end","protected","type","linkUrl","linkWindow","overlay","overlayId","duration","controlEnabled", "allowResize","showOnLoadBegin","maxPlayCount"); } else { $flowPlayerVariables =array( "videoFile","baseURL","usePlayOverlay", "splashImageFile","initialScale","videoHeight","useNativeFullScreen", "fullScreenScriptURL","bufferLength","startingBufferLength","useSmoothing", "videoLink","emailPostUrl","emailVideoLink","emailDefaultMessage"); } $flashvars = "{config: { "; //if no "videofile" is set, use the local wiki file if (is_null($args["videofile"])) $flashvars .= " videoFile:" . "'" . getViewPath($input) ."'". ","; foreach ($flowPlayerVariables as $configVariableName) { //for some reason, mediawiki passes all arguments in lower case if (isset($args[strtolower($configVariableName)])) { if($args[strtolower($configVariableName)] == "true" | $args[strtolower($configVariableName)] == "false") { $flashvars .= " $configVariableName:" . $args[strtolower($configVariableName)]. ","; } else { $flashvars .= " $configVariableName:" . "'" . $args[strtolower($configVariableName)] . "'" . ","; } } } //remove the last , set "autoPlay" and "autoBuffering" to false $flashvars = rtrim($flashvars,","); $flashvars .= ",autoPlay:false,autoBuffering:false}})"; $flowplayerpath = $wgScriptPath . "/extensions/flowplayer/FlowPlayer.swf"; $returnString = "\n"; $returnString .= "
\n"; $returnString .= "\n"; return $returnString; } function getViewPath($file) { $title = Title::makeTitleSafe("Image",$file); $img = new Image($title); $path = $img->getViewURL(false); return $path; }