フリーレイアウト型のカスタムフィールドを含むテーマのエクスポート
更新日:2024.02.06
Movable Typeにはテーマ機能があり、テンプレートなどのサイト構造をエクスポートして、他の案件等で再利用することができます。
カスタムフィールドの定義も、テーマにエクスポートすることができます。ただ、フリーレイアウト型のカスタムフィールドは、標準のMovable Typeのままではエクスポートすることができません。エクスポートするためには、Movable Typeのコアのソースコードを書き換える必要があります。
書き換えるファイルは、Movable Typeのインストール先の「addons」→「Commercial.pack」→「lib」→「CustomFields」ディレクトリにある「Theme.pm」です。このファイルの最後の方にある部分を、以下のように書き換えます(網掛けした部分を追加)。
Theme.pmの書き換え箇所
・・・
return unless scalar @fields;
my %data = map {
$_->basename => {
name => $_->name,
obj_type => $_->obj_type,
default => $_->default,
description => $_->description,
options => $_->options,
tag => $_->tag,
type => $_->type,
required => $_->required,
flcf_def => $_->flcf_def,
flcf_html => $_->flcf_html,
flcf_css => $_->flcf_css,
flcf_init_js => $_->flcf_init_js,
flcf_js => $_->flcf_js,
flcf_validator => $_->flcf_validator,
flcf_used_ctrls => $_->flcf_used_ctrls,
flcf_unused_ctrls => $_->flcf_unused_ctrls,
}
} @fields;
return \%data;
}
1;
なお、エクスポートする場合は、ここまでで述べたようにコアのソースコードを書き換える必要があります。一方、エクスポートしたテーマをインポートする側は、コアの書き換えは必要ありません。標準のMovable Typeのままでインポートできます。