version 1.14, 2005/02/17 08:50:20
|
version 1.23, 2014/12/15 00:59:40
|
Line 27
|
Line 27
|
# |
# |
# |
# |
|
|
|
|
package Apache::lontest; |
package Apache::lontest; |
|
|
use strict; |
use strict; |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
use GDBM_File; |
use GDBM_File; |
use Apache::loncommon; |
use Apache::loncommon; |
|
use Apache::lonnet; |
|
|
# section takes one env var name as input, and returns |
|
# what section the given env var is in, which is the part |
|
# of the env var before the first period. |
|
# Returns the section, or blank string for 'no section', |
|
# which is normal for the standard ENV vars like REQUEST_URI. |
|
sub section |
sub section |
{ |
{ |
my ($name) = @_; |
my ($name) = @_; |
Line 46 sub section
|
Line 43 sub section
|
return ''; |
return ''; |
} |
} |
|
|
sub handler { |
sub print_hash { |
my $r = shift; |
my ($r,$hash)=@_; |
&Apache::loncommon::content_type($r,'text/html'); |
my $i=0; |
$r->send_http_header; |
my $interval = 20; # change this to change how many keys/table |
return OK if $r->header_only; |
my $prevSection = ''; # keeps track of the section we're in. |
|
|
my $html=&Apache::lonxml::xmlbegin(); |
foreach my $envkey (sort(keys(%{$hash}))) { |
my $bodytag=&Apache::loncommon::bodytag("List Environment","admin"); |
if (not ($i % $interval)) { |
$r->print($html.'<head></head>'.$bodytag); |
$r->print('</table>') unless $i eq 0; |
|
$r->print('<table border="0">'); |
my $envkey; |
} |
|
my $sec = section($envkey); |
$r->print("<hr /><h1>Debugging</h1><hr />\n"); |
|
$r->print("<font face='Courier'>"); |
if ($prevSection ne $sec) { # new section, print header |
|
$r->print('<tr><td colspan="2">'); |
my $i=0; |
$r->print("<br /><br /><h2 style='color: #008800'><u>$sec</u></h2>"); |
my $interval = 20; # change this to change how many keys/table |
$r->print('</td></tr>'); |
my $prevSection = ''; # keeps track of the section we're in. |
$prevSection = $sec; |
foreach $envkey (sort keys %ENV) { |
} |
if (not ($i % $interval)) |
|
{ |
my $envVal = $hash->{$envkey}; |
$r->print('</table>') unless $i eq 0; |
$envVal =~ s/(.{50})/$1\<wbr\>/g; |
$r->print('<table border="0">') |
$envkey =~ s/(.{30})/$1\<wbr\>/g; |
} |
|
my $sec = section($envkey); |
|
|
|
if ($prevSection ne $sec) # new section, print header |
|
{ |
|
$r->print('<tr><td colspan="2">'); |
|
$r->print("<br /><br /><h2 style='color: #008800'><u>$sec</u></h2>"); |
|
$r->print('</td></tr>'); |
|
$prevSection = $sec; |
|
} |
|
|
|
my $envVal = $ENV{$envkey}; |
|
$envVal =~ s/(.{50})/$1\<wbr\>/g; |
|
$envkey =~ s/(.{30})/$1\<wbr\>/g; |
|
|
|
$r->print("<tr><td valign='top'><b>$envkey</b></td>"); |
$r->print("<tr><td valign='top'><b>$envkey</b></td>"); |
$r->print("<td valign='top'>$envVal</td></tr>\n"); |
$r->print("<td valign='top'>$envVal</td></tr>\n"); |
$i++; |
$i++; |
} |
} |
|
|
$r->print('</table></font><h1>Total Number of Elements: '.$i.'</h1>'); |
|
|
|
|
$r->print('</table></font><h1>Total Number of Elements: '.$i.'</h1>'); |
|
} |
|
sub handler { |
|
my $r = shift; |
|
&Apache::loncommon::content_type($r,'text/html'); |
|
$r->send_http_header; |
|
return OK if $r->header_only; |
|
|
|
$r->print(&Apache::loncommon::start_page("List Environment",undef, |
|
{'function' => 'admin'})); |
|
|
|
$r->print("<hr /><h1>Debugging</h1><hr />\n"); |
|
$r->print("<font face='Courier'>"); |
|
$r->print("<hr /><h2>ENV</h2><hr />\n"); |
|
&print_hash($r,\%ENV); |
|
$r->print("<hr /><h2>env</h2><hr />\n"); |
|
&print_hash($r,\%env); |
# ------------------------------------------------ If in a course, print hashes |
# ------------------------------------------------ If in a course, print hashes |
if ($ENV{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
|
|
my %parmhash; |
my %parmhash; |
my %symbhash; |
my %symbhash; |
my %hash; |
my %hash; |
|
|
my $fn=$ENV{'request.course.fn'}; |
my $fn=$env{'request.course.fn'}; |
|
|
if (tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER(),0640)) { |
if (tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER(),0640)) { |
$r->print('<h2>Big Hash</h2>'); |
$r->print('<h2>Big Hash</h2>'); |
foreach (sort keys %hash) { |
foreach my $key (sort(keys(%hash))) { |
$r->print("\n<br />".$_.': '.$hash{$_}); |
$r->print("\n<br />".$key.': '.$hash{$key}); |
} |
} |
untie %hash; |
untie %hash; |
} else { |
} else { |
$r->print('<h2>Count not tie big hash</h2>'); |
$r->print('<h2>Count not tie big hash</h2>'); |
} |
} |
if (tie(%parmhash,'GDBM_File', |
if (tie(%parmhash,'GDBM_File', |
$ENV{'request.course.fn'}.'_parms.db', |
$env{'request.course.fn'}.'_parms.db', |
&GDBM_READER(),0640)) { |
&GDBM_READER(),0640)) { |
$r->print('<h2>Parm Hash</h2>'); |
$r->print('<h2>Parm Hash</h2>'); |
foreach (sort keys %parmhash) { |
foreach my $param (sort(keys(%parmhash))) { |
$r->print("\n<br />".$_.': '.$parmhash{$_}); |
$r->print("\n<br />".$param.': '.$parmhash{$param}); |
} |
} |
untie %parmhash; |
untie %parmhash; |
} else { |
} else { |
$r->print('<h2>Could not tie parmhash</h2>'); |
$r->print('<h2>Could not tie parmhash</h2>'); |
} |
} |
if (tie(%symbhash,'GDBM_File',"$fn\_symb.db",&GDBM_READER(),0640)) { |
if (tie(%symbhash,'GDBM_File',"$fn\_symb.db",&GDBM_READER(),0640)) { |
$r->print('<h2>Symb Hash</h2>'); |
$r->print('<h2>Symb Hash</h2>'); |
foreach (sort keys %symbhash) { |
foreach my $symb (sort(keys(%symbhash))) { |
$r->print("\n<br />".$_.': '.$symbhash{$_}); |
$r->print("\n<br />".$symb.': '.$symbhash{$symb}); |
} |
} |
untie %symbhash; |
untie %symbhash; |
} else { |
} else { |
$r->print('<h2>Could not tie symbhash</h2>'); |
$r->print('<h2>Could not tie symbhash</h2>'); |
} |
} |
if (-e $fn.'.state') { |
if (-e $fn.'.state') { |
$r->print('<h2>State</h2>'); |
$r->print('<h2>State</h2>'); |
my @conditions=(); |
my @conditions=(); |
{ |
{ |
my $fh=Apache::File->new($fn.'.state'); |
my $fh=Apache::File->new($fn.'.state'); |
@conditions=<$fh>; |
@conditions=<$fh>; |
} |
} |
foreach (@conditions) { |
foreach my $cond (@conditions) { |
$r->print('<tt>'.$_.'</tt><br />'); |
$r->print('<tt>'.$cond.'</tt><br />'); |
} |
} |
} |
} |
} |
} |
|
|
|
|
# ------------------------------------------------------------------- End Debug |
# ------------------------------------------------------------------- End Debug |
$r->print('</body></html>'); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} |
} |
|
|
Line 152 sub section
|
Line 149 sub section
|
1; |
1; |
__END__ |
__END__ |
|
|
|
=pod |
|
|
|
=head1 NAME |
|
|
|
Apache::lontest; |
|
|
|
=head1 SYNOPSIS |
|
|
|
Used for debugging and testing the LONCAPA |
|
system. |
|
|
|
This is part of the LearningOnline Network with CAPA project |
|
described at http://www.lon-capa.org. |
|
|
|
=head1 HANDLER SUBROUTINE |
|
|
|
handler() |
|
|
|
=head1 OTHER SUBROUTINES |
|
|
|
=over |
|
|
|
=item section() : |
|
|
|
section takes one env var name as input, and returns |
|
what section the given env var is in, which is the part |
|
of the env var before the first period. |
|
Returns the section, or blank string for 'no section', |
|
which is normal for the standard env vars like REQUEST_URI. |
|
|
|
=item print_hash() |
|
|
|
=back |
|
|
|
=cut |
|
|
|
|
|
|