2006年4月18日火曜日

MovableType 「CustomFields」入力項目の拡張

MovableType 3.2 で、エントリー等に項目を独自に追加するのに何かプラグインはないか探したところ、Googleで「Movable 拡張 項目」で検索して、「CustomFields」を見つけました。
これを導入すると、エントリーやカテゴリーに好きな項目を新たに追加できます。
企業検索ComSearchプレスリリースのシステムにMovableTypeを使って、エントリーの追加項目に「CustomFields」にIDとか企業名、URL等に使用しています。
http://www.movalog.com/plugins/wiki/CustomFields
の「Installation Instructions」のリンクをたどるとダウンロードできます。
導入方法、追加方法はCustomFieldsで検索すれば出てきますので、ここでは、追加された項目&データはデータベースのどこに拡張されるか、及び別システムのプログラムからこの追加項目をどう参照するか記載しておきます。
(MEMO)
例)エントリーに、comid,comurl,comnameを拡張した場合。(DBはmysql)
-----------------------
格納DB表:mt_plugindata
-----------------------
項目名      :内容
-----------------------
plugindata_id  :id番号
plugindata_data :[BLOB] MTでシリアル化されたデータが入る。
plugindata_key  :entry_xx (xxは、mt_entryのentry_id番号)
plugindata_plugin:entries
-----------------------
で、phpからエントリーID 4の拡張データを取得したい場合は、
MTのMTSerialize.phpをincludeして、mt_plugindataからplugindata_data
を取得して、unserialize()するとデータを取ることができます。
----------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
</head>
<body>
<?php
include('xxx/xxx/mt/php/lib/MTSerialize.php');
$mt = new MTSerialize;
$con = mysql_connect("localhost", "xxxx", "xxxx");
mysql_select_db("zzzzz");
$sql = "select plugindata_data from mt_plugindata
where plugindata_plugin = 'entries'
and plugindata_key = 'entry_4'";
$result = mysql_query($sql);
$rec = mysql_fetch_row($result);
$value = $mt->unserialize($rec[0]);
//--------------------
print var_dump($value);
//--------------------
print "<br>";
print $value['comid'];
?>
</body>
</html>

0 件のコメント:

コメントを投稿