Movable Type 4.1 カスタムフィールドのデータの実体

Movable Type 4.1 カスタムフィールドのデータの実体

Posted at January 28,2008 1:10 AM
Tag:[CustomField, MovableType, Schema]

先日、「Movable Type カスタムフィールドの DB スキーマ」というエントリーを投稿しましたが、「実体がどこにあるか分かりません」という質問を頂きましたので、本エントリーにて紹介致します。

ブログ記事/ウェブページの場合

テーブル名:mt_entry

フィールドフィールドの意味値の意味
entry_classクラスブログ記事:entry
ウェブページ:page
 
entry_metaカスタムフィールドデータBLOB型(バイナリ) 

カテゴリー/フォルダの場合

テーブル名:mt_plugindata

フィールドフィールドの意味値の意味
plugindata_idプラグインデータID1,2…自動付与
plugindata_dataカスタムフィールドデータBLOB型(バイナリ) 
plugindata_keyシステムオブジェクトのキー情報”category_1"
"folder_3"等
システムオブジェクト+ID
plugindata_pluginプラグイン名"CustomFields"固定 

ということで、カスタムフィールドに設定されたデータは BLOB 型で保存されるので、phpMyAdmin ではそのまま参照することはできません。

カテゴリー/フォルダの場合は次のような感じです。

mt_plugindata

参考までに、phpMyAdmin での2つのテーブル構造のスクリーンショットも載せておきます。

mt_entry

mt_entry

mt_plugindata

mt_plugindata

関連記事
トラックバックURL


トラックバック

Movable Type4.1 2つの疑問 from 小さな世界
お仕事でMT4.1を使ってサイトを構築しています。 しばらくMTは触っていませんでしたが、4以降になってずいぶん変わったのですね。結構CMSらしくなって、... [続きを読む]

Tracked on March 7, 2008 4:30 PM

RightField の Plugindatの件 from ソファーACが好調!のデザイン事務所のオフィシャルBLOG
だいぶとサボッてしまいました。 いろんな人から突っ込みが。。 すみません。生き... [続きを読む]

Tracked on April 17, 2009 9:01 PM
コメント

質問させていただいたfridaです。
こちらをヒントにDBを見直したところ私はmt_plugindataの中にplugindata_key = 'entry~'としてデータが登録さているのを確認することが出来ました。
理由は良くわかりませんが無事発見できてよかったです。

早速SQLを使ってで中身を見てみたのですが、MTSerialize.phpでserializeされた形でデータが入っているのですね。
既に登録済みのブログ記事のカスタムフィールドに値を追加するのに、CSVから放り込めたら楽だと思ったのですが、ちょっと難しそうなので諦めました。
あくまでもMTから登録してMTから取り出すことを前提に活用してみたいと思います。

末尾になりますがご回答ありがとうございました。

[1] Posted by frida logo : February 2, 2008 5:14 PM

>fridaさん
こんばんは。
ご連絡ありがとうございました。
ではでは!

[2] Posted by yujiro logo : February 3, 2008 3:39 AM

こんにちは
このページの紹介ありがとうございます。

fridaさんと同じになりそうです。

mt3.3 + RightFieldsはmysqlに自分でネーミングしたテーブルに
追加フィールドをすべて登録してphpMyAdminで操作が可能です。

MT4.1のカスタムフィールドはBLOB型(バイナリ)でユーザからは
ブラックボックス化された状態だとわかりました。
バックアップのxmlも見てみましたが操作がいまいちでした。
高度なインターフェースの持ったxmlエディタがあれば別ですが。
excel2007では領域がでかすぎです。

ということで私の目的ではMT4.1が使えないことがわかりました。
次のバージョンアップでカスタムフィールドが扱えるようになって
ホシイ~なぁ!!!

なぜブラックボックス化されたんでしょうか?
皆さんもそう思いませんか。

技術的な理解が違っていたら厳しくご指導ください。
よろしくお願いします。


[3] Posted by 小さなスタンプ : February 7, 2008 3:20 AM

>小さなスタンプさん
こんばんは。
ご質問の件ですが、MT4対応のRightFieldsを待つしかないようです。
http://digibot.jp/blog/2007/07/movabletype4rightfields.html
それではよろしくお願い致します。

[4] Posted by yujiro logo : February 8, 2008 1:30 AM

こんにちは。はじめまして。

私もカスタムフィールドの内容を、
一括してcsvなどのテキストファイルからアップしたいと思っていまして、
ここにたどり着きました。

最近、以下のような記述を見つけました。
プラグインで保存するという紹介がありますが、perlで可能なのでしょうか?

http://junnama.alfasado.net/online/2008/02/post_152.html

これなら、改造してcgiプログラムで作れそうなのですが、私には理解が及びませんでした。
カスタムフィールドの一括入力の方法をどなたか開発できないでしょうか。
他人任せですみませんが、ご教示いただけると幸いです。

[5] Posted by PIRO : February 23, 2008 8:26 PM

>PIROさん
こんばんは。
ご返事遅くなりすいません。
ご質問の件ですが、「csvなどのテキストファイルからアップ」というのは、具体的にカスタムフィールドについて、どのような利用を想定されてますでしょうか(csvファイルの意味は把握しています)。
それではよろしくお願い致します。

[6] Posted by yujiro logo : March 1, 2008 12:56 AM

はじめまして。
私もカスタムフィールドへのデータの一括インポート方法を探してこちらにきました。
今、ローカル情報を載せたサイトをMTで制作しておりまして、
周辺のお店の情報(電話、場所、メニュー、画像、営業時間など)をインポートできないかと考えております。
なにか方法はあるのでしょうか?

[7] Posted by hal : March 21, 2008 6:21 PM

>halさん
こんばんは。
とりあえず簡単なスクリプトを作ってみます。
何かご希望があればおっしゃってください(ご要望通りにならない可能性大ですが、使い方がイメージしやすくなるので)。
それではよろしくお願い致します。

[8] Posted by yujiro logo : March 22, 2008 8:59 PM

カスタムフィールドに設定されたデータは BLOB 型で保存されるとのことですが、
BLOB型の値を取得して、検索システムをつくるのは可能でしょうか?
普通、txt型だったり、intだったりいろいろあるとおもうのですが、
最近はじめた初心者なので、よくわかりません。
よろしくお願いいたします。

[9] Posted by white : May 24, 2008 3:42 PM

>whiteさん
こんにちは。
ご質問の件ですが、SQLではなく、一旦BLOBを取得してから検索するのであれば、MT(Perl)のプログラムを流用すれば操作可能と思われます(察するにDB初心者の方ではないですよね)。

下記の記事が参考になるかもしれません。
Junnama Online (Mirror) - カスタムフィールドあれこれ。

なお、4.2ではカスタムフォールドのスキーマが多分変更されます。
それではよろしくお願い致します。

[10] Posted by yujiro logo : June 9, 2008 11:40 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)