YouTube動画のembed用URLをItemで追加するためのみのプラグイン。
General Plugin info | |
---|---|
作者: | token |
最新のバージョン: | 0.2 (2007/01/18) |
入手先: | |
ソース: | |
動作サンプル: | http://blog.positrium.org/cat_movie/ |
フォーラム参照先: | |
作者サイト参照先: | http://blog.positrium.org/cat_nucleus/ |
Nucleusの管理画面からインストールを実行します。
<?php class NP_EmbedYouTube extends NucleusPlugin { // プラグインの名前 function getName() { return 'Embed YouTube'; } // プラグインの作者 function getAuthor() { return 'token'; } // プラグインのサイトURL // mailto:foo@bar.com の形式も可 function getURL() { return 'http://japan.nucleuscms.org/wiki/plugins:embedyoutube'; } // プラグインのバージョン function getVersion() { return '0.2'; } // インストール済みのプラグインリストに表示される説明文 function getDescription() { $comment ='In ITEM ,embed youtube movie inline from movie-id .'; $comment.='movie-id is http://www.youtube.com/v/MOVIE-ID'; $comment.='<br />and same ID is here , http://www.youtube.com/watch?v=MOVIE=ID .'; $comment.='<br /><br />Usage:<br /><%embedyt(movie-id|width)%>'; return $comment; } function supportsFeature ($what) { switch ($what) { case 'SqlTablePrefix': return 1; default: return 0; } } function getEventList() { return array('PreItem'); } function event_PreItem($data) { $preg_expr = "#<\%embedyt\((.*?)\)%\>#i"; $this->currentItem = &$data["item"]; $this->currentItem->body = preg_replace_callback($preg_expr, array(&$this, 'convertYoutube'), $this->currentItem->body); $this->currentItem->more = preg_replace_callback($preg_expr, array(&$this, 'convertYoutube'), $this->currentItem->more); } function convertYoutube($matches) { list($id, $_width) = explode("|",$matches[1]); $width = "350"; $height = "350"; if(strlen($_width)>0){ $width = $_width; $height = $width; } $outstring = ''; $outstring = '<object height="'.$height.'" width="'.$width.'">'; $outstring.= '<param name="movie" value="http://www.youtube.com/v/'.$id.'">'; $outstring.= '<param name="wmode" value="transparent">'; $outstring.= '<embed src="http://www.youtube.com/v/'.$id.'" type="application/x-shockwave-flash" wmode="transparent" height="'.$height.'" width="'.$width.'">'; $outstring.= '</object>'; return $outstring; } } ?>
<%embedyt(movie-id|embed_width)%> とItemに記入。(セパレータはパイプ(|)です。クォートは必要ありません。) youTubeのコピー&ペースト用のHTMLソース通りのobjectとembedを伴った形で出力されます。 heightは利用されてない様なので、widthだけ利用する事にしてあります。
v0.1ではyouTubeのURLを入れろとしてましたが、embedとただのリンクではURLが少し違う為、動画IDを使う事にしました。動画IDとは以下のようなIDです。
<%embedyt(xaXpKQVKAHc)%> のような具合。