--- loncom/interface/lonbulletin.pm 2009/12/22 06:32:04 1.57
+++ loncom/interface/lonbulletin.pm 2012/11/17 00:05:50 1.65
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Bulletin Board Handler
#
-# $Id: lonbulletin.pm,v 1.57 2009/12/22 06:32:04 faziophi Exp $
+# $Id: lonbulletin.pm,v 1.65 2012/11/17 00:05:50 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -78,7 +78,7 @@ sub handler {
# ------------------------------------------------------------ Get Query String
&Apache::loncommon::get_unprocessed_cgi
- ($ENV{'QUERY_STRING'},['forcestudent','forceedit','register',
+ ($ENV{'QUERY_STRING'},['forceedit','register',
'origpage','group','ref']);
# ----------------------------------------------------- Force menu registration
my %addentries;
@@ -86,11 +86,11 @@ sub handler {
$addentries{'onload'} = "document.location='#newpost';";
}
# --------------------------------------------------------------- Force Student
- my $forcestudent='';
- if ($env{'form.forcestudent'}) { $forcestudent='student'; }
-
- my $forceedit='';
- if ($env{'form.forceedit'}) { $forceedit='edit'; }
+ my ($forceedit,$forcestudent);
+ $forceedit = $env{'form.forceedit'};
+ if (!$forceedit) {
+ $forcestudent=1;
+ }
my $refarg = '';
if (exists($env{'form.ref'})) { $refarg = 'ref='.$env{'form.ref'}; }
@@ -125,21 +125,17 @@ sub handler {
# --------------------------------------- There is such a user, get environment
if ($target ne 'tex') {
- my $course_or_group;
+ my ($course_or_group,$brcrum);
if($group eq '') {
$course_or_group="Course";
} else {
$course_or_group="Group";
}
- my $start_page =
- &Apache::loncommon::start_page("$course_or_group Discussion Board",undef,
- {'function' => $forcestudent,
- 'add_entries' => \%addentries,
- 'domain' => $dom,
- 'force_register' =>
- $env{'form.register'}});
- $r->print($start_page);
+ my $registered;
if ($group ne '' && $env{'form.group'} eq $group) {
+ unless ($env{'form.ref'} eq 'grouplist') {
+ $registered = $env{'form.register'};
+ }
my $gpterm = &Apache::loncommon::group_term();
my $ucgpterm = $gpterm;
$ucgpterm =~ s/^(\w)/uc($1)/e;
@@ -149,10 +145,28 @@ sub handler {
if ((ref($groupboards) eq 'ARRAY') && (@{$groupboards} > 0)) {
$boardtitle = $$boards{$$groupboards[0]}{'title'};
}
- $boardurl .= '?register=1&group='.$group;
- $r->print(&groupboard_breadcrumbs($dom,$crs,$group,$refarg,$gpterm,
- $ucgpterm,$grp_desc,$boardurl,$boardtitle));
+ $boardurl .= '?group='.$group;
+ if ($registered) {
+ $boardurl .= '®ister='.$env{'form.register'};
+ } else {
+ $brcrum =
+ &groupboard_breadcrumbs($dom,$crs,$group,$refarg,$gpterm,
+ $ucgpterm,$grp_desc,$boardurl,
+ $boardtitle);
+ }
+ } else {
+ $registered = $env{'form.register'};
+ $brcrum = [];
}
+ my $start_page =
+ &Apache::loncommon::start_page("$course_or_group Discussion Board",undef,
+ {'add_entries' => \%addentries,
+ 'domain' => $dom,
+ 'bread_crumbs' => $brcrum,
+ 'group' => $group,
+ 'force_register' => $registered}
+ );
+ $r->print($start_page);
}
my ($allowed);
if ($group ne '') {
@@ -173,37 +187,8 @@ sub handler {
$allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'});
}
- my $privileged=$allowed;
- if (($syllabus{'uploaded.lastmodified'}) && (!$forceedit)) {
- $forcestudent='student';
- }
if ($forcestudent or $target eq 'tex') { $allowed=0; }
- if ($allowed) {
- my $query_str = 'forcestudent=1';
- if (($group ne '') && ($env{'form.group'} eq $group)) {
- $query_str.='&group='.$group.'&'.$refarg;
- }
- #Function Box for Edit Mode.
- my $functionbox = &Apache::lonhtmlcommon::start_funclist();
- $functionbox .= &Apache::lonhtmlcommon::add_item_funclist(
- ''.&mt('Show Student View').''.
- &Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView'));
- $functionbox.=&Apache::lonhtmlcommon::end_funclist();
- $r->print(&Apache::loncommon::head_subbox($functionbox).&Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes')));
- } elsif ($privileged and $target ne 'tex') {
- my $query_str = 'forceedit=edit';
- if (($group ne '') && ($env{'form.group'} eq $group)) {
- $query_str.='&group='.$group.'&'.$refarg;
- }
- #Functionbox for Student view.
- my $functionbox = &Apache::lonhtmlcommon::start_funclist();
- $functionbox .= &Apache::lonhtmlcommon::add_item_funclist(
- "".&mt('Edit')."");
- $functionbox.=&Apache::lonhtmlcommon::end_funclist();
- $r->print(&Apache::loncommon::head_subbox($functionbox));
- }
-
if (($env{'form.uploaddoc.filename'}) &&
($env{'form.storeupl'}) && ($allowed)) {
if ($env{'form.uploaddoc.filename'}=~/\.(gif|jpg|png|jpeg)$/i) {
@@ -212,11 +197,11 @@ sub handler {
}
if ($group ne '') {
$syllabus{'uploaded.photourl'}=
- &Apache::lonnet::userfileupload('uploaddoc',1,
+ &Apache::lonnet::userfileupload('uploaddoc','coursedoc',
'bulletin/'.$group.'/'.$marker);
} else {
$syllabus{'uploaded.photourl'}=
- &Apache::lonnet::userfileupload('uploaddoc',1,
+ &Apache::lonnet::userfileupload('uploaddoc','coursedoc',
'bulletin/'.$marker);
}
}
@@ -259,7 +244,6 @@ sub handler {
&Apache::lonnet::allowuploaded('/adm/syllabus',
$syllabus{'uploaded.photourl'});
}
- my @htmlids=();
#Outputbox and Inputbox for Image upload
if ($allowed) {
my $message = '';
@@ -267,52 +251,21 @@ sub handler {
$r->print($message);
$r->print("
");
$r->print(
- ''.
+ ''.
''.
- ''.
- '');
+ '');
&Apache::lontemplate::print_end_template($r);
}
#Image in Student view.
elsif($syllabus{'uploaded.photourl'} && $target ne 'tex'){
$r->print('');
}
- foreach my $field (sort(keys(%syllabusfields))) {
- if (($syllabus{$field}) || ($allowed)) {
- my $message=$syllabus{$field};
- if (!&Apache::lonfeedback::contains_block_html($message)) {
- &Apache::lonfeedback::newline_to_br(\$message);
- } else {
- $message = &Apache::lonfeedback::tidy_html($message);
- }
- $message=&Apache::lonhtmlcommon::raw_href_to_link($message);
- if ($allowed) {
- $message=&Apache::lonspeller::markeduptext($message);
- }
- $message=&Apache::lontexconvert::msgtexconverted($message);
- unless ($field eq 'aaa_title') {
- if ($target ne 'tex') {
- #output of syllabusfields will be generated here.
- &Apache::lontemplate::print_start_template($r,$syllabusfields{$field},'LC_Box');
- $r->print($message);
- if ($allowed) {
- $r->print("
'.&mt('No page information provided.').'
'); + if ($target ne 'tex') { + $r->print(''.&mt('No page information provided.').'
'); + } } #Lists discussion posts and box for a new discussion post. if ($target ne 'tex') { @@ -350,25 +305,25 @@ sub groupboard_breadcrumbs { my ($cdom,$cnum,$group,$refarg,$gpterm,$ucgpterm,$description,$boardurl, $boardtitle)= @_; &Apache::lonhtmlcommon::clear_breadcrumbs(); + my $brcrum = []; if ($refarg ne '') { - &Apache::lonhtmlcommon::add_breadcrumb - ({href=>"/adm/coursegroups", - text=>"Groups", - title=>"View course groups"}); - } - &Apache::lonhtmlcommon::add_breadcrumb - ({href=>"/adm/$cdom/$cnum/$group/smppg?$refarg", - text=>"$ucgpterm: $description", - title=>"Go to group's home page"}, - {href=>"/adm/groupboards?group=$group&$refarg", - text=>"Discussion Boards", - title=>"Display group discussion boards"}, - {href=>"$boardurl", - text=>"$boardtitle", - title=>"$boardtitle"}, + push(@{$brcrum}, + {href=>"/adm/coursegroups", + text=>"Groups", + title=>"View course groups"}); + } + push(@{$brcrum}, + {href=>"/adm/$cdom/$cnum/$group/smppg?$refarg", + text=>"$ucgpterm: $description", + title=>"Go to group's home page"}, + {href=>"/adm/groupboards?group=$group&$refarg", + text=>"Discussion Boards", + title=>"Display group discussion boards"}, + {href=>"$boardurl", + text=>"$boardtitle", + title=>"$boardtitle"}, ); - my $output .= &Apache::lonhtmlcommon::breadcrumbs(&mt('[_1] discussion boards - [_2]',$gpterm,$description)); - return $output; + return $brcrum; } 1;