PHPerのための Movable Type 講座(その2)
公開日 : 2014-04-10 18:17:01
あーしんど(爆)
※続き書いた。
その2。
fetch_author
IDを指定するとユーザー(Authorオブジェクト)を返します。
$author = $mt->db()->fetch_author( 1 );
fetch_author_by_name
IDではなく、ユーザー名(ログイン名)を指定してユーザーをロードします。
$author = $mt->db()->fetch_author_by_name( 'junnama' );
fetch_authors
ユーザー(Authorオブジェクト)の配列を返します。 以下の例は、ブログ(ID1)に記事投稿のあるユーザーの配列を返します。その他$argsに指定できるのは、MTAuthorsテンプレートタグに指定できるモディファイアと同じと考えて良いです。
$args = array( 'blog_id' => $blog_id, 'need_entry' => 1 );
$authors = $mt->db()->fetch_authors( $args );
fetch_permission
パーミッション(権限=Permissionオブジェクト)の配列を返します。 以下の例では、blog_idに0を指定しているため、$author_idのユーザーのシステム権限が返ります。
$args = array( 'blog_id' => 0, 'id' => $author_id );
$perms = $mt->db()->fetch_permission( $args );
if ( !empty( $perms ) ) {
$perms = $perms[ 0 ];
}
fetch_all_roles
すべてのロール(Roleオブジェクト)の配列を返します。
$roles = $mt->db()->fetch_all_roles();
fetch_association
Aassociationオブジェクトの配列を返します。Associationとは、ブログとユーザーとロールの関連づけ情報を格納しているオブジェクトです。 ユーザー(ID1)がブログ1に対してロール「ライター」(role_idが1の時)権限を持っている時、associationsにauthor_idが1のAssociationオブジェクトが含まれます。
$args = array( 'blog_id' => 1, 'role_id' => array( 1 ) );
$associations = $mt->db()->fetch_associations( $args );
fetch_tag
IDを指定すると、Tagオブジェクトを返します。
$tag_id = 1;
$tag = $mt->db()->fetch_tag( $tag_id );
fetch_tag_by_name
IDではなく、タグ名(文字列)を渡してTagオブジェクトをロードします。
$tag = $mt->db()->fetch_tag( 'MovableType' );
fetch_scores(fetch_score, fetch_sum_scores, fetch_avg_scores)
使ったことないので、よくわかりませんw(おい) 要するに、MTEntryScore等で使う、「スコア」(MT5から実装されたぽい)をロードすすようなもの?
$scores = $mt->db()->fetch_scores( $namespace, $obj_id, $datasource );
$score = $mt->db()->fetch_score( $namespace, $obj_id, $author_id, $datasource );
cache_permalinks(cache_category_links)
Entryオブジェクトの配列を渡すと(cache_category_linksの場合はCategoryオブジェクトの配列)、permalink をキャッシュします。内部的にパフォーマンスのために使うものです(fetch_entries等の中で使われています)。成功すると、TRUEが返ります。
cache_comment_counts
Entryオブジェクトの配列を渡すと各記事のコメント数をカウントしてキャッシュします。これも、高速化のために内部的に利用されます。
blog_entry_count
その名の通り、ブログの記事数を返します。
$args = array( 'blog_id' => 1 );
$count = $mt->db()->blog_entry_count( $args );
blog_comment_count(category_comment_count)
その名の通り、ブログ(カテゴリ)のコメント数を返します。
blog_ping_count
ブログのトラックバック数を返します。トラックバックは、もういいや。
tags_entry_count
何か、動かないっぽい(おい)
(追記)バグ見つけた。mtdb.base.php の 2706行目、andの前にスペースを入れると、動きます(おい)
$where .= "and entry_status = 2 and entry_class = '$class'";
// ↓スペース追加
$where .= " and entry_status = 2 and entry_class = '$class'";
entry_comment_count
$entry_idを渡すと、コメント数を返します。
$count = $mt->db()->entry_comment_count( $entry_id );
asset_count
blog_idとtype(アイテムの種類)を指定して、アイテム数を返します。
$args = array( 'blog_id' => $blog_id, 'type' => 'image' );
$count = $mt->db()->asset_count( $args );
author_entry_count
ユーザーの記事数を返します。
$args = array( 'blog_id' => $blog_id, 'author_id' => $author_id );
$count = $mt->db()->author_entry_count( $args );
entry_ping_count(category_ping_count)
記事ID(カテゴリID)を渡すと、トラックバック数を返します。トラックバックはもう(ry
fetch_pings
トラックバックオブジェクトの配列を返します。引数$argsに、MTPingsテンプレートタグに指定するモディファイアの内容が指定可能です。トラックバックはもう(ry
fetch_assets
アイテム(Assetオブジェクト)の配列を返します。exclude_thumb 指定で、MTが生成したサムネイルを除外してロードします。
$args = array( 'blog_id' => $blog_id,
'type' => 'image',
'exclude_thumb' => 1 );
$assets = $mt->db()->fetch_assets( $args );
続く、かも。