クイックポストを使ったときに、ハイパーリンク先を自動的に別窓表示するように target=”_blank” を加える方法。および、引用文を自動的に blockquoteタグで括るようにするための修正方法です。
クイックポストの修正
MT3.0からbookmarkletをクイックポストと呼ぶようになりました。クイックポストからは標準でSafariにも対応しましたね。
でも、引用文をblockquoteタグで囲む機能は実装されませんでした。そこで、引用文全体をblockquoteタグで囲み、さらに引用したページのタイトルをquotetitleタグで囲むように修正する方法を紹介します。cgiを書き換えるので、管理者でなければ修正できません。
なお、以下の修正はMT3.0のコードです。以前のバージョンでは文字コードの変換を噛ませないと文字化けする場合があります。修正するのはyourMT/lib/MT/App/CMS.pmの887行目あたりです。sub edit_object{}の中ほどにあります。
次のように$param{text} ではじまる1行を#でコメントアウトし、代わりに緑色の1行を挿入します。CMS.pmを書き換えたならば、管理画面からクイックポストを作り直して試してください。if ($q->param(‘is_bm’)) {
$param{selected_text} = $param{text};
my $enc = MT::I18N::guess_encoding($q->param(‘link_title’) . $param{text});
# $param{text} = sprintf qq(<a title=”%s” href=”%s”>%s</a>\n\n%s),
$param{text} = sprintf qq(<blockquote><div class=”quotetitle”><a title=”%s” href=”%s” target=”_blank”>%s</a></div>%s</blockquote>),
map { MT::I18N::encode_text(CGI::unescape($_),$enc,”) }
scalar $q->param(‘link_title’),
scalar $q->param(‘link_href’),
scalar $q->param(‘link_title’),
$param{text};