「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
エクスポートできるカスタムフィールドの型を追加する
拙作の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」を追加します。
中の人に要望
上で述べたように、プラグインでカスタムフィールドの型を追加した場合、現状ではコアのソースコードを書き換えないと、その型のデータをエクスポートすることができません。
それぞれのデータ型をエクスポートできるかどうかを、レジストリから読み込むように変えていただきたいです。