The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Foorum::ResultSet::Forum - Forum object

FUNCTION

get
  $schema->resultset('Forum')->get( $forum_id );
  $c->model('DBIC::User')->get( $forum_id );
  $c->model('DBIC::User')->get( $forum_code );

get() do not query database directly, it try to get from cache, if not exists, get from database and set a cache. (we may call it $forum_obj below)

  {
    forum_id   => 1,
    forum_code => 'FoorumTest',
    # other columns in database
    forum_url  => '/forum/ForumTest',
    settings   => {
        can_post_threads => 'Y',
        can_post_replies => 'N',
        can_post_polls   => 'Y'
    }
  }

settings in the hash is from Foorum::ResultSet::ForumSettings get_basic.

return $HASHREF

update_forum($forum_id, $update)
  $schema->resultset('Forum')->update_forum( $forum_id, { last_post_id => $topic_id } );
  $c->model('DBIC::Forum')->update_forum( $forum_id, { total_members => $members } );

inside, it calls search( { forum_id => $forum_id } )->update($update) and remove cache in get

remove_forum($forum_id)
  $schema->resultset('Forum')->remove_forum( $forum_id );

delete all things belong to $forum, BE CAREFUL, it's un-recoverable.

merge_forums($info)
  $schema->resultset('Forum')->merge_forums( { from => $old_forum_id, to => $new_forum_id } );

move things belong to $old_forum_id to $new_fourm_id

validate_forum_code($forum_code)
  $schema->resultset('Forum')->validate_forum_code( $forum_code );
  $c->model('DBIC::Forum')->validate_forum_code( $forum_code );

validate $forum_code, return nothing means OK while return $str is an error_code like 'LENGTH', 'HAS_RESERVED' and others.

AUTHOR

Fayland Lam <fayland at gmail.com>