アルファサード株式会社 代表取締役 野田 純生のブログ


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);

続きがあります...

参考



このブログを書いている人
野田純生の写真
野田 純生 (のだ すみお)

大阪府出身。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社の代表取締役社長であり、現役のプログラマ。経営理念は「テクノロジーによって顧客とパートナーに寄り添い、ウェブを良くする」。 プロフィール詳細へ