こちらの記事を参考にしてイメージ回り込みがMT3.11でも可能になるようパッチを当ててみました。
- tmpl/cms/upload_complete.tmpl
- プルダウンメニュー部分
プルダウンメニュー部分135行付近にある、
<p>
<label><input type="checkbox" name="constrain" value="1" checked="checked"> <MT_TRANS phrase="Constrain proportions">
</p>
の下に
<p> Image floating:<select name="ifloat" class="menu" >
<option value="left" selected>left
<option value="right" >right
<option value="none">none
</select>
</p>
を追加
- ボタンに引数追加
145行目付近にある
<div>
<TMPL_IF NAME=IS_IMAGE>
<input type="button" onclick="doClick(this.form, 'popup=1&width=<TMPL_VAR NAME=WIDTH>&height=<TMPL_VAR NAME=HEIGHT>&image_type=<TMPL_VAR NAME=IMAGE_TYPE>')" value="<MT_TRANS phrase="Popup Image">" />
<input type="button" onclick="doClick(this.form, 'include=1&width=<TMPL_VAR NAME=WIDTH>&height=<TMPL_VAR NAME=HEIGHT>&image_type=<TMPL_VAR NAME=IMAGE_TYPE>')" value="<MT_TRANS phrase="Embedded Image">" />
<TMPL_ELSE>
<input type="button" onclick="doClick(this.form, 'link=1')" value="<MT_TRANS phrase="Link">" />
</TMPL_IF>
</div>
を
<div>
<TMPL_IF NAME=IS_IMAGE>
<input type="button" onclick="doClick(this.form, 'imgfloat='+this.form.ifloat.value+'&popup=1&width=<TMPL_VAR NAME=WIDTH>&height=<TMPL_VAR NAME=HEIGHT>&image_type=<TMPL_VAR NAME=IMAGE_TYPE>')" value="<MT_TRANS phrase="Popup Image">" />
<input type="button" onclick="doClick(this.form, 'imgfloat='+this.form.ifloat.value+'&include=1&width=<TMPL_VAR NAME=WIDTH>&height=<TMPL_VAR NAME=HEIGHT>&image_type=<TMPL_VAR NAME=IMAGE_TYPE>')" value="<MT_TRANS phrase="Embedded Image">" />
<TMPL_ELSE>
<input type="button" onclick="doClick(this.form, 'link=1')" value="<MT_TRANS phrase="Link">" />
</TMPL_IF>
</div>
と、doClick関数の第2引数の頭にimgfloagとthis.form.ifloat.valueを追加する diffの結果です。
- diff
136a137,142
> <p> Image floating:<select name="ifloat" class="menu" >
> <option value="left" selected>left
> <option value="right" >right
> <option value="none">none
> </select>
> </p>
145,146c151,152
< <input type="button" onclick="doClick(this.form, 'popup=1&width=<TMPL_VAR NAME=WIDTH>&height=<TMPL_VAR NAME=HEIGHT>&image_type=<TMPL_VAR NAME=IMAGE_TYPE>')" value="<MT_TRANS phrase="Popup Image">" />
< <input type="button" onclick="doClick(this.form, 'include=1&width=<TMPL_VAR NAME=WIDTH>&height=<TMPL_VAR NAME=HEIGHT>&image_type=<TMPL_VAR NAME=IMAGE_TYPE>')" value="<MT_TRANS phrase="Embedded Image">" />
---
> <input type="button" onclick="doClick(this.form, 'imgfloat='+this.form.ifloat.value+'&popup=1&width=<TMPL_VAR NAME=WIDTH>&height=<TMPL_VAR NAME=HEIGHT>&image_type=<TMPL_VAR NAME=IMAGE_TYPE>')" value="<MT_TRANS phrase="Popup Image">" />
> <input type="button" onclick="doClick(this.form, 'imgfloat='+this.form.ifloat.value+'&include=1&width=<TMPL_VAR NAME=WIDTH>&height=<TMPL_VAR NAME=HEIGHT>&image_type=<TMPL_VAR NAME=IMAGE_TYPE>')" value="<MT_TRANS phrase="Embedded Image">" />
- lib/MT/App/CMS.pm
このファイルはかわってなかったです。しかし寿庵さんの変更前の記述と変更後の記述が同一なのでちょっと気をつけないと行けません。
- classを付ける
1889行あたりの下記のコードの
if ($q->param('popup')) {
require MT::Template;
if (my $tmpl = MT::Template->load({ blog_id => $blog_id,
type => 'popup_image' })) {
(my $base = $q->param('fname')) =~ s!\.[^.]*$!!;
if ($base =~ m!\.\.|\0|\|!) {
return $app->error($app->translate(
前に
my $imgclass;
if ($q->param('imgfloat') eq 'left') {
$imgclass = " class='l' ";
}elsif ($q->param('imgfloat') eq 'right') {
$imgclass = " class='r' ";
}else {
$imgclass = '';
}
を追加。
- HTMLコード追加
1931行目あたりのこのあたり
my $link = $thumb ? qq(<img src="$thumb" width="$thumb_width" height="$thumb_height" border="0" />) : "View image";
return <<HTML;
<a href="$url" onclick="window.open('$url','popup','width=$width,height=$height,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">$link</a>
HTML
} elsif ($q->param('include')) {
(my $fname = $url) =~ s!^.*/!!;
if ($thumb) {
return <<HTML;
<a href="$url"><img alt="$fname" src="$thumb" width="$thumb_width" height="$thumb_height" /></a>
HTML
} else {
return <<HTML;
の各 img タグ内に $imgclass を追記する。
my $link = $thumb ? qq(<img $imgclass src="$thumb" width="$thumb_width" height="$thumb_height" border="0" />) : "View image";
return <<HTML;
<a href="$url" onclick="window.open('$url','popup','width=$width,height=$height,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">$link</a>
HTML
} elsif ($q->param('include')) {
(my $fname = $url) =~ s!^.*/!!;
if ($thumb) {
return <<HTML;
<a href="$url"><img $imgclass alt="$fname" src="$thumb" width="$thumb_width" height="$thumb_height" /></a>
HTML
} else {
return <<HTML;
<img alt="$fname" $imgclass src="$url" width="$width" height="$height" />
HTML
}
} elsif ($q->param('link')) {
return <<HTML;
- diff
1889a1890,1898
> my $imgclass;
> if ($q->param('imgfloat') eq 'left') {
> $imgclass = " class='l' ";
> }elsif ($q->param('imgfloat') eq 'right') {
> $imgclass = " class='r' ";
> }else {
> $imgclass = '';
> }
>
1931c1940
< my $link = $thumb ? qq(<img src="$thumb" width="$thumb_width" height="$thumb_height" border="0" />) : "View image";
---
> my $link = $thumb ? qq(<img $imgclass src="$thumb" width="$thumb_width" height="$thumb_height" border="0" />) : "View image";
1939c1948
< <a href="$url"><img alt="$fname" src="$thumb" width="$thumb_width" height="$thumb_height" /></a>
---
> <a href="$url"><img $imgclass alt="$fname" src="$thumb" width="$thumb_width" height="$thumb_height" /></a>
1943c1952
< <img alt="$fname" src="$url" width="$width" height="$height" />
---
> <img alt="$fname" $imgclass src="$url" width="$width" height="$height" />
- スタイルシート
img.r {
float: right;
border: none;
margin-right:4px;
margin-top:4px;
vertical-align:top;
}
img.l {
float: left;
border: none;
margin-right:4px;
margin-top:4px;
vertical-align:top;
}
はじめまして。
(書きながら、ココ文字化けしてるけどだいじょうぶかな?)
質問です。
tmpl/cms/upload_complete.tmpl
と
lib/MT/App/CMS.pm
の、それぞれ「diff」てところがなんだか表示がおかしくて、コピーしようとしたときに困ってしまいました。
質問を受け付けておられるブログではないのかもしれませんが、回り込みをどうしてもやってみたくて来ました。
どうぞ宜しくお願いします。
コメントありがとうございます。
修正を加えたファイルをまとめたtar ballを
http://www.boarderz.com/~akashi/downloads/round.tgz
に置いておきました。
お楽しみ下さい。
ちなみに化けてましたかぁ?
手持ちの
Mac: Safari1.2.4/FireFox1.0
Win: xp FireFox1.0
では大丈夫だったんですが、どんなシステムで化けてましたか?教えてください。
あかしさん、初めまして ^^
TBを送らせていただきました。
画像の回り込み、ずっとやってみたかったので、非常にうれしいです ^^
ありがとうございました ^^
ちょっとファイル名を変更しました。
3.11-3.122用 パッチ http://www.boarderz.com/~akashi/downloads/floatingImage-3.11-122.tgz
3.15用パッチ
http://www.boarderz.com/~akashi/downloads/floatingImage-3.15.tgz
です。
これらの中には、イメージ回り込みパッチが当てられた下記2ファイルがおさめられています。
./MT/lib/MT/App/CMS.pm
./MT/tmpl/cms/upload_complete.tmpl
tar を展開すると旧ファイルを上書きしますのでご注意下さい。
また、問題が起こっても責任は持てませんのでご自分のリスクでご利用下さい。
あかしさん、お返事有難うございます。
すいません!文字化けだと思っていたの、どうやらそうじゃないみたいです。勘違いみたいです・・・。
ちょっとよくわからなくて、いただいたファイルを私のところにも入れてみました。
どうしてもわからないのが、上記にある「diffの結果です」というのはどういう意味がちんぷんかんぷんなんです~書き換えが必要な部分なんでしょうか?
申し訳ありません・・・ヨロシクお願いします。
こんにちは。
丁寧な説明で大変役に立ちました。
早速便利に使わせていただいています。
あとでトラックバックさせていただきますね。
一つ気になったことがあります。
-----------------------------------------
- HTMLコード追加
1931行目あたりのこのあたり
-----------------------------------------
で提示されている、「変更前」と「変更後」の範囲が違っているため、単純に「変更前」の文字列に「変更後」の文字列をコピペで上書きしてしまうと、閉じ括弧の数が足りなくてエラーを起し、MT.cgiが動かなくなってしまいます。(やっちゃいました)
変更前の範囲に、
-----------------------------------------
HTML
}
} elsif ($q->param('link')) {
return <<HTML;
-----------------------------------------
を追加した方がわかりやすいかと思います。
初めまして。
質問するような場ではないのかもしれないですが、
どうしても私の手には負えないので質問させていただきます(⊃д⊂)
画像回り込みを3.171でやろうと思い、
何度も挑戦しているのですが、
何故かファイルのアップロードをする所でエラーが出てしまいます・・・。
そしてエントリー投稿時の右上アイコン欄にファイルのアップデートアイコンが消えてしまっています・・・。
これは3.171ではできないのでしょうか?
もしどうにかなるようでしたら、お返事頂けたらと思います。
不躾に失礼しました(⊃д⊂)