カテゴリー : MT_CUSTOMIZE

3.17にアップグレード

したものの嫌な予感的中で、今までカスタマイズしてきたDecodeボタンやクイックポストの変更など有効にならん。今いろいろ実験中だがスクリプトが大分変わっている模様。
マイッタ。

Decodeボタンは解決。以前のように必要なコードを追加したあとでちょっと修正。

方法はmt.jsの下の箇所

function Decode(e) {
if (!canFormat) return;
var str = getSelection(e);
if (!str) return;
str = str.replace(new RegExp("&","g"), "&");
str = str.replace(new RegExp("<","g"), "&lt;");
str = str.replace(new RegExp(">","g"), "&gt;");
str = str.replace(new RegExp(‘"’,"g"), "&quot;");
setSelection(e, str);
return false;
}

のvar str = getSelection(e);を次のようにvar str = getSelected(e);に変更。

function Decode(e) {
if (!canFormat) return;
var str = getSelected(e);
if (!str) return;
str = str.replace(new RegExp("&","g"), "&amp;");
str = str.replace(new RegExp("<","g"), "&lt;");
str = str.replace(new RegExp(">","g"), "&gt;");
str = str.replace(new RegExp(‘"’,"g"), "&quot;");
setSelection(e, str);
return false;
}

ただ、edit_entry.tmplとbm_entry.tmpl内のescape="singlequotes"の箇所は良く分からんが、おまじないってことでDecodeボタンの場所にも次のようにして追加しといた。

write(‘<a title="<MT_TRANS phrase="Decode" escape="singlequotes">" href="#" onclick="return Decode(document.entry_form.text)"><img src="<TMPL_VAR NAME=STATIC_URI>images/html-decode.gif" alt="<MT_TRANS phrase="Decode" escape="singlequotes">" width="22" height="16" border="0" /></a>’);

ただgetSelectedだと選択した部分が挿入された状態でポップアップされるなぁ…。

Blockquoteタグに改行を入れる方法

無言さんのつぶやきさんの「Blockquoteタグに改行を入れる方法」を参考にlib/MTにあるUtil.pmというファイルを変更してみました。

sub html_text_transform {
my $str = shift;
$str ||= ”;
my @paras = split /\r?\n\r?\n/, $str;
for my $p (@paras) {
if ($p !~ m@^</?(?:h1|h2|h3|h4|h5|h6|table|ol|dl|ul|menu|dir|p|pre|center|form|fieldset|select|blockquote|address|div|hr)@) {
$p =~ s!\r?\n!<br />\n!g;
$p = "<p>$p</p>";
}
}
join "\n\n", @paras;
}

のところでh1|h2|h3|h4|h5|h6|table|ol|dl|ul|menu|dir|p|pre|
center|form|fieldset|blockquote|address|div|hrに関しては<br>と<p>をつけないという設定になっているらしいので、とりあえずblockquoteタグだけは<br>と<p>をつけるように設定します。

sub html_text_transform {
my $str = shift;
$str ||= ”;
my @paras = split /\r?\n\r?\n/, $str;
for my $p (@paras) {
if ($p !~ m@^</?(?:h1|h2|h3|h4|h5|h6|table|ol|dl|ul|menu|dir|p|pre|center|form|fieldset|select|blockquote|address|div|hr)@) {
$p =~ s!\r?\n!<br />\n!g;
$p = "<p>$p</p>";
}
elsif ($p =~ m@^</?(?:blockquote|div|p)@){
$p =~ s!\r?\n!<br />\n!g;
}

}
join "\n\n", @paras;
}

以上で完了。
記事を再構築してやれば反映されるはず…

画像の回り込み

まずlib/MT/app/の中にあるCMS.pmをダウンロードします。
念のためCMS.pmのバックアップを取っておきます。

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=150,top=100′); 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" border="0" /></a>
HTML
} else {
return <<HTML;
<img alt="$fname" src="$url" width="$width"
height="$height" border="0" />
HTML
}
} elsif ($q->param(‘link’)) {
return <<HTML;
<a href="$url">Download file</a>
HTML
}
}

上記の部分の該当する3箇所ににclass="img_L"を付け足して下のようにする。

my $link = $thumb ? qq(<img src="$thumb"
width="$thumb_width" height="$thumb_height" border="0"
class="img_L"
/>) : "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=150,top=100′); 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" border="0"
class="img_L"
/></a>
HTML
} else {
return <<HTML;
<img alt="$fname" src="$url" width="$width" height="$height"
border="0" class="img_L"
/>
HTML
}
} elsif ($q->param(‘link’)) {
return <<HTML;
<a href="$url">Download file</a>
HTML
}
}

そしてスタイルシートに以下を追加。

.img_L{
float: left;
border: none;
margin-right:8px;
margin-top:4px;
}

忘れてはいけないのが、回り込みの解除!!
今回はスタイルシートの.content p.postedのところに以下を追加。

clear: both;

ちなみにスマートな方法ではないのですがスタイルシートに

.img_R{
float: right;
border: none;
margin-left:8px;
margin-top:4px;
}

と付け足しておいて実際アップロードしたファイルのimgタグ内にあるclass=”img_L”をclass=”img_R”に変えてやれば画像が右で本文を左に持ってくる事が出来ます。

秋からクリスマスVerへ

サイトデザイン変更。
まだ気に入らないんで変更するかも・・・。

サイトデザイン変更(秋)

20041114_01.jpgほっと一息、秋バージョンに変更。
バックグラウンドを格子のパターンにして、タイトルのバナーを秋味たっぷりに。