CustomFieldListing

対応バージョン:MovableType7

コールバックの設定

更新日:2024.02.02

今回は、コールバックを使う方法を紹介します。

customfields.list_propertiesコールバック

このプラグインをインストールすると、「customfields.list_properties」というコールバックが追加されます。
このコールバックは、レジストリにlist_propertiesの情報を設定する直前に呼び出されます。
コールバックのサブルーチンには、以下の4つの情報が渡されます。

情報内容
$cbコールバックのオブジェクト
$appアプリケーション(MT::App)のオブジェクト
$fieldslist_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に登録する内容をプラグインで上書きすることで、フィールドの値の表示方法等を変えることができます。

事例

このコールバックを使って、GoogleMapsCustomFieldプラグインを改良しました。
Googleマップのカスタムフィールドを追加した場合に、地図のサムネイルをオブジェクト一覧のページに表示できるようになります。

前へ
プラグインTOP