Movable Typeの最近のブログ記事

6月22日の記事Movable Type 3.17で、「最近トラックバックがあったエントリーを一覧表示する」方法を書きましたが、The blog of H.Fujimotoの壱さんより、「似た動作をするものとして、以下のものもあります。」とのコメントを頂きました。

The blog of H.Fujimoto: 最近のコメント/トラックバックをエントリーとともに表示するプラグイン(改良版)

壱さん、ありがとうございました。

早速、カテゴリーアーカイブ・個別エントリーアーカイブ・日付アーカイブも2カラム化して導入してみました。
実際に「最近のトラックバック」にお目にかかれるのはまだ先になりそうですが。(笑)

●最近のコメント/トラックバックをエントリーとともに表示する

・必要なプラグイン
Recents.pl

・プラグインのダウンロード先
The blog of H.Fujimoto: 最近のコメント/トラックバックをエントリーとともに表示するプラグイン(改良版)

・プラグインインストール方法
MT_DIR/plugins/にアップロードする。

・メインページテンプレートの修正
(必要であれば、カテゴリーアーカイブ・個別エントリーアーカイブ・日付アーカイブテンプレートの修正)

(例)
<h2>最近のコメント</h2>
<ul>
<MTCommentsRecent lastn="10" comment_sort_order="ascend">
<MTCommentsRecentIfEntry><li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
<div align="right"><$MTEntryDate format="%Y/%m/%d %H:%M"$></div>
</MTCommentsRecentIfEntry>
<MTCommentsRecentIfComment>
<MTCommentsRecentHeader><ul></MTCommentsRecentHeader>
<li>└ <$MTCommentAuthorLink$>
<div align="right"><$MTCommentDate format="%Y/%m/%d %H:%M"$></div>
<MTCommentsRecentFooter></ul></MTCommentsRecentFooter>
</MTCommentsRecentIfComment>
</MTCommentsRecent>
</ul>

<h2>最近のトラックバック</h2>
<ul>
<MTPingsRecent lastn="10" ping_sort_order="ascend">
<MTPingsRecentIfEntry><li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
<div align="right"><$MTEntryDate format="%Y/%m/%d %H:%M"$></div>
</MTPingsRecentIfEntry>
<MTPingsRecentIfPing>
<MTPingsRecentHeader><ul></MTPingsRecentHeader>
<li>└ <a href="<$MTPingURL$>"><$MTPingTitle$></a>
<div align="right"><$MTPingDate format="%Y/%m/%d %H:%M"$></div>
<MTPingsRecentFooter></ul></MTPingsRecentFooter>
</MTPingsRecentIfPing>
</MTPingsRecent>
</ul>

Movable Type 3.17

| コメント(2) | トラックバック(0)

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;
に変更する。

ノートPCでもPDAでもなく、携帯から投稿できるってのはいいですね。
外出の時はあまり荷物を持ち歩きたくない人なんです。

まぁ、外出先から投稿することもあまりないんだろうけどね。(笑)

MT4i/2.0 - t2o2-Wiki

続・文字化け

| コメント(0) | トラックバック(0)

RSSのみをUTF-8で生成するようにしました。
これで検証してみようと思います。

結果はGOOD!(^o^)
文字化けの件に関しては、以下のサイト及びそのリンク先を参考にさせて頂きました。
この場を借りてお礼申し上げます。

Movable Type3.15-jaのトラックバック文字化け問題

RSS1.0情報のみEUCでなくUTF-8で出力

文字化け

| コメント(0) | トラックバック(0)

通知サイトのひとつ、gooに昨日のエントリーを見つけることができたけれど、見事に記事部分が文字化けしていた。
このブログのエンコードがShift_JISだからだろうか?
今のところはそれくらいしか検討がつかないので、とりあえずUTF-8で送れるように対策をしてみた。
うまくいくかな?

結果はNG。
いわゆるこの更新Pingは、ブログ名とURLしか送信していなく、文字化けしている記事部分はRSSから取得しているかららしい。
やはりRSSは、UTF-8で生成するようにしないとだめかもしれない。