--- loncom/interface/lonprintout.pm 2009/07/16 11:12:30 1.557.2.3 +++ loncom/interface/lonprintout.pm 2009/08/17 10:48:28 1.560.2.1 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.557.2.3 2009/07/16 11:12:30 foxr Exp $ +# $Id: lonprintout.pm,v 1.560.2.1 2009/08/17 10:48:28 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -104,7 +104,7 @@ sub fetch_raw_resource { sub annotate { my ($symb) = @_; - my $annotation_text = &Apache::admannotations::get_annotation($symb, 1); + my $annotation_text = &Apache::loncommon::get_annotation($symb, 1); my $result = ""; @@ -230,6 +230,10 @@ sub include_pdf { sub ssi_with_retries { my ($resource, $retries, %form) = @_; + my $target = $form{'grade_target'}; + my $aom = $form{'answer_output_mode'}; + + my ($content, $response) = &Apache::loncommon::ssi_with_retries($resource, $retries, %form); if (!$response->is_success) { @@ -1356,7 +1360,7 @@ sub print_page_in_course { &Apache::lonnet::delenv('construct.style'); } - # First is theo verall page description. This is then followed by the + # First is the overall page description. This is then followed by the # components of the page. Each of which must be printed independently. my $the_page = shift(@page_resources); @@ -1418,16 +1422,18 @@ sub print_page_in_course { if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') || ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) { - $form{'problem_split'}=$parmhash{'problem_stream_switch'}; - $form{'grade_target'}='answer'; - $form{'answer_output_mode'}='tex'; - $form{'rndseed'}=$rndseed; + my %answerform = %form; + + + $answerform{'problem_split'}=$parmhash{'problem_stream_switch'}; + $answerform{'grade_target'}='answer'; + $answerform{'answer_output_mode'}='tex'; + $answerform{'rndseed'}=$rndseed; if ($helper->{'VARS'}->{'probstatus'} eq 'exam') { - $form{'problemtype'}='exam'; + $answerform{'problemtype'}='exam'; } - $resources_printed .= $currentURL.':'; - my $answer=&ssi_with_retries($currentURL,$ssi_retry_count, %form); - + $resources_printed .= $urlp.':'; + my $answer=&ssi_with_retries($urlp,$ssi_retry_count, %answerform); if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/; @@ -1722,8 +1728,16 @@ sub output_data { ENDPART - - my $start_page = &Apache::loncommon::start_page('Preparing Printout',$js); + # Breadcrumbs + #FIXME: Choose better/different breadcrumbs?!? Links? + my $brcrum = [{'href' => '', + 'text' => 'Helper'}, #FIXME: Different origin possible than print out helper? + {'href' => '', + 'text' => 'Preparing Printout'}]; + + my $start_page = &Apache::loncommon::start_page('Preparing Printout', + $js, + {'bread_crumbs' => $brcrum,}); my $msg = &mt('Please stand by while processing your print request, this may take some time ...'); $r->print($start_page."\n

\n$msg\n

\n"); @@ -1896,7 +1910,6 @@ ENDPART && $currentURL=~/\.(sequence|page)$/ && $helper->{'VARS'}->{'construction'} eq '1') { #printing content of sequence from the construction space - &Apache::lonnet::logthis("Printing sequence/page but construction space??"); $currentURL=~s|\/~([^\/]+)\/|\/home\/$1\/public_html\/|; # $result .= &print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); @@ -1934,7 +1947,6 @@ ENDPART $result .= &include_pdf($cleanURL); $result .= '\end{document}'; } elsif ($cleanURL =~ /\.page$/i) { # Print page in non construction space contexts. - &Apache::lonnet::logthis("Printing .page $cleanURL at " . __LINE__); # Determine the set of resources in the map of the page: @@ -1950,6 +1962,8 @@ ENDPART $helper->{'VARS'}->{'symb'}); } } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') or + ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_in_page') or + ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_resources_in_page') or ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') or ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_resources') or # BUGBUG @@ -1958,9 +1972,13 @@ ENDPART #-- produce an output string - if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') { + if (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') or + ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_in_page') ) { $selectionmade = 2; - } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') { + } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or + ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_resources_in_page')) + { + &Apache::lonnet::logthis("Selectionmade => 3"); $selectionmade = 3; } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') ) { @@ -2004,7 +2022,7 @@ ENDPART $urlp=&Apache::lonnet::clutter($urlp); $form{'symb'}=$master_seq[$i]; - + &Apache::lonnet::logthis("Element $i Sequence $sequence Middle $middle_thingy URLP $urlp"); my $assignment=&Apache::lonxml::latex_special_symbols(&Apache::lonnet::gettitle($sequence),'header'); #title of the assignment which contains this problem if ($selectionmade==7) {$helper->{VARS}->{'assignment'}=$assignment;} @@ -2012,13 +2030,13 @@ ENDPART my $texversion=''; if ($urlp!~m|^/adm/| && $urlp=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { - &Apache::lonnet::logthis("At line 1834 printing $urlp"); + &Apache::lonnet::logthis("Problem"); $resources_printed .= $urlp.':'; &Apache::lonxml::remember_problem_counter(); $texversion.=&ssi_with_retries($urlp, $ssi_retry_count, %form); + &Apache::lonnet::logthis("texversion so far: $texversion"); if ($urlp=~/\.page$/) { - &Apache::lonnet::logthis("Handling a .page at ". __LINE__); - + &Apache::lonnet::("Special page actions"); ($texversion,my $number_of_columns_page) = &page_cleanup($texversion); if ($number_of_columns_page > $number_of_columns) {$number_of_columns=$number_of_columns_page;} $texversion =~ s/\\end{document}\d*/\\end{document}/; @@ -2040,6 +2058,7 @@ ENDPART $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/; } else { if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library)$/) { + &Apache::lonnet::logthis("problem printing"); $texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); $texversion =~ s/\\begin{document}//; my $title = &Apache::lonnet::gettitle($master_seq[$i]); @@ -2085,6 +2104,7 @@ ENDPART } } $result .= $texversion; + &Apache::lonnet::logthis("About to set rem header true with $result"); $flag_latex_header_remove = 'YES'; } elsif ($urlp=~/\/(smppg|syllabus|aboutme|bulletinboard)$/) { $form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; @@ -2607,7 +2627,6 @@ sub print_resources { if ($res_url!~m|^ext/| && $res_url=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { $printed .= $curresline.':'; - &Apache::lonnet::logthis("At line 2427 printing $curresline"); &Apache::lonxml::remember_problem_counter(); my $rendered = &get_student_view_with_retries($curresline,$ssi_retry_count,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv); @@ -2918,6 +2937,8 @@ sub printHelper { $subdir = substr($helper->{VARS}->{'filename'}, 0, rindex($helper->{VARS}->{'filename'}, '/') + 1); } else { + # From course space: + if ($symb ne '') { ($map, $id, $url) = &Apache::lonnet::decode_symb($symb); $helper->{VARS}->{'postdata'} = @@ -2925,9 +2946,9 @@ sub printHelper { } else { $url = $helper->{VARS}->{'postdata'}; $is_published=1; # From resource space. + &Apache::lonnet::logthis("Resource url $url"); } $url = &Apache::lonnet::clutter($url); - if (!$resourceTitle) { # if the resource doesn't have a title, use the filename my $postdata = $helper->{VARS}->{'postdata'}; $resourceTitle = substr($postdata, rindex($postdata, '/') + 1); @@ -2986,15 +3007,73 @@ sub printHelper { "