plugins:embedyoutube

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

plugins:embedyoutube [2011/03/23 21:28] (現在)
ライン 1: ライン 1:
 +====== NP_EmbedYouTube.php ======
 +
 +YouTube動画のembed用URLをItemで追加するためのみのプラグイン。
 +
 +^General Plugin info ^^
 +^作者: |[[plugins:​authors:​token|token]] |
 +^最新のバージョン:​ |0.2 (2007/​01/​18) |
 +^入手先: | |
 +^ソース: | |
 +^動作サンプル:​ |[[http://​blog.positrium.org/​cat_movie/​]] |
 +^フォーラム参照先:​ | |
 +^作者サイト参照先:​ |[[http://​blog.positrium.org/​cat_nucleus/​]]|
 +
 +=====事前準備=====
 +
 +=====インストール方法=====
 +Nucleusの管理画面からインストールを実行します。
 +
 +<code php>
 +<?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 />&​lt;​%embedyt(movie-id|width)%&​gt;';​
 + 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;
 + }
 +}
 +?>
 +</​code>​
 +
 +
 +
 +=====このプラグインの使い方=====
 +<​%embedyt(movie-id|embed_width)%>​ とItemに記入。(セパレータはパイプ(|)です。クォートは必要ありません。)
 +youTubeのコピー&ペースト用のHTMLソース通りのobjectとembedを伴った形で出力されます。
 +heightは利用されてない様なので、widthだけ利用する事にしてあります。
 +
 +v0.1ではyouTubeのURLを入れろとしてましたが、embedとただのリンクではURLが少し違う為、動画IDを使う事にしました。動画IDとは以下のようなIDです。
 +  * http://​www.youtube.com/​v/<​MOVIE-ID>​
 +  * http://​www.youtube.com/​watch?​v=<​MOVIE=ID>​
 +
 +<​%embedyt(xaXpKQVKAHc)%>​ のような具合。
 +
 +=====スキン/​テンプレートへの記述=====
 +=====オプション=====
 +=====Tipsと裏技=====
 +=====希望事項=====
 +=====バグ=====
 +
 +=====開発履歴=====
 +  * 【Version 0.2 リリース <​2007/​01/​18>​】
 +    * http://​から始まるURLから動画IDのみに引数の範囲を絞りました。
 +  * 【Version 0.1 リリース <​2007/​01/​18>​】
 +    * youTube動画を簡単に埋め込みたかったので勉強もかねて作成。
 +    * まだ脆弱性の検証はしてません。
  
 
plugins/embedyoutube.txt · 最終更新: 2011/03/23 21:28 (外部編集)