« 目次

Movable Type オブジェクト・リファレンス

MT::Category

概要

use MT::Category;
my $cat = MT::Category->new;
$cat->blog_id($blog->id);
$cat->label('My Category');
my @children = $cat->children;
$cat->save
    or die $cat->errstr;

解説

MT::Categoryオブジェクトは、Movable Typeシステムの1カテゴリーを表し、カテゴリー名のラッパー・オブジェクトです。カテゴリー名をIDと合わせてオブジェクトにラッピングすることで、IDをエントリーとカテゴリーをマッピングするための外部キーとして用いることができます。この結果、カテゴリー名が変更されてもマッピングが維持されます。MT::Categoryオブジェクトには、カテゴリーとエントリーのマッピング情報は含まれません。詳細は、MT::Placementを参照してください。

利用方法

MT::Categoryは、MT::Objectのサブクラスで、MT::Objectのデータ管理およびデータ保存用のメソッドをすべて継承しています。新規オブジェクトの生成、既存オブジェクトの読み込み、オブジェクトの保存などの詳細は、MT::Objectを参照してください。

データ・アクセス用メソッド

MT::Categoryオブジェクトは次のデータを格納します。これらのフィールドは、MT::Objectの標準的なデータ・アクセス用メソッドで参照あるいは設定できます。

id

カテゴリーのIDです。

blog_id

このカテゴリーが登録されているブログのIDです。

label

カテゴリーの名称です。

author_id

カテゴリーを作成した投稿者のIDです。

parent_category

直接の親カテゴリーのMT::Categoryオブジェクトを返します。親カテゴリーがなければundefを返します。

parent_categories

このカテゴリーからトップレベルまでの経路を表すMT::Categoryの配列を返します。配列の最初の要素は直接の親カテゴリーになります。このカテゴリー自体がトップレベルのカテゴリーの場合は空の配列を返します。

children_categories

このカテゴリーの直接の子カテゴリーすべてを表すMT::Categoryオブジェクトの配列を返します。

$subcat->is_descendant($parent)

このカテゴリー($subcat)が、$parentの子カテゴリー(直接の子カテゴリーだけではなく、その下位も含む)である場合にtrueを返します。

$subcat->is_ancestor($child)

このカテゴリー($subcat)が、$childの親カテゴリー(直接の親カテゴリーだけではなく、上位も含む)である場合にtrueを返します。

データの検索

カテゴリー・レコードの検索では、IDによる検索の他、次のフィールドの任意の組み合わせによる検索やソートを行うことができます。詳細はMT::Objectloadメソッドの説明を参照してください。

  • blog_id
  • label

MT::Category::removeでカテゴリーを削除すると、カテゴリー・レコードだけでなく、そのカテゴリーへのマッピング(MT::Placementオブジェクト)もすべて削除されます。

クラス・メソッド

MT::Category->top_level_categories($blog_id)

MT::Categoryオブジェクトの配列を返します。これは、$blog_idに指定したブログにトップレベル・カテゴリーとして登録されているカテゴリーの配列です。


Copyright © 2001-2006 Six Apart, Ltd. All Rights Reserved.