拙著「上手に稼ぐカラ売りテクニック」が発売されました。
株価が下がる局面で利益を得ることができる「空売り」について、詳しく解説した本です。
自由国民社刊で、定価1,512円(税込)です。
カスタムフィールドの値を一覧画面に表示するプラグイン(その4)
昨日に続いて、プラグインで独自のデータ型のカスタムフィールドを追加した場合に、そのデータを最適な形で一覧画面に表示するために、プラグインを拡張する方法を解説します。
今日は、コールバックを使う方法を紹介します。
なお、今日でカスタムフィールドの値を一覧画面に表示するプラグインの解説は終わりです。
1.customfields.list_propertiesコールバック
このプラグインをインストールすると、「customfields.list_properties」というコールバックが追加されます。
このコールバックは、レジストリにlist_propertiesの情報を設定する直前に呼び出されます。
コールバックのサブルーチンには、以下の4つの情報が渡されます。
情報 | 内容 |
---|---|
$cb | コールバックのオブジェクト |
$app | アプリケーション(MT::App)のオブジェクト |
$fields | list_propertiesに設定する情報を持ったハッシュリファレンス |
$field_map | $fieldsに属するカスタムフィールドのキーを、カスタムフィールドのデータ型ごとに配列にまとめたハッシュリファレンス |
例えば、IDが1番のブログで、ブログ記事に以下のようにカスタムフィールドを追加しているとします。
種類(データ型) | ベースネーム |
---|---|
テキスト(text) | entry_pref |
テキスト(text) | entry_address |
日付(datetime) | entry_birthday |
この場合、$fieldsと$fields_mapは、それぞれ以下のような構造のデータになっています。
$fields = { blog1_entry_pref => { entry_prefフィールドについてlist_propertiesに登録する内容 }, blog1_entry_address => { entry_addressフィールドについてlist_propertiesに登録する内容 }, blog1_entry_birthday => { entry_birthdayフィールドについてlist_propertiesに登録する内容 }, }
$field_map = { text => [ 'blog1_entry_pref', 'blog1_entry_address', ], checkbox => [ 'blog1_entry_birthday', ], }
各フィールドについて、list_propertiesに登録する内容をプラグインで上書きすることで、フィールドの値の表示方法等を変えることができます。
2.事例
このコールバックを使って、拙作のGoogleMapsCustomFieldプラグインを改良しました。
Googleマップのカスタムフィールドを追加した場合に、地図のサムネイルをオブジェクト一覧のページに表示できるようになります。
プラグインは明日公開します。