cd_topicの詳細
各インデックスページで宣言されるグローバル変数 $topic は、カテゴリー全体を表す cd_topic 型のインスタンスであり、インデックスページのスクリプトにおける、唯一のグローバル変数でもあります。画面出力を受け持つ textout.php では、$topic の内容をいかに HTML化するかという事に終始します。
ここでは cd_topic クラスのそれぞれのメンバ変数について説明します。クラス定義文等は、前ペーシの定義済クラスも参照して下さい。
$id
このカテゴリーを示す ID です。全ページを通して、$id が同一であるページというものは存在しません。実体はルートカテゴリからこのカテゴリまでをスラッシュで区切って表した文字列です。
$id は ODP のディレクトリデータベースでは一意性を示す値として利用されますが、CustomDir ではあまり積極的に活用する事は無く、一意性を示す値は後述の $catid を主に利用します。何かしらの ODP 活用ツールと CustomDir を併用する時には、$id、または後述の $enccatpath を利用して下さい。
$catid
カテゴリーの一意性を示す、正の整数です。カテゴリーID と呼びます。$catid が同一であるページは存在しません。$catid は、CustomDir のディレクトリの表現にも利用されています。
$title
このカテゴリのタイトルです。
$path
このカテゴリのディレクトリ階層を示す文字列で、ルートディレクトリから今のディレクトリまでのそれぞれのカテゴリーID をスラッシュで繋いだ物です。1文字目はルート階層を示すスラッシュではじまり、必ずスラッシュで終わります。なお、現在の CustomDir は日本階層のみをサポートしていますので、先頭部分は必ず /16/49884/になりますが、それを前提としたコーディングは、将来の動作が保証されません。
$path は将来全階層をサポートした時の事を考慮してこのような構造になっていますが、現在のバージョンではトップディレクトリや /16/ ディレクトリには何もファイルが無く、これらのディレクトリをサーバーにアップロードする必要もありません。サーバーに必ずアップロードしなくてはならないのは /16/49884/ 以下です。よって $path を利用するコーディングを行う場合は、日本階層より上のディレクトリは存在しないかも知れない事を前提として下さい。実際には $path を積極的に活用するべきではありません。ディレクトリ階層の情報が必要な時は、後述の $parentdir[2] を利用して下さい。
$description
このカテゴリの説明文です。HTML タグが含まれている事がありますので、必要に応じてサニタイジング(無効化)して下さい。
$enccatpath
$path を UTF-8 文字セットで表現し、さらに URLエンコードしたものです。利用しているパッケージの文字セットがどのような物であっても、$enccatpath は UTF-8 文字セットのURLエンコード文字列になります。
この変数は ODP の各種 CGI に渡すパラメーターとして利用します。
$category
このカテゴリーに登録されている、カテゴリーとショートカットの配列です。cd_category 型のインスタンスと、cd_symbplic 型のインスタンスが混在しています。どちらのインスタンスか調べたい時は、PHP のクラス操作関数である get_class() を利用して下さい。登録されているインスタンスは、
$site
登録されているサイトの配列です。cd_link 型のインスタンスが格納されています。登録されているインスタンスは、
$related
登録されている関連カテゴリーの配列です。cd_category 型のインスタンスが格納されています。登録されているインスタンスは、
$news
登録されているニュースグループの、URLの配列です。
$editor
登録されているエディタの、名前の配列です。
$parentdir
このカテゴリーの親カテゴリーの配列です。要素0がトップ階層を示し、以後、階層の深さでソートされています。cd_category 型のインスタンスが格納されています。
$parentdir は親ディレクトリを一階層ずつ示しているだけの配列ですが、CustomDir の構造上、$parentdir[2] は特別な意味を持ちます。この要素は、どのページから見ても日本階層を示していますので、_sys ディレクトリ等、システムで利用するディレクトリの位置を特定するのに便利です。
- 概要
- パッケージのファイル構成
- index.php について
- 文字コードについて
- _sys ディレクトリ
- 定義済クラス
- cd_topic の詳細
