AssetにMP3というタイプを追加するために、
MT::Asset::MP3
というクラスを作成しました。
このクラスで、アイテムの登録で拡張子mp3のファイルをこのMP3タイプで登録できるところまではできたのですが、これをアイテム一覧のクイックフィルタに登録する方法が分かりません。
Core.pmのobject_types に
'asset.mp3' => 'MT::Asset::MP3',
'mp3' => 'MT::Asset::MP3',
これを追加すると表示されたので、これをプラグインから追加できれば良いのだと思うのですが、
sub init_registry {
my $plugin = shift;
$plugin->registry({
object_types => {
'asset.mp3' => 'MT::Asset::MP3',
'mp3' => 'MT::Asset::MP3',
},
});
}
としても、追加されないようです。
このあたり、なにかご存知の方はいらっしゃいますか?
追加するタイミングが良くないのかなと思うのですが……。
よろしくおねがいします。
--
M o t o k a z u S e k i n e / C H E E B O W
E-Mail : che...@gmail.com
一覧画面の右側のクイックフィルタですよね?
Assetではやったことないのですが、エントリーのクイックフィルタは
作ったことあります。
こんな感じでどうでしょうか?
sub init_registry {
my $plugin = shift;
$plugin->registry({
'applications' => {
'cms' => {
list_filters => {
asset => {
mp3 => {
label => 'Audio MP3',
order => 1000,
handler => sub {
my ( $terms, $args ) = @_;
$terms->{filter_key} = 'mp3';
},
},
},
},
},
},
});
}
ドキュメントは
http://www.movabletype.org/documentation/developer/plugins/defining-
list-filters-or-quick.html
にあります。
2008/08/22 15:02 野田 純生 <jun...@alfasado.jp>:
> こんな感じでどうでしょうか?
ありがとうございます!!
できました。
でも、ちょっと僕の方のコードが良くなかったみたいで、
sub init_registry {
my $plugin = shift;
$plugin->registry({
object_types => {
'asset.mp3' => 'MT::Asset::MP3',
'mp3' => 'MT::Asset::MP3',
},
});
}
これでも、同様に出来るようでした。
つまり、本筋とは関係ない部分の僕のコードのミスなわけでして……。
すみません……。