Home> Movable Type > RightFieldsのデータをMT5のカスタムフィールドに移行した(メモ)

RightFieldsのデータをMT5のカスタムフィールドに移行した(メモ)

MT3+RightFieldsのデータをMT5のカスタムフィールドに移行した。そのメモ。

手順

  • MT3のデータをバックアップする
  • Linked Entry Custom Fields(RightFields のデータをカスタムフィールドに移行するプラグイン)をダウンロード
  • MT5をサーバにアップロード(2でダウンロードした Linked Entry Custom Fields もMT5のplugins ディレクトリ内にアップロード)
  • MT5にアップグレード

以下のページはMT4での解説だが、MT5でも同様に動作した。

RightFields のデータをカスタムフィールドに移行するプラグインのベータテストを開始 | MovableType.jp

上記で移行が完了。が、画像に関するカスタムフィールド(RightFieldsでTypeが File だったもの)がMT5のブログ記事編集画面に表示されなかった。以下のようにphpMyAdminでデータベースを修正した。

phpMyAdminでカスタムフィールドの種類を修正

ひとまずカスタムフィールドの内容を表示・確認するため、データベースを直接編集し、フィールドの種類をテキスト(複数行)に変更した。

テーブル mt_field の カラム field_type の assettextarea に変更する。手順は以下の通り。

  • phpMyAdmin にログイン
  • 左列に表示されている MTのデータベースをクリック
  • 左列に表示されている mt_field をクリック
  • フィールド field_type の左にチェックを入れ、チェックしたものを表示
  • field_type が asset になっているものにチェックを入れて、チェックしたものを変更
  • field_type を textarea に修正し、実行するボタンを押す

テキスト(複数行)として、カスタムフィールドのデータが表示されるようになった。以下のように保存されていた。

<a href="http://www.d-improvement.jp/uploads/999_thumbnail.jpg">View image</a>

これでrightFieldsのデータが移行できていることが確認できた(一安心)。

phpMyAdminでカスタムフィールドの値を一括置換

img要素のsrc属性に代入する値があれば良いので、以下の手順で一括置換した。

テーブル mt_entry_meta の カラム entry_meta_vclob を編集する。手順は以下の通り。

  • phpMyAdmin にログイン
  • 左列に表示されている MTのデータベースをクリック
  • 左列に表示されている mt_entry_meta をクリック
  • フィールド entry_meta_vclob の左にチェックを入れ、チェックしたものを表示
  • <a href="http://www.d-improvement.jp/uploads/999_thumbnail.jpg">View image</a> のようなデータがあることを確認
  • 上のナビゲーションから SQL をクリック
  • データベース [MTのデータベース名] 上で以下のクエリを実行する
UPDATE mt_entry_meta SET entry_meta_vclob=REPLACE (entry_meta_vclob,'<a href=\"','');
UPDATE mt_entry_meta SET entry_meta_vclob=REPLACE (entry_meta_vclob,'\">View image</a>','');
  • ブログ記事の管理画面にもどり、カスタムフィールドの内容が http://www.d-improvement.jp/uploads/999_thumbnail.jpg のように置換されていることを確認する

補記

カスタムフィールドの値を一括置換する前に、カスタムフィールドの種類を「画像」にしてみた(field_type を image にする)。このとき、

<a href="http://www.d-improvement.jp/uploads/999_thumbnail.jpg">View image</a>

上記HTMLがブログ記事編集画面に出力され(つまり、View imageというリンクが出力される)、その下に「画像を選択」「画像を削除」のリンクが表示される。

このとき、以下のような画像を表示するためのカスタムフィールドを書いても、画像は出力されなかった。

<mt:If tag="cfimage"><mt:cfimageAsset><img src="<$MTAssetURL$>" alt="" /></mt:cfimageAsset></mt:If>

通常「画像」のカスタムフィールドからアップロードすると、以下のようなHTMLがデータベースに登録される。

<form mt:asset-id="1" class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.d-improvement.jp/uploads/999_image.jpg">画像を表示</a></form>

form要素の

mt:asset-id="[アイテムのid]" class="mt-enclosure mt-enclosure-image"

いずれかの属性が必要なのかもしれない。未検証。

Index of all entries

Home> Movable Type > RightFieldsのデータをMT5のカスタムフィールドに移行した(メモ)

カテゴリ
アーカイブ
購読
Powerd By

Return to page top