カテゴリインタフェース anchor.png

カテゴリモジュールの複数設置
可能
クライアントモジュールからの書き込み
なし

カテゴリは、ニュース、静的コンテンツ、ブログなど、非常に多くのモジュールで利用される機能です。

カテゴリが使われている例1
カテゴリが使われている例2

カテゴリインタフェースは、主に「カテゴリ名」「カテゴリ構造」「アクセスコントロール」の3つの機能を提供します。
クライアントとなるモジュール側では、カテゴリIDを各コンテンツデータに持たせます。そのカテゴリIDを元に、カテゴリモジュールはカテゴリ名に変換したりアクセス権のチェックを行います。

Page Top

カテゴリモジュールの機能 anchor.png

Page Top

カテゴリ名 anchor.png

getTitle(/*** string ***/ &$title, /*** string ***/ $catDir, /*** int ***/ $catId)
カテゴリIDからカテゴリ名に変換します。
getTitleList(/*** string[] ***/ &$titleList, /*** string ***/ $catDir)
カテゴリ名の一覧を取得します。一覧画面など、カテゴリIDからカテゴリ名への変換がたくさん発生する場合などに利用します。カテゴリの一覧表示には、カテゴリ構造を持つgetTreeの方が適しています。
Page Top

カテゴリ構造 anchor.png

カテゴリインタフェースのカテゴリは、親子関係を持ちツリーの構造になっていることを想定しています。ただし単純なカテゴリモジュールで親子関係を持たないフラットなものを作ることも可能で、その場合はgetParent()、getChildren()、getCatPath() は常に空(の配列)を返します。

getTree(/*** Legacy_AbstractCategoryObject[] ***/ &$tree, /*** string ***/ $catDir, /*** string ***/ $authType, /*** int ***/ $catId=0, /*** string ***/ $module=null)
カテゴリオブジェクトを、カテゴリのツリー構造の順に並べた配列を返します。配列自体は1次元のフラットな構造になっているので、ツリー状に表示するにはカテゴリオブジェクトの getDepth() で階層を調べながら整形します。一般的なツリーであれば、Smarty プラグインの legacy_tree にこの配列を渡すことでツリー状のHTMLを出力してくれます。カテゴリモジュールは、そのユーザが権限を持っているカテゴリのみを返します。
getParent(/*** Legacy_AbstractCategoryObject ***/ &$parent, /*** string ***/ $catDir, /*** int ***/ $catId)
親カテゴリのオブジェクトを取得します。
getChildren(/*** Legacy_AbstractCategoryObject[] ***/ &$children, /*** string ***/ $catDir, /*** int ***/ $catId, /*** string ***/ $authType, /*** string ***/ $module=null)
子カテゴリのオブジェクトを配列で取得します。カテゴリモジュールは、そのユーザが権限を持っているカテゴリのみを返します。
getCatPath(/*** array ***/ &$catPath, /*** string ***/ $catDir, /*** int ***/ $catId, /*** string ***/ $order='ASC')
あるカテゴリから、トップレベルのカテゴリまでのオブジェクトを配列で取得します。
Page Top

アクセス権 anchor.png

カテゴリインタフェースでは、カテゴリID、ユーザID、アクション(閲覧、編集など)の3つの要素で権限の有無をチェックします。
アクセス権の機能を持たない、単純なカテゴリモジュールを作る場合は、hasPermission()は常にtrueを返し、getPermittedIdList() はすべてのカテゴリIDを返すようにします。

hasPermission(/*** bool ***/ &$check, /*** string ***/ $catDir, /*** int ***/ $catId, /*** string ***/ $authType, /*** string ***/ $module=null)
カテゴリID、アクション(閲覧、編集など)の組み合わせで、ユーザに権限があるかないかをチェックします。ユーザIDは、カテゴリモジュール側で Legacy_Utils::getUid() などを用いて取得します。
getPermittedIdList(/*** int[] ***/ &$idList, /*** string ***/ $catDir, /*** string ***/ $authType, /*** int ***/ $uid, /*** int ***/ $catId=0, /*** string ***/ $module=null)
あるユーザが、特定のアクション(閲覧、編集など)について権限を持っているカテゴリIDの配列を返します。
Page Top

関係するクラス anchor.png

Legacy_AbstractCategoryObject
カテゴリインタフェースで返すオブジェクトは、このアブストラクトオブジェクトを継承したオブジェクトです。
Page Top

関係する Smarty プラグイン anchor.png

legacy_tree
getTree() で取得したカテゴリの配列を元にツリー状のHTMLに出力します。デフォルトでは legacy_inc_tree.html をアウトプットのテンプレートとして使いますが、template パラメタを指定することで独自のテンプレートを適用することも出来ます。
legacy_category_select
コンテンツを登録するときに、カテゴリを選択するためのセレクトボックスを表示するためのプラグインです。getTree() で取得した配列をパラメタとして渡します。

Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 1985, today: 1, yesterday: 1
Princeps date: 2011-10-01 (Sat) 10:11:57
Last-modified: 2011-10-01 (Sat) 10:36:03 (JST) (2763d) by admin