MT3→MT4へタグやbasenameを引き継いで(インポート&エクスポートで)簡単に移行する方法。
公開日 : 2007-10-13 23:31:56
テンプレートを使えばもっと簡単にできるんじゃないかなぁと思って。
今日はWebSig MT分科会だったのですが、テーマ的に「テンプレート」だったので「ハック」ネタじゃなくって「テンプレート」ネタです。
追記:
ここにありますね。例が。なぁんだ...
MT3のエクスポート形式で書き出してMT4へインポートすると「出力ファイル名(basename)」とか「タグ」とかが引き継がれないので、その対処法。つまり、「書き出し」の代わりののテンプレートを作ってしまえないかな、というお話。
殆どMT4の lib/MT/ImportExport.pm のまま。改行位置とかがMT3だとうまくいかないところがあるのでちょっと調整しました。
MTのエクスポートフォーマットではセパレーターに連続したハイフン(-)が使われるので、ついでに行頭の-を数値参照に変換するプラグインも一緒に作った。
<$MTEntryBody exportformat="1"$>
プラグインのダウンロード
MT3側でインデックス・テンプレートとして以下のテンプレートを作成して再構築。生成されたソースを保存してMT4へインポートするとbasenameやタグをそのまま引き継げます。
<MTEntries lastn="1000">
TITLE: <$MTEntryTitle strip_linefeeds="1"$>
BASENAME: <$MTEntryBasename$>
STATUS: <$MTEntryStatus strip_linefeeds="1"$>
ALLOW COMMENTS: <$MTEntryFlag flag="allow_comments"$>
CONVERT BREAKS: <$MTEntryFlag flag="convert_breaks"$>
<MTIfNonEmpty tag="MTEntryCategory">
PRIMARY CATEGORY: <$MTEntryCategory$></MTIfNonEmpty>
<MTEntryCategories>
CATEGORY: <$MTCategoryLabel$>
</MTEntryCategories>
<MTEntryIfTagged>
TAGS: <MTEntryTags include_private="1" glue=","><$MTTagName quote="1"$></MTEntryTags></MTEntryIfTagged>
-----
<$MTEntryBody convert_breaks="0" exportformat="1"$>
-----
<$MTEntryMore convert_breaks="0" exportformat="1"$>
-----