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 = ''
. ' . ( $wsize ? 'width="'.$wsize.'"' : '' )
. ( $hsize ? 'height="'.$hsize.'"' : '' )
. 'alt="'.htmlspecialchars($title, ENT_QUOTES)
. '" title="'.htmlspecialchars($title, ENT_QUOTES).'"/>
';
echo $output;
}
あとthickbox用に、スキンに
	<script type="text/javascript" src="<%skinfile(js/jquery-1.1.2.pack.js)%>">
<script type="text/javascript" src="<%skinfile(js/thickbox-compressed.js)%>">
と追加
最後に、アイテム投稿時に画像を貼り付けるタグの
add-item
add-item
にすれば完了
これで、
login dialogdashboardadditem

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

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

Leave a Reply

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



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

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