Universal Commenting module

Table structure:

CREATE TABLE `comment` (
  `comment_id` 	int(10) unsigned NOT NULL,
  `parent_id` 	int(11) default NULL,
  `seagull_uri` varchar(255) NOT NULL,
  `usr_id` 		int(11) NOT NULL,
  `guestname` 	varchar(32) NOT NULL,
  `subject` 	varchar(255) NOT NULL,
  `comment` 	text NOT NULL,
  `timestamp` 	timestamp NOT NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`comment_id`),
  KEY `parent_id` (`parent_id`),
  KEY `module` (`module`),
  KEY `module_2` (`module`),
  KEY `seagull_uri` (`seagull_uri`)
)

Descriptions of non-selfexplaining fields: seagull_uri identifies under which page comments will be added parent_id comment to which this comment is reply to usr_id set from session guestname if public commenting allowed this will be used. Otherwise filled from usern

INTERFACE FOR MODULES

Mostly via blocks:

Replys and saving comments from "New comment block" via "Comments" modules CommentMgr?

Also "native" interface CommentContainer? something like this:

if(this->conf['commentsEnabled']) {
	// create CommentContainer for uri
	$commentcont = new CommentContainer('simpleblog/post/' . $id);
	// if just want to display count on "summary page"
	$output->countOfComments = $commentcont->getCount();
	// or grab comments and format/manipulate them self
	$aComments = $commentcont->getAll();
	// get all in tree childs like this: $comment->children[]
	$commtTree = $commentcont->getTree();
}