MT5のBrand new APIと格闘してみた。
公開日 : 2010-02-20 17:40:31
スタッフの仕事の進捗がヤバげだったので急遽phpを担当することになってブロックタグの大物をMT5対応するためにガンダムBrand new APIと格闘してみたメモ書き。
# Power CMS for MTにはPHPプラグインが189もあるんだよ...
Twitter / Junnama Noda: MTのPHP API使ってアプリ開発してるのって日本でhoge人くらいなんだからこんなに力入れてガラッと変えなくても(泣)
さて、ブロックタグの中でのオブジェクトのロードや利用についてのメモを中心に。
エントリーをロード
$args['class'] = 'entry';
$args['blog_id'] = $blog_id;
$args['offset']=n;
$args['limit']=n;
$entries = $ctx->mt->db()->fetch_entries($args);
範囲指定をしてsqlでエントリー(や他のオブジェクト)を読み込む
$entries = $ctx->mt->db()->SelectLimit( $sql, $limit, $offset );
(範囲の指定無し)sqlを実行
$entries = $ctx->mt->db()->Execute( $sql );
読み込んだオブジェクト数の取得
$entries->RecordCount();
個々のレコードの取得
$entries->Move($counter);
$entry = $entries->FetchRow();
エントリーのオブジェクト化(但しcategoryやカスタムフィールドの読み込みはSQL側で調整する必要あり)
$e;
while(list ($key, $val) = each($entry)) {
if (preg_match('/^entry_/',$key)) {
$e->$key = $val;
}
}
# $ctx->stash('entry', $e);
特定のブログ記事オブジェクトの読み込み
$e = $ctx->mt->db()->fetch_entry($id);
特定のウェブページオブジェクトの読み込み
$e = $ctx->mt->db()->fetch_page($id);
Findでオブジェクトを読み込み
require_once 'class.mt_entry.php'; #entry
$_entry = new Entry;
$where = $where_statment;
$extra = array(
'limit' => $limit,
'offset' => $offset,
);
$results = $_entry->Find($where, false, false, $extra);