*PUBLOG 開発ドキュメント

0.07以降

**基本用語

-表示プラグイン
--ログインユーザーに対して送るＷｅｂページを生成して返す
--単に「プラグイン」と書いた場合、表示プラグインを指す
--（注意）「表示」プラグインといっても、いろんな処理もしますよ。

-ベース(base)
--PUBLOG システム１単位。単純に言うと、＝サーバー。
--でも、１つのサーバーに複数のPUBLOG が入ってる場合もあるので、一概には言えないよ。
-ベースの下に、複数のプロジェクトがぶらさがる。

-プロジェクト(project)
--単純に言うと、＝サイト。
--スタッフの管理は、プロジェクト単位でおこなう。
--プロジェクトには必ず一人オーナーが存在する。
--プロジェクトの下に、複数のスレッドがぶらさがる。

-スレッド(thread)
--ひとつのテーマに沿った情報の系列を管理する単位。
--「スレッド種別」によって、スレッドの機能、データの内容はさまざま。

-スレッド種別(thread type)
--PUBLOG 上では、スレッド種別ごとにさまざまな機能を付加することができる。
--スレッド種別が異なれば、その機能や、保持するデータの内容、保存形式などはまったく違う。
--逆に言うと、機能とデータ形式は、スレッドプラグインにお任せ。
--例えば、スレッド種別が「掲示板」であれば、掲示板としての機能を持つ。

-レス(res)
--スレッド種別が「掲示板」のスレッドの中の最小情報単位。
--平たく言えば、「投稿」です。
--スレッドの下に、複数のレスがぶらさがる。


-エントリー(entry)
--スレッド種別が「blog」「iblog」のスレッドの中の情報単位。
--平たく言えば、これまた「投稿」みたいなものです。
--スレッドの下に、複数のエントリーがぶらさがる。

-コメント(comment)
--スレッド種別が「ブログ」のスレッドの中の情報単位。
--エントリーの下に複数のコメントがぶらさがる。
--PUBLOG-iblog では、トラックバックもコメントのひとつとして扱う(writeback方式)

-ルートスレッド
--プロジェクト管理下のスレッドが集まったもの＝スレッドのリスト。
--略して板（いた）と呼んだりもする。
--現時点では、スレッドはルートに対して1層まで。つまり、ツリー構造ではない。



**処理の基本的な流れ

-publog.phpが呼び出される
-受け渡し引数の sanitize (psanitize)
--\0除去
--内部エンコードへの変換
--sanitize された内容は $vars[] に入る。
-表示プラグインの読み込み
-- 表示プラグインメッセージファイルの読み込み
-- do_mod_init()
-- do_mod_action() 表示プラグインごとのさまざまな処理
-- ユーザーのブラウザに返す内容は、 $retvars['body'] に入る。
-- $retvars['body'] の内容をユーザーに返す。


**基本的なファイル構成

*** スクリプトに関して
