大雑把ですができました。スニペット名「flowplayer」「fp」「動画」など、自由に名前をつけて保存してください。
アセットディレクトリ内にflowplayerという名前のディレクトリを作って、その中にflowplayer.jsとflowplayer.swfを置きます。
コード: 全て選択
<?php
/*Settings----------------------------------------------*/
if(empty($flv_name)) $flv_name = '';
if(empty($width)) $width = '320';
if(empty($height)) $height = intval($width) * 0.75;
if(empty($script_name)) $script_name = 'flowplayer.js';
if(empty($player_name)) $player_name = 'flowplayer.swf';
if(empty($auto_play)) $auto_play = 'false';
if(empty($wmode)) $wmode = '';
if(empty($tv_name)) $tv_name = 'flv';
/*Main----------------------------------------------*/
$snip_path = MODX_SITE_URL . 'assets/snippets/flowplayer/';
$script_path = $snip_path . $script_name;
$player_path = $snip_path . $player_name;
if($modx->documentObject[$tv_name][1])
{$flv_name = MODX_SITE_URL . $modx->documentObject[$tv_name][1];}
elseif($flv_name)
{$flv_Path = " baseUrl: '" . MODX_SITE_URL . 'assets/flash/' . "'," . PHP_EOL;}
else return;
$modx->regClientStartupScript($script_path);
$width = 'width:' . intval($width) . 'px;';
$height = intval($height) + 24;
$height = 'height:' . $height . 'px;';
if($wmode)
{
$wmode = ", wmode: '" . $wmode . "'";
}
$output = '<a' . PHP_EOL;
$output .= ' href="' . $flv_name . '"' . PHP_EOL;
$output .= ' style="display:block;' . $width . $height . '"' . PHP_EOL;
$output .= ' id="player">' . PHP_EOL;
$output .= '</a>' . PHP_EOL;
$output .= '<script language="JavaScript">' . PHP_EOL;
$output .= 'flowplayer("player",' . PHP_EOL;
$output .= " {src: '" . $player_path . "'" . $wmode . '},' . PHP_EOL;
$output .= ' {' . PHP_EOL;
$output .= ' clip: {' . PHP_EOL;
$output .= ' autoPlay: ' . $auto_play . ',' . PHP_EOL;
$output .= $flv_Path;
$output .= ' autoBuffering: true' . PHP_EOL;
$output .= ' }' . PHP_EOL;
$output .= ' }' . PHP_EOL;
$output .= ' );' . PHP_EOL;
$output .= '</script>' . PHP_EOL;
return $output;
?>
指定できるパラメータは以下のとおりです
$flv_name flvファイルのファイル名
$width プレイヤーの横幅。デフォルトで320
$height プレイヤーの縦幅。デフォルトで$widthの75%(コントロールバーの表示に必要な24pxが自動的に追加されます)
$script_name flowplayerを表示するために必要なflowplayer.jsのファイル名。デフォルトでflowplayer.js。ダウンロードしたままだとflowplayer313.min.jsとかになってます
$player_name プレイヤーの名前。拡張子swfになってます。デフォルトでflowplayer.swf
$auto_play 自動的に再生するかどうか。デフォルトでfalse( 自動再生しない)、再生したい場合はここをtrueで。
$wmode wmode:transparentの指定が必要な場合はここで
$tv_name ファイルアップロードタイプのテンプレート変数から貼り付けたい場合はこちらでテンプレート変数名を指定。初期値「flv」。テンプレート側に記述する時に便利かも
スニペットコール・テンプレート変数の両方ともでflvファイルを指定しなかった場合は何も出力しません。flowplayer.jsの読み込みもしません