version 1.59, 2002/09/10 20:14:35
|
version 1.63, 2002/09/12 15:25:49
|
Line 49 use Apache::grades;
|
Line 49 use Apache::grades;
|
use Apache::edit; |
use Apache::edit; |
use Apache::File(); |
use Apache::File(); |
use POSIX qw(strftime); |
use POSIX qw(strftime); |
|
use GDBM_File; |
|
|
|
|
|
my %hash; |
|
|
|
|
sub headerform { |
sub headerform { |
Line 60 sub headerform {
|
Line 64 sub headerform {
|
</head> |
</head> |
<body bgcolor="FFFFFF"> |
<body bgcolor="FFFFFF"> |
<form method="post" enctype="multipart/form-data" action="/adm/printout" name="printform"> |
<form method="post" enctype="multipart/form-data" action="/adm/printout" name="printform"> |
<tt>$ENV{'form.postdata'}</tt><p> |
|
ENDHEADER |
ENDHEADER |
|
if ($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) { |
|
$r->print(<<ENDHEADER1); |
|
<b>Path to current document: </b><tt>$ENV{'form.postdata'}</tt><p> |
|
ENDHEADER1 |
|
} |
} |
} |
|
|
|
|
sub menu_for_output { |
sub menu_for_output { |
my $r = shift; |
my $r = shift; |
my $symbolic = &Apache::lonnet::symbread($ENV{'form.postdata'}); |
my ($title_for_single_resource,$title_for_sequence,$title_for_main_map) = &details_for_menu; |
# $symbolic =~ m/([^_]+)_/; |
if ($title_for_single_resource ne '') {$title_for_single_resource = '"'.$title_for_single_resource.'"';} |
# my $primary_sequence = '/res/'.$1; |
if ($title_for_sequence ne '') {$title_for_sequence = '"'.$title_for_sequence.'"';} |
|
if ($title_for_main_map ne '') {$title_for_main_map = '"'.$title_for_main_map.'"';} |
|
my $subdir_to_print = $ENV{'form.postdata'}; |
|
$subdir_to_print =~ m/\/([^\/]+)$/; |
|
$subdir_to_print =~ s/$1//; |
$r->print(<<ENDMENUOUT1); |
$r->print(<<ENDMENUOUT1); |
<h1>What do you want to print? Make a choice.</h1><br /> |
<h1>What do you want to print? Make a choice.</h1><br /> |
<input type="hidden" name="phase" value="two"> |
<input type="hidden" name="phase" value="two"> |
<input type="hidden" name="url" value="$ENV{'form.postdata'}"> |
<input type="hidden" name="url" value="$ENV{'form.postdata'}"> |
<input type="radio" name="choice" value="Standard LaTeX output for current document" checked> Current document |
<input type="radio" name="choice" value="Standard LaTeX output for current document" checked> Current document <b>$title_for_single_resource</b> |
(you will print what you see on the screen)<br /> |
(you will print what you saw on the screen)<br /> |
ENDMENUOUT1 |
ENDMENUOUT1 |
if ((not $ENV{'request.role'}=~m/^au\./) and (not $ENV{'request.role'}=~m/^ca\./)) { |
if ((not $ENV{'request.role'}=~m/^au\./) and (not $ENV{'request.role'}=~m/^ca\./)) { |
$r->print(<<ENDMENUOUT2); |
$r->print(<<ENDMENUOUT2); |
<input type="radio" name="choice" value="Standard LaTeX output for the primary sequence"> All problems from the primary sequence<br /> |
<input type="radio" name="choice" value="Standard LaTeX output for the primary sequence"> All problems from <b>$title_for_sequence</b><br /> |
<input type="radio" name="choice" value="Standard LaTeX output for whole primary sequence"> The whole primary sequence (problems plus all html and xml files)<br /> |
<input type="radio" name="choice" value="Standard LaTeX output for whole primary sequence"> All problems plus any html/xml files from <b>$title_for_sequence</b><br /> |
ENDMENUOUT2 |
ENDMENUOUT2 |
} |
} |
if ($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) { |
if ($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) { |
$r->print(<<ENDMENUOUT6); |
$r->print(<<ENDMENUOUT6); |
<input type="radio" name="choice" value="Standard LaTeX output for the top level sequence"> All problems from the top level sequence<br /> |
<input type="radio" name="choice" value="Standard LaTeX output for the top level sequence"> All problems in this course (<b>warning:</b> this may be time consuming) <br /> |
<br /> |
<br /> |
<input type="radio" name="choice" value="All class print"> Print assignment (all problems from the primary sequence) for group of students<br /><br /> |
<input type="radio" name="choice" value="All class print"> All problems from <b>$title_for_sequence</b> for selected students<br /><br /> |
ENDMENUOUT6 |
ENDMENUOUT6 |
} |
} |
my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'}); |
my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'}); |
$subdirtoprint =~ s/\/[^\/]+$//; |
$subdirtoprint =~ s/\/[^\/]+$//; |
if (&Apache::lonnet::allowed('bre',$subdirtoprint) eq 'F') { |
if (&Apache::lonnet::allowed('bre',$subdirtoprint) eq 'F') { |
$r->print(<<ENDMENUOUT4); |
$r->print(<<ENDMENUOUT4); |
<input type="radio" name="choice" value="Subdirectory print"> All problems from current subdirectory (where this particular problem is)<br /> |
<input type="radio" name="choice" value="Subdirectory print"> Problems from current subdirectory <b>$subdir_to_print</b><br /> |
ENDMENUOUT4 |
ENDMENUOUT4 |
} |
} |
$r->print(<<ENDMENUOUT5); |
$r->print(<<ENDMENUOUT5); |
Line 115 ENDMENUOUT4
|
Line 127 ENDMENUOUT4
|
</td> |
</td> |
<td rawspan="2"> |
<td rawspan="2"> |
Paper size (format [width x height]): <select name="papersize"> |
Paper size (format [width x height]): <select name="papersize"> |
<option selected> Letter [216x297 mm] </option> |
<option selected> Letter [8 1/2x11 in] </option> |
<option> Legal [216x356 mm] </option> |
<option> Legal [8 1/2x14 in] </option> |
<option> Executive [190x254 mm] </option> |
<option> Ledger/Tabloid [11x17 in] </option> |
<option> Ledger/Tabloid [279x432 mm] </option> |
<option> Executive [7 1/2x10 in] </option> |
<option> A2 [420x594 mm] </option> |
<option> A2 [420x594 mm] </option> |
<option> A3 [297x420 mm] </option> |
<option> A3 [297x420 mm] </option> |
<option> A4 [210x297 mm] </option> |
<option> A4 [210x297 mm] </option> |
Line 186 sub problem_choice_menu {
|
Line 198 sub problem_choice_menu {
|
} |
} |
} |
} |
</script> |
</script> |
<input type=button onClick="checkall()" value="Check for All"> |
<input type=button onClick="checkall()" value="Check All"> |
<input type=button onClick="uncheckall()" value="Check for None"> |
<input type=button onClick="uncheckall()" value="Uncheck"> |
<p> |
<p> |
ENDMENUOUT1 |
ENDMENUOUT1 |
my $i; |
my $i; |
Line 249 ENDMENUOUT1
|
Line 261 ENDMENUOUT1
|
} |
} |
} |
} |
</script> |
</script> |
<input type=button onClick="checkall()" value="Check for All"> |
<input type=button onClick="checkall()" value="Check All"> |
<input type=button onClick="checksec()" value="Check for Section/Group"> |
<input type=button onClick="checksec()" value="Check Section/Group"> |
<input type=text size=5 name=chksec> |
<input type=text size=5 name=chksec> |
<input type=button onClick="uncheckall()" value="Check for None"> |
<input type=button onClick="uncheckall()" value="Uncheck"> |
<p> |
<p> |
ENDDISHEADER |
ENDDISHEADER |
my $i = 0; |
my $i = 0; |
Line 362 ENDPART
|
Line 374 ENDPART
|
#-- open and analyses the primary sequence |
#-- open and analyses the primary sequence |
my $sequence_file=&Apache::lonnet::filelocation("",$primary_sequence); |
my $sequence_file=&Apache::lonnet::filelocation("",$primary_sequence); |
my $sequencefilecontents=&Apache::lonnet::getfile($sequence_file); |
my $sequencefilecontents=&Apache::lonnet::getfile($sequence_file); |
my @master_seq = &content_map($sequencefilecontents); |
my @master_seq = &coming_from_hash($primary_sequence); |
#-- produce an output string |
#-- produce an output string |
for (my $i=0;$i<=$#master_seq;$i++) { |
for (my $i=0;$i<=$#master_seq;$i++) { |
$_ = $master_seq[$i]; |
my $urlp = $master_seq[$i]; |
m/\"(.*)\"/; |
|
$_ = $1; |
|
my $urlp = $1; |
|
if ($choice eq 'Standard LaTeX output for the primary sequence') { |
if ($choice eq 'Standard LaTeX output for the primary sequence') { |
$selectionmade = 2; |
$selectionmade = 2; |
if ($urlp =~ m/\.(problem|exam|quiz|assess|survey|form|library)/) { |
if ($urlp =~ m/\.(problem|exam|quiz|assess|survey|form|library)/) { |
my %moreenv; |
my %moreenv; |
$moreenv{'form.grade_target'}='tex'; |
$moreenv{'form.grade_target'}='tex'; |
&Apache::lonnet::appenv(%moreenv); |
&Apache::lonnet::appenv(%moreenv); |
Line 470 ENDPART
|
Line 479 ENDPART
|
my $sequence_file=&Apache::lonnet::filelocation("",$primary_sequence); |
my $sequence_file=&Apache::lonnet::filelocation("",$primary_sequence); |
my $sequencefilecontents=&Apache::lonnet::getfile($sequence_file); |
my $sequencefilecontents=&Apache::lonnet::getfile($sequence_file); |
my @master_seq = &content_map($sequencefilecontents); |
my @master_seq = &content_map($sequencefilecontents); |
#loop over students |
#loop over students |
foreach my $person (@students) { |
foreach my $person (@students) { |
my $current_output = ''; |
my $current_output = ''; |
my ($usersection,$username,$userdomain) = split /:/,$person; |
my ($usersection,$username,$userdomain) = split /:/,$person; |
Line 591 $r->print(<<FINALEND);
|
Line 600 $r->print(<<FINALEND);
|
FINALEND |
FINALEND |
} |
} |
|
|
|
|
|
sub coming_from_hash { |
|
|
|
my $mainsequence = shift; |
|
my @resourcelist = (); |
|
my $mapstart = $hash{'map_start_'.$mainsequence}; |
|
my $mapfinish = $hash{'map_finish_'.$mainsequence}; |
|
my $current_resource = $mapstart; |
|
while ($current_resource ne $mapfinish) { |
|
if (not $hash{'src_'.$current_resource}=~/\.sequence$/) { |
|
push @resourcelist,$hash{'src_'.$current_resource}; |
|
} else { |
|
push @resourcelist,&coming_from_hash($hash{'src_'.$current_resource}); |
|
} |
|
$current_resource = $hash{'goesto_'.$hash{'to_'.$current_resource}}; |
|
} |
|
return @resourcelist; |
|
} |
|
|
|
|
sub character_chart { |
sub character_chart { |
my $result = shift; |
my $result = shift; |
$result =~ s/�?0?7;//g; |
$result =~ s/�?0?7;//g; |
Line 1003 sub content_map {
|
Line 1032 sub content_map {
|
} |
} |
|
|
|
|
|
sub details_for_menu { |
|
|
|
my $name_of_resourse = $hash{'title_'.$hash{'ids_'.$ENV{'form.postdata'}}}; |
|
my $symbolic = &Apache::lonnet::symbread($ENV{'form.postdata'}); |
|
my ($map,$id,$resource)=split(/___/,$symbolic); |
|
my $name_of_sequence = $hash{'title_'.$hash{'ids_/res/'.$map}}; |
|
if ($name_of_sequence =~ /^\s*$/) { |
|
$map =~ m|([^/]+)$|; |
|
$name_of_sequence = $1; |
|
} |
|
my $name_of_map = $hash{'title_'.$hash{'ids_/res/'.$ENV{'request.course.uri'}}}; |
|
if ($name_of_map =~ /^\s*$/) { |
|
$ENV{'request.course.uri'} =~ m|([^/]+)$|; |
|
$name_of_map = $1; |
|
} |
|
return ($name_of_resourse,$name_of_sequence,$name_of_map); |
|
|
|
} |
|
|
|
|
sub handler { |
sub handler { |
|
|
Line 1011 sub handler {
|
Line 1059 sub handler {
|
$r->send_http_header; |
$r->send_http_header; |
$r->print(&Apache::loncommon::bodytag("Printing")); |
$r->print(&Apache::loncommon::bodytag("Printing")); |
|
|
|
if ($ENV{'request.course.id'}) { |
|
my $fn=$ENV{'request.course.fn'}; |
|
tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER(),0640); |
|
} |
|
|
#-- start form |
#-- start form |
&headerform($r); |
&headerform($r); |
#-- menu for output |
#-- menu for output |
Line 1038 sub handler {
|
Line 1091 sub handler {
|
#-- core part |
#-- core part |
if ($ENV{'form.phase'} eq 'four') { |
if ($ENV{'form.phase'} eq 'four') { |
&output_data($r); |
&output_data($r); |
} |
} |
|
untie %hash; |
return OK; |
return OK; |
|
|
} |
} |
|
|
|
|
1; |
1; |
__END__ |
__END__ |
|
|