NAME

Foorum::ResultSet::Comment - Foorum Comment System

SYNOPSIS

# get comments
my ($view_mode)  = ( $c->req->path =~ /\/view_mode=(thread|flat)(\/|$)/ );
my ($comment_id) = ( $c->req->path =~ /\/comment_id=(\d+)(\/|$)/ );
( $c->stash->{comments}, $c->stash->{comments_pager} )
    = $c->model('DBIC::Comment')->get_comments_by_object(
    {   object_type => 'topic',
        object_id   => $topic_id,
        page        => $page,
        view_mode   => $view_mode,
        comment_id  => $comment_id,
    }
    );

FUNCTIONS

get_comments_by_object

Usually it's used in Topic or User page, to show the comments up. opts:

object_type => 'topic',     # or 'user_profile'
object_type => $topic_id,   # or $user_id,
page        => $page,       # show which page
rows        => 20,          # optional, default as c.config.per_page.topic || 10;
view_mode   => 'flat',      # flat or thread
comment_id  => $comment_id, # for URL like /topic/$topic_id/comment_id=12/
                            # go comment_id=12's page
get_children_comments

That's mainly for thread mode. when comment_id=2's reply_to=1, that means comment_id=2 is the child of comment_id=1. meanwhile comment_id=3's reply_to=2, when we get children of comment_id=1, that's included too.

For get_comment_by_object and remove_children using.

get_all_comments_by_object($object_type, $object_id)

just get the @comments from table. no other action. with upload and text filtered.

get($comment_id, $attrs)

get one comment. attrs:

with_text => 1, # get the $comment->{text} filtered.
remove_by_object($object_type, $object_id)

remove all comments belong to one certain object.

remove_children($comment)

check the CONCEPT above.

remove_one_item($comment)

remove one comment with upload and others.

AUTHOR

Fayland Lam <fayland at gmail.com>