plugins:embedyoutube

NP_EmbedYouTube.php

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 />&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;
	}
}
?>

このプラグインの使い方

<%embedyt(movie-id|embed_width)%> とItemに記入。(セパレータはパイプ(|)です。クォートは必要ありません。) youTubeのコピー&ペースト用のHTMLソース通りのobjectとembedを伴った形で出力されます。 heightは利用されてない様なので、widthだけ利用する事にしてあります。

v0.1ではyouTubeのURLを入れろとしてましたが、embedとただのリンクではURLが少し違う為、動画IDを使う事にしました。動画IDとは以下のような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 (外部編集)