TopMovable Typeカスタマイズ管理画面 > 2011年4月
2011年4月27日

Movable Type 5.1のリスティングフレームワークで独自管理画面を作る(その1)

April 27,2011 2:55 AM
Tag:[, , ]
Permalink

Movable Type 5.1のリスティングフレームワークで独自管理画面を作ってみました。何回かに分けて紹介します。

経緯は、現在執筆中のMT5.1書籍で紹介するプラグインをMT5.0xで開発しており、その中にメールアドレス一覧画面があるのですが、MT5.1で正常に表示されなくなってしまいました。

ちなみにこれがMT5.0xでのメールアドレス一覧画面です。

Movable Type 5.0のメールアドレス一覧画面
Movable Type 5.0のメールアドレス一覧画面

MT5.1ベータでそのまま表示すると、「表示オプション」がものすごいことに・・・。

Movable Type 5.1のメールアドレス一覧画面(そのまま移行)
Movable Type 5.0のメールアドレス一覧画面

で、「表示オプション」を非表示にしたら表示が崩れてました。

Movable Type 5.1のメールアドレス一覧画面(表示オプションはずした状態)
Movable Type 5.0のメールアドレス一覧画面(表示オプションはずした状態)

この画面を修正するよりもリスティングフレームワークを使った方が早いのではないかと思い、リスティングフレームワークは既存の一覧画面にプロパティを追加する程度しか知らない状態ですが、思い切って変更することにしました。

1.独自テーブルの作成

独自画面を作るにはデータベースに独自テーブルを用意する必要があります。ここでは「name」「email」「description」といったフィールドをもつmt_addressというテーブルを予め作成している前提で説明を進めます。

独自テーブルの作成方法は「Movable Type 5 プロフェッショナルガイド」の「21-5 フィールドの拡張とオブジェクトテーブルの追加」などを参考にしてください(宣伝)。

2.画面の追加

Movable Type 5.0までは一覧表示用の管理画面を、プラグイン側で「hoge.tmpl」などで用意する必要がありましたが、リスティングフレームワークでは次のレジストリ定義のみで表示されるようになります(ということが分かりました)。

listing_screens:
    address:
        primary: name
        screen_label: address
        object_label: address
        object_label_plural: all_address
        default_sort_key: name
        view: system
        scope_mode: none

2行目の「address」は、テーブル定義のdatasource(例えばmt_entryなら'entry')を設定するようです。これで一覧画面で利用するオブジェクトを指定します。

3行目の「primary」はリストの最初に表示するフィールドを指定します。この設定を行わないと、後の手順で説明する、一番左に表示するチェックボックスが横に広がってしまうようなので必ず設定しましょう。なお、このエントリーの最後に掲載するリンク先の説明では、primaryは、

プライマリ表示が指定されたカラムは、表示幅の最大値が設定されず、他のカラムが非表示になった場合にテーブルを埋める役割を果たします。

となっています。ちなみにprimaryを設定しても、後でお見せする画像でお分かりのとおり、そのフィールドが一覧に表示されるわけではありません。表示させるには「list_properties:」の設定が別途必要です。

4行目から6行目は画面に表示する部分になります。「screen_label」はtitle要素とh1要素になります。「object_label_plural」はフィルタ部分の「すべての××」の「××」の部分になります。

7行目の「default_sort_key」は、一覧を表示したときにソートするフィールドを指定します。

8行目の「view」は一覧画面を表示するスコープを指定します。ここでは「system」を指定しているのでシステム管理画面のみ表示させるようにしています。

9行目の「scope_mode」はblog_idの条件を設定するためのもののようで、コア機能のソースコードでは「none」または「this」が設定されていました。カテゴリやフォルダなどでは「this」、その他はおおむね「none」が設定されていたので、一覧に表示するオブジェクトをブログIDで絞り込むための設定ではないかと推測しています(説明が不足しているとか間違っていたらご指摘ください)。

ここまでの設定で次の画面が表示されました。

Movable Type 5.1のメールアドレス一覧画面(listing_screensまで指定)
Movable Type 5.1のメールアドレス一覧画面

listing_screensに設定可能な項目は他にも色々あります。詳細は以下のリンクを参照してください。

Registry: listing_screens

次回に続きます。

Comments [2] | Trackbacks [0]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3