エクスポートできるカスタムフィールドの型を追加する

拙作のGoogleMapsCustomFieldsプラグインに対して、「記事のインポート/エクスポートには対応していないのでしょうか」というご質問をいただきました。
GoogleMapsCustomFieldsプラグインに限らず、プラグインでフィールドの型を追加した場合、そのデータをエクスポートできるようにするには、Movable Typeのコアのソースコードを書き換えることが必要です。

書き換え方

カスタムフィールドの処理を見てみると、エクスポートの際に、エクスポートできるデータの型を制限する処理が入っています。
この部分を書き換えて、プラグインで追加したカスタムフィールドもエクスポートできるようにします。

書き換えるファイルは、Movable Typeのディレクトリ→「addons」ディレクトリ→「Commercial.pack」ディレクトリ→「lib」ディレクトリ→「CustomFields」ディレクトリにある「ImportExport.pm」です。
このファイルの60行目付近に、以下の部分があります。
「qw( ... )」の部分で、エクスポートできる型を指定しています。

my %allowed = map { $_ => 1 }
    qw( text textarea checkbox url datetime select radio );

この「qw( ... )」の部分に、プラグインで追加したカスタムフィールドの型を追加します。
GoogleMapsCustomFieldsプラグインの場合だと、以下のように、「qw( ... )」の部分に「googlemaps」を追加します。

qw( text textarea checkbox url datetime select radio googlemaps );

なお、インポートの際には、フィールドの型を制限する処理は行われていません。
エクスポート側の修正だけで動作しました。

ちなみに、拙作の数値型カスタムフィールドプラグイン(NumericCustomFields)のデータをエクスポートできるようにするには、「qw( ... )」の部分に、「ninteger」と「nfloat」を追加します。

中の人に要望

上で述べたように、プラグインでカスタムフィールドの型を追加した場合、現状ではコアのソースコードを書き換えないと、その型のデータをエクスポートすることができません。
それぞれのデータ型をエクスポートできるかどうかを、レジストリから読み込むように変えていただきたいです。