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です。
カテゴリーの名称です。
カテゴリーを作成した投稿者のIDです。
直接の親カテゴリーのMT::Categoryオブジェクトを返します。親カテゴリーがなければundefを返します。
このカテゴリーからトップレベルまでの経路を表すMT::Categoryの配列を返します。配列の最初の要素は直接の親カテゴリーになります。このカテゴリー自体がトップレベルのカテゴリーの場合は空の配列を返します。
このカテゴリーの直接の子カテゴリーすべてを表すMT::Categoryオブジェクトの配列を返します。
このカテゴリー($subcat)が、$parentの子カテゴリー(直接の子カテゴリーだけではなく、その下位も含む)である場合にtrueを返します。
このカテゴリー($subcat)が、$childの親カテゴリー(直接の親カテゴリーだけではなく、上位も含む)である場合にtrueを返します。
カテゴリー・レコードの検索では、IDによる検索の他、次のフィールドの任意の組み合わせによる検索やソートを行うことができます。詳細はMT::Objectのloadメソッドの説明を参照してください。
MT::Category::removeでカテゴリーを削除すると、カテゴリー・レコードだけでなく、そのカテゴリーへのマッピング(MT::Placementオブジェクト)もすべて削除されます。
MT::Categoryオブジェクトの配列を返します。これは、$blog_idに指定したブログにトップレベル・カテゴリーとして登録されているカテゴリーの配列です。