NucleusのURL処理に関する妄想 新プラグインテスト中
May 15
作戦って言うほどの事でもないんだけど ^^;
NP_Thumbnailでサムネイルを並べようとすると、元の画像の大きさ(縦横比)をある程度揃えておかないと、サムネイルのサイズがガタガタになって見栄えが悪くなったりします
そこで、NP_TrimImageを使ってサムネイルを並べる方法を考えてみました
表示にはthickboxを使用する前提での改造なんで、それ以外の方法で表示する場合はさらに改造が必要です
NP_TrimImage.phpの適当なところに次のメソッドを追加します
	function doItemVar(&$item, $imgInfo, $rel = '', $wsize = 80, $hsize = 80, $point = 0) {
		global $CONF;
		if (!is_numeric($hsize))
			$hsize = 80;
		if (!is_numeric($wsize))
			$wsize = 80;
		$point = ($point == 'lefttop') ? true : false;
		
		$file = array ();
		$this->imglists = array ();
		$this->imgfilename = array ();

		$this->exarray($imgInfo, false, array ($item->itemid, $item->authorid, $item->title));

		$file = $this->imglists[0];
		$src = '';
		if (!$this->phpThumbParams['config_cache_force_passthru']) {
			$src = $this->createImage($file[0], $wsize, $hsize, $point, true);
		}
		if (!$src) {
			$src = htmlspecialchars($CONF['ActionURL'], ENT_QUOTES)
				 . '?action=plugin&name=TrimImage&type=draw'
				 . '&p='.$file[0].'&wsize='.$wsize.'&hsize='.$hsize
				 . ($point ? '&pnt=lefttop' : '');
		}
		
		$title = ($file[2]) ? $file[2] : $file[4];
		$rel = $rel ? ' rel="'.$rel.'"' : "";
		$filename = $this->imgfilename[0];
		$filename = strpos($filename, '/') ? $filename : $item->authorid . '/' . $filename;
		$output = '<a href="' . $CONF['MediaURL'] . $filename . '" title="' . $title . '" class="thickbox"'.$rel.'>'
				. '<img src="'.$src.'" '			
				. ( $wsize ? 'width="'.$wsize.'"'  : '' )
				. ( $hsize ? 'height="'.$hsize.'"' : '' )
				. 'alt="'.htmlspecialchars($title, ENT_QUOTES)
				. '" title="'.htmlspecialchars($title, ENT_QUOTES).'"/></a>';
		echo $output;
	}
あとthickbox用に、スキンに
	<script type="text/javascript" src="<%skinfile(js/jquery-1.1.2.pack.js)%>"></script>
<script type="text/javascript" src="<%skinfile(js/thickbox-compressed.js)%>"></script>
と追加
最後に、アイテム投稿時に画像を貼り付けるタグの
<%image(shizuki/20070507-additem.png|1006|870|add-item)%>
<%TrimImage(shizuki/20070507-additem.png|1006|870|add-item)%>
にすれば完了
これで、
login dialogdashboardadditem

login dialogdashboardadditem
となります
きれいでしょ?
ちなみに、第2引数に同じ文字列を指定すると
login dialogdashboardadditem
という風にギャラリー表示にもなります

No Responses to “ サムネイル大作戦 ”

Leave a Reply

OpenID を使ってログインすることができます。

Identity URL:



Web Services by Yahoo! JAPAN

このエントリにトラックバックはありません

この記事のトラックバックURL
http://shizuki.kinezumi.net/item_490.trackback(右クリックで'ショートカットの保存')
トラックバックするにはこの記事へのリンクhttp://shizuki.kinezumi.net/item_490.htmlが必要です