Bb Discussion Forum
Contents |
Problem
Figure out how to identify and retrieve data from a Bb 6.3 discussion forum.
Steps towards solution
Blackboard::CourseContents gets all the contents for a given course. Each element of a course site has a content handler.
The Discussion Boards do not make an entry in this. So it appears the discussion forums are considered as separate to the normal hierarchy.
The discussion board tables are
- CONFERENCE_MAIN is the table that lists all of the discussion forums for a course
- FORUM_MAIN contains information about forums that make up that conference
- MSG_MAIN contains the message/thread information for each forum
Proposed solution
my $conference = Blackboard::CourseConference->new( PERIOD => YEAR => COURSE => )
Get all the information about the conferences for a course.
- DATA will be an array hash refs containing information from CONFERENCE_MAIN - i.e. one entry = one conference
- Each entry will have a key FORUMS which is an array of hash refs containing information about the forums in the conference
- Each forum entry will have a key MESSAGES which is an array of hash refs containing message information
This will get a complex, hierarchical array of hashes with all the information. Need something a little easier to find the actual messages.
e.g.
my $last = $conference->lastMessages( CONFERENCE => "The Conference", NUM => 10 );
Get the last 10 messages for the Conference called "The Conference"
Current status
Model is basically finished, it will return a fixed number of the most recent messages for a given conference. Time to get the view generating the RSS
use strict;
use Data::Dumper;
use webfuse::lib::Blackboard::CourseConference;
my $COURSE='ACCT19064';
my $PERIOD='T2';
my $YEAR=2008;
my $conference = Blackboard::CourseConference->new(
COURSE => $COURSE, PERIOD => $PERIOD, YEAR => $YEAR );
my $msgs = $conference->getLastMessages( CONFERENCE => "Audit Team 14", NUM => 1 );
The extension will be something like the following (merged with the above)
use webfuse::lib::Blackboard::RSS::Conference_View; my $view = Blackboard::RSS::Conference_View->new( MODEL => $conference ); print $view->Display();



