6月9日にMovable Type 3.17の提供が始まりました。
Movable Type Publishing Platform: Movable Type 3.17の提供を開始
このブログも多少カスタマイズしていたので、バージョンアップは先延ばししていたのだけれど、何とか今までのカスタマイズ内容を整理できたので、遅ればせながら3.17にバージョンアップしてみました。
今後またバージョンアップがあった時に備えて、これまでの主なカスタマイズ内容を備忘録として残しておきたいと思います。
なお、<>を<>に置き換えています。
●Movable Typeが作成するファイルを実行可能ビットONで作成する
(PHPファイルを作成する場合など)
・MT_DIR/mt.cfgの修正
(例)
DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022
HTMLPerms 0777
# UploadPerms 0777
●検索を日本語にする
・MT_DIR/lib/MT/App/Search.pmの修正
$app->set_language($blog->language);
$str = $app->l10n_filter($str);
この部分を
$str = MT->translate_templatized($str);
に変更する。
●アーカイブに件数を表示する
・メインページテンプレートの修正
(例)
<h2>アーカイブ</h2>
<ul>
<MTArchiveList archive_type="Monthly">
<li><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a>[<$MTArchiveCount$>]</li>
</MTArchiveList>
</ul>
●カテゴリーに件数を表示する
・メインページテンプレートの修正
(例)
<h2>カテゴリー</h2>
<MTSubCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a>
[<$MTCategoryCount$>]
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTSubCategories>
</div>
●最近トラックバックがあったエントリーを一覧表示する
・必要なプラグイン
EntryRecentlyPinged.pl
・プラグインのダウンロード先
The blog of H.Fujimoto: 最近トラックバックがあったエントリーを一覧表示する
MTEntriesRecentlyPingedプラグイン
・プラグインインストール方法
MT_DIR/plugins/にアップロードする。
・メインページテンプレートの修正
(例)
<h2>最近のトラックバック</h2>
<ul>
<MTEntriesRecentlyPinged lastn="10">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
<ul>
<MTPings sort_order="descend">
<li><a href="<$MTPingURL$>"><$MTPingTitle$>(<$MTPingBlogName$>)<$MTPingDate format="%Y/%m/%d %H:%M"$></a></li>
</MTPings>
</ul>
</MTEntriesRecentlyPinged>
</ul>
●最近のコメントをエントリーと共に表示する
・メインページテンプレートの修正
(例)
<h2>最近のコメント</h2>
<ul>
<MTEntries recently_commented_on="10">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
<MTComments lastn="10">
└ <a href="<$MTEntryPermalink$>#c<$MTCommentID$>"><$MTCommentAuthor$></a>
<div align="right"><$MTCommentDate format="%Y/%m/%d %H:%M"$></div>
</MTComments>
</li>
</MTEntries>
</ul>
●index.rdfをブラウザで表示させる
・.htaccessの修正
AddType application/xml .rdf
と記述して、index.rdfと同じ階層にアップロードする。
●スクロールバーをカスタマイズする
・スタイルシートテンプレートの修正
(例)
html {
scrollbar-face-color: #FFFFFF;
scrollbar-highlight-color: #666666;
scrollbar-shadow-color: #666666;
scrollbar-3dlight-color: #FFFFFF;
scrollbar-darkshadow-color: #FFFFFF;
scrollbar-arrow-color: #666666;
scrollbar-track-color: #FFFFFF;
}
●フレーム内の横スクロールバーを消去する
・スタイルシートテンプレートの修正
(例)
html {
overflow-y: scroll;
}
●エントリー投稿画面でのリンク作成時にtarget=blankを付加する
・MT_DIR/mt.jsの修正
setSelection(e, '<a href="' + my_link + '">' + str + '</a>');
この部分を
setSelection(e, '<a href="' + my_link + '" target="_blank">' + str + '</a>');
に変更する。
●RSS1.0をUTF-8化する
・必要なプラグイン
mt-jcode.pl
・プラグインのダウンロード先
mt-jcode: blog.bulknews.net
・プラグインインストール方法
MT_DIR/plugins/にアップロードする。
・RSS1.0テンプレートの修正
<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
この部分を
<?xml version="1.0" encoding="UTF-8"?>
に変更する。
・日本語が含まれる可能性のあるMTタグにjcode="utf8"を追加
(例)
<$MTEntryTitle encode_xml="1"$>
この部分を
<$MTEntryTitle encode_xml="1" jcode="utf8"$>
に変更する。
(参考)
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:cc="http://web.resource.org/cc/"
xmlns="http://purl.org/rss/1.0/">
<channel rdf:about="<$MTBlogURL$>">
<title><$MTBlogName encode_xml="1" jcode="utf8" $></title>
<link><$MTBlogURL$></link>
<description><$MTBlogDescription encode_xml="1" jcode="utf8" $></description>
<dc:language>ja</dc:language>
<dc:creator></dc:creator>
<dc:date><MTEntries lastn="1"><$MTEntryDate format="%Y-%m-%dT%H:%M:%S" language="en"$><$MTBlogTimezone$></MTEntries></dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=<$MTVersion$>" />
<MTBlogIfCCLicense>
<cc:license rdf:resource="<$MTBlogCCLicenseURL$>" />
</MTBlogIfCCLicense>
<items>
<rdf:Seq><MTEntries lastn="15">
<rdf:li rdf:resource="<$MTEntryPermalink encode_xml="1"$>" />
</MTEntries></rdf:Seq>
</items>
</channel>
<MTEntries lastn="15">
<item rdf:about="<$MTEntryPermalink encode_xml="1"$>">
<title><$MTEntryTitle encode_xml="1" jcode="utf8"$></title>
<link><$MTEntryPermalink encode_xml="1"$></link>
<description><$MTEntryExcerpt encode_xml="1" jcode="utf8"$></description>
<dc:subject><$MTEntryCategory encode_xml="1" jcode="utf8"$></dc:subject>
<dc:creator><$MTEntryAuthorNickname encode_xml="1" jcode="utf8"$></dc:creator>
<dc:date><$MTEntryDate format="%Y-%m-%dT%H:%M:%S" language="en"$><$MTBlogTimezone$></dc:date>
</item>
</MTEntries>
</rdf:RDF>
●トラックバック時の文字化け修正
・MT_DIR/lib/MT.pmの修正
## Build query string to be sent on each ping.
my @qs;
push @qs, 'title=' . MT::Util::encode_url($entry->title);
push @qs, 'url=' . MT::Util::encode_url($entry->permalink);
push @qs, 'excerpt=' . MT::Util::encode_url($entry->get_excerpt);
push @qs, 'blog_name=' . MT::Util::encode_url($blog->name);
my $qs = join '&', @qs;
この部分を
## Build query string to be sent on each ping.
require Jcode;
my $charset = {'Shift_JIS'=>'sjis','ISO-2022-JP'=>'jis','EUC-JP'=>'euc',
'UTF-8'=>'utf8'}->{$mt->{cfg}->PublishCharset} || 'utf8';
my @qs;
push @qs, 'title=' . MT::Util::encode_url(Jcode->new($entry->title, $charset)->utf8);
push @qs, 'url=' . MT::Util::encode_url(Jcode->new($entry->permalink, $charset)->utf8);
push @qs, 'excerpt=' . MT::Util::encode_url(Jcode->new($entry->get_excerpt, $charset)->utf8);
push @qs, 'blog_name=' . MT::Util::encode_url(Jcode->new($blog->name, $charset)->utf8);
push @qs, 'charset=utf-8';
my $qs = join '&', @qs;
に変更する。