July 2007 Archives
July 19, 2007
MT4Beta : Beta7 にアップグレードした。
いやあ、StyleCatcherが本格的に動くと、えらく印象が変わりますね。
Vox由来と思われるテーマが同梱されていて、色々とテーマをとっかえひっかえすることが楽しめました。
詳しい仕組みはまだ見ていませんが、レイアウト(2カラム,3カラム、サイドバーは右、いや左、など)まで半径2クリックで変更できるようになっています。
ということでデザインコロコロ変えてます。すみません。
あと、MT4のベータを長く使っていた人はエントリーのプレビュー機能も条件反射で使うようになっていると思いますが(これは本当に便利)、beta6までとプレビュー画面の保存ボタンと再編集ボタンの位置が入れ替わっているので注意が必要です。どづぼに嵌るところでした。危ないところでしたよ・・・
July 14, 2007
サーバーを引っ越してみた
xreaのやや古めのサーバーから、新しいサーバーに引っ越した。
引越しのお目当てはsvn。xreaの新しいサーバーではsvnが利用可能なので、色々な作業が非常に楽になります。
リポジトリの公開が出来るかは微妙ですが、外部からのexportができるだけでもかなり嬉しいですね。
今回行った作業の手順
- 新しいサーバーを確保する(ValueDomainでドメインを取得している場合、取得しているドメインの数だけXreaに無料サーバースペースを利用できる。3クリック程度で申請、一時間弱で利用可能になる。)
- 確保したサーバーにMTをインストール、コピーしたsqliteのデータベースを読ませることでマルッと移植。
- でもこれだけでは画像などのデータは移植できないので、ブログディレクトリも移植。tarで固めてwget。楽。
- いったん新しい環境に合わせてmt-config.cgiを修正し動作確認。問題なす。
- mt-config.cgiを前のものに戻す。ディレクトリ構成は変えない予定。
- ValueDomainでDNSの設定を変更。blog.aklaswad.comドメインのAレコードを新しいサーバーに向ける。
- DNSレコードが浸透するまでコーヒー。
- 新しいサーバーのXREAのコントロールパネルから、「ドメインウェブ」の設定(名前ベースのVirtualHost設定)をする。
- 動作確認して終わり。
手順の8,では、名前がそのサーバーに対して解決できるまでは設定できない。エラーメッセージが小さいので、最初何故設定が反映されないのか分からなかったです。
よそから移動してくる場合、「強制」設定を使えばよかったのですね。
またはdefaultでメンテナンス画面が出るようにするか。
あと、途中でXREAの広告免除権の移動もしてます。一時的に広告が見えた人もいるかと思いますが、それはご愛嬌ということで。
July 11, 2007
MT4Beta : DashboardWidgetを作ってみた。はてブの新着を表示するよ。
このプラグインは、MT4.0での新機能のサンプルとして作成したものです。機能/性能的に実用に耐えるものではありません。あらかじめご了承下さい。
mt4をインストールして、一番最初に目に飛び込んでくる新機能といえば、ダッシュボード上に並んだウィジェットではないでしょうか。
これももちろんプラグインで追加出来ます。出来るはずです。作りました。作ってみました。
今回の題材は、はてなブックマークでの、該当のブログ全体での被ブックマークを、タグやコメントも含めて最新20件(かな?)管理画面のダッシュボードにウィジェットとして表示するプラグインです。なんだかはてブのプラグインばかり作っているような気もしますが、気のせいでしょう。
やっぱり肝はレジストリでしょうか。諸情報をレジストリに追加することで動作します。
sub init_registry {
my $plugin = shift;
$plugin->registry({
applications => {
'cms' => {
widgets => {
'HatenaBookmark' => {
label => 'HatenaBookmark',
template => 'tmpl/widget.tmpl',
handler => \&_widget_handler,
set => 'sidebar',
singular => 1,
condition => sub {
my ($page, $scope) = @_;
return $page eq 'dashboard' && $scope !~ /system/;
},
},
},
},
},
});
}
大体、見たままで分かるかと思います。
setは、「main」「sidebar」が指定できるようです。画面の右側に表示するか左側に表示するか、ですね。
singularは、複数同時に表示可能とするか否か、です。
conditionには、現在のページでwidgetを利用可能とするかを判定するサブルーチンのリファレンスを指定します。サブルーチンは、引数として与えられた条件を元に、現在の画面でwidgetを表示するか否か、をブール値で返却します。
今回は、無駄に張り切ってややこしい処理をするものを作りましたが、簡単なメッセージ表示などのプラグインならconfig.yaml一発で出来そうです。
このプラグインはとりあえずの実験用なので、当面ベータ版扱いとしてください。そのうちキャッシュ機能や新着判定機能などをつけてきちんとしたものにするかもしれません。
追記: 公開からわずか半日後、はてなの障害?の巻き添えで管理画面が開けなくなる事態が発生。これは、このプラグインのテストにはてなが全力で協力してくれたと考える。
July 9, 2007
FaviconManager2 : FaviconManagerをMT4に対応させたよ
以前のFaviconManagerプラグインとは別設計となり、互換性がありません。MT4beta4でのみ動作確認を行っております。ご注意ください。
また、(基本的にMT4が正式リリースされるまでは)ベータ版とさせていただきます。
MT4が正式にリリースされてから、再度調整や機能追加などを行い、リリースする予定です。
大きな違いは以下の点です。
July 5, 2007
MT4Beta : Transformer プラグインを作ってみた速報
7月25日追記: この記事中のコードだと現在のバージョンでは動かないようです。コメントでご指摘いただきました。ありがとうございます。
MT4での新しいtransformerに挑戦してみました。
DOMライクなインターフェイスが提供され、管理画面の特定の位置にコードを挿入することが非常に容易になりました。
こんな感じのコードで動きます。
package MT::Plugin::TransformerSample;
use strict;
use base qw( MT::Plugin );
our $VERSION = '1.0';
my $plugin = MT::Plugin::TransformerSample->new({
name => 'TransformerSample',
});
MT->add_plugin($plugin);
MT->add_callback('MT::App::CMS::template_param.edit_entry', 9, $plugin, \¶m_transformer);
sub param_transformer {
my ($eh, $app, $param, $tmpl) = @_;
die 'something wrong...' unless UNIVERSAL::isa($tmpl, 'MT::Template');
my $host_node = $tmpl->getElementById('useful-links')
or die 'cannot get useful-links block';
my $node = $tmpl->createElement( 'TEXT', '<em>hello <b>MT4</b> transformer?</em>' );
$tmpl->insertBefore($host_node, $node)
or die 'failed to insertBefore.';
}
1;
エントリーの投稿/編集画面の右側、クイックリンク(useful-links)の上にチラッとhelloworldするだけのプラグインですが、何かの参考になるでしょうか。
自前でMT::Template::Nodeのインスタンスを作成する必要がある辺りが、ちょっと癖があるなと感じました。
innerHTMLメソッドなどを使うと、MTタグのコンパイルまでやってくれるっぽいので、その辺を使いこなせればよいのかな。
あと、HTMLタグはMTのテンプレートの構文解析の対象にならないので、HTMLタグのid属性などを基準には拾ってくることが出来ない見たいです。
その他、気づいたことや、各メソッドの使い方など、後でまとめてみたいと思います。
July 4, 2007
GPP
そろそろ静的生成と動的生成ついてひとこと言っとくか。 (Junnama Online (Mirror))で、ページの再構築を、ページの最初の閲覧時まで遅延するプラグインが公開されています。素晴らしいですね。
で、ネーミングを募集されるそうなので考えてみた。
一番乗りするものの待ち時間が一番長いのは自然の摂理。だがそれが良い。
"Greg Packer's Publishing"
が良いと思います!
July 3, 2007
tracのbrowse sourceでphpファイルの内容を表示させる
tracで自分のコードを確認していて気づいたが、phpファイルがブラウズ出来ない。ダウンロードしますかとか言われる。普段phpなんて書かないから、今まで気づかなかった。
コードが表示されるはずの場所には以下の一文が。
got a Dynamic php code.
そうだよphpだよいいから表示しろよ。と憤っても仕方ないので、対応してみた。
TimeType 0.3
TimeType0.3.zip
そこはかとなくアップデート。
- 自動投稿のエントリーの諸設定を、特定のエントリーの設定のクローンとして設定できるようにしてみた。設定のクローン元となる任意のエントリーのentry_idを、プラグインの設定画面から指定してください。カテゴリー、公開設定、改行設定、キーワード、コメントの許可、トラックバックの許可、の設定内容がクローン元エントリーからコピーされて、投稿されます。
- メモ中のhttpから始まる文字列にリンクが張られるようにした
- ブックマークにコメントをつけられるようにした。Timelogのブックマークレットでは、ブックマーク元のページのタイトルがメモに追加されますが、それ以降に、連続した半角スペースか、連続したセミコロン「;」を記入すると、以降がメモとして扱われます。