さて、改変版がバンバン公開されるのを良いことに、すっかりMT4i開発をサボっている管理人です。っていうか、1.4正式公開してから1週間と1日しか経ってませんよ。皆さんペース早過ぎです。感謝。
でですね、皆さんのご協力のもとにMT4iがジワジワと広まってくるにつれ、「blog IDって何?」という声をいくつか耳にするようになりました。やっぱりね、って感じです。
MT4iは、マニュアルが非常に不親切です(っていうかあれをマニュアルとは呼べん)。それはもちろん、僕の怠慢以外の何物でもないんですが、あれで充分だとも思っているんですね。そこには、「MovableTypeを設置できる人はそれなりのスキルを持っている人」という偏見が大きく作用しています。
確かに、MovableTypeは有志の活躍により、インストールやカスタマイズ方法などの情報が広く公開され、随分と敷居は低くなっているように思います。それでもまだまだ、パソコン触り始めた初心者にはとても手が出せない代物ですよね。だから、MovableTypeを設置し、運用している人ってのは、それなりのスキルがある人だと思うんですよ。MovableType設置が前提のMT4iも然り。
だからマニュアルも不親切なままだし、もちろん機を見てきちんと整備したいとは思ってるんですが、そんな労力使う必要無いんじゃないかって気もしています。あのままで充分じゃないかって。MovableType設置できた人なら、あれくらいの説明でMT4iも設置できちゃうんじゃないかなと。
ところがね、ふと思ったんですよ。blog IDのこと。
これって、普段MovableTypeを運用している中では、どこにも出てきませんよね。どなたかが「管理画面のURLにURL引数として付加されている」と仰ってましたけど、そんなの普通気が付きません。僕も知らなかったし。
僕がblog IDの存在を知ったのは、MT4iの開発に手を付け、DBの解析(なんて大袈裟なもんじゃないが)を始めた時のこと。まぁ、複数のblogを一括で管理できるというMovableTypeの特徴からDB構造を想像してみれば、各blogを一意に識別できるユニークなIDがふられているであろう事は想像できるわけですけど、明確に「blog ID」というものを認識したのは、この時が初めてでした。
MT4iの開発を進めていくうち、設定しなきゃいけない項目がどんどん減って行きました。最終的にはMovableTypeホームディレクトリへのパスと、blog IDの指定のみが残りました。この時急に思ったんですね。「いきなりblog IDとか言われても、何のことだかわからねぇよな普通」と。
はい、前振りが非常に長くなりましたが、というわけで作ってみました。blog IDを取得、表示するPerlプログラムです。
正直やっつけなので、MT4iのソースをもとに引き算で仕上げるという暴挙に出ておりますので余計な部分とかかなり残っていると思いますが、設置は非常に簡単です。設定は一行目のPerlパスの変更のみで、あとはMovableTypeホームディレクトリにパーミッション「705」で放り込んでブラウザからアクセスするだけ。たぶんおそらくきっと、バグが無ければこれで動くはず。
MT4iのアーカイブに同梱しました。正直blog IDが何なのか、という説明にはなっていないんですが、それでも「blog IDって何?」という人は減るんじゃないかなと思っています。
alfabeat
はじめましてalfabeatです。生意気かもしれませんが
BlogIDを確認する方法はもう一つあります。
MT4iを設置したいブログのIndexテンプレートで、main indexのどこでもいいから
このブログのID:<$MTBlogID$>(本当は半角で入力して下さい)
を書き加えて下さい。ほんとどこでもいいです。
保存してリビルドして下さい。
で、できたサイトを確認すると先程のタグのとこにID番号が表示されています。
alfabeat
書き忘れていたので追加します。
確認したら先程のタグを消して保存してリビルドして下さい。
でも、URL引数にありますよね。「blog_id=1」みたいな感じで…。
管理人
Blog IDが何なのかわからないけれど設置できる、ってのが理想なんですけどね〜。
それは難しいか。
ヴァリウム男爵
MT4i中でblog_idが指定されていないエラーメッセージを表示する時に、blog一覧とidを表示するようにしてはどうでしょうかね。
Line:74付近のMT->new直後に、
if (!$blog_id) {
$data = "Error:引数にblog IDを指定してください。";
&errorout;
exit; # exitする
}
を持ってきて、
if (!$blog_id) {
$data = "Error:引数にblog IDを指定してください。<br>";
# blog一覧表示
$data .= "<br>";
require MT::Blog;
my @blogs = MT::Blog->load(undef,
{unique => 1});
for my $blog (@blogs) {
$blog_name = &conv_euc_z2h($blog->name);
$blog_id = &conv_euc_z2h($blog->id);
$data .= "$blog_id : $blog_name<br>";
}
&errorout;
exit; # exitする
}
みたいに。