--- loncom/homework/lonsimpleproblemedit.pm 2006/06/30 01:16:41 1.19 +++ loncom/homework/lonsimpleproblemedit.pm 2009/02/01 20:40:28 1.20 @@ -1,7 +1,7 @@ # The LearningOnline Network # Simple Problem Parameter Setting "Editor" # -# $Id: lonsimpleproblemedit.pm,v 1.19 2006/06/30 01:16:41 albertel Exp $ +# $Id: lonsimpleproblemedit.pm,v 1.20 2009/02/01 20:40:28 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -143,13 +143,16 @@ ENDFOIL sub get_parent_uri { my ($cur_symb)=@_; my $navmap = Apache::lonnavmaps::navmap->new(); - my $it = $navmap->getIterator(undef, undef, undef, 1); - while ( my $res=$it->next()) { - if (ref($res) && $res->symb() eq $cur_symb) { last; } - } - my ($src,$symb,$anchor)=&Apache::lonnavmaps::getLinkForResource($it->getStack()); - if (defined($anchor)) { $anchor='#'.$anchor; } - return $src.'?symb='.&escape($symb).$anchor; + if (defined($navmap)) { + my $it = $navmap->getIterator(undef, undef, undef, 1); + while ( my $res=$it->next()) { + if (ref($res) && $res->symb() eq $cur_symb) { last; } + } + my ($src,$symb,$anchor)=&Apache::lonnavmaps::getLinkForResource($it->getStack()); + if (defined($anchor)) { $anchor='#'.$anchor; } + return $src.'?symb='.&escape($symb).$anchor; + } + return; } sub handler { @@ -219,8 +222,14 @@ sub handler { $spell_header)); if ($symb) { $r->print('

'.&Apache::lonnet::gettitle($symb).'

'); - $r->print('
'. - ''.&mt('Student View').' - '.&mt('Note: it can take up to 10 minutes for changes to take effect for all users.'). + $r->print('
'); + my $displaylink = &get_parent_uri($symb); + if ($displaylink ne '') { + $r->print(''.&mt('Student View').' - '); + } else { + $r->print(''.&mt('An error occurred retrieving the link to this problem').'
'.&mt('You may need to [_1]re-select the course[_2] and then return to this resource to view it.','','').'

'); + } + $r->print(&mt('Note: it can take up to 10 minutes for changes to take effect for all users.'). &Apache::loncommon::help_open_topic('Caching').'
'); $r->print('
'. &rawrendering($symb).