Home> Movable Type > RightFieldsのデータをMT5のカスタムフィールドに移行した(メモ)
RightFieldsのデータをMT5のカスタムフィールドに移行した(メモ)
- 2010年3月14日 23:16
- Movable Type
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 の asset を textarea に変更する。手順は以下の通り。
- 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"
いずれかの属性が必要なのかもしれない。未検証。
- Newer: 画像,PDFのアップロード先をログインユーザー名に応じて自動指定する
- Older: jQueryで角丸
Home> Movable Type > RightFieldsのデータをMT5のカスタムフィールドに移行した(メモ)
- カテゴリ
- アーカイブ
- 購読
- Powerd By