1: # The LON-CAPA Homework handler
2: # Guy Albertelli
3:
4: package Apache::lonhomework;
5: use strict;
6: use Apache::style;
7: use Apache::lonxml;
8: use Apache::lonnet;
9: use Apache::inputtags;
10: use Apache::structuretags;
11: use Apache::response;
12:
13: sub handler {
14: my $request=shift;
15:
16: my $target=&get_target();
17: $request->content_type('text/html');
18: $request->send_http_header;
19: &Apache::lonhomework::send_header($request);
20: my $file = "/home/httpd/html".$request->uri;
21: my %mystyle;
22: my $result = '';
23: &Apache::inputtags::initialize_inputtags;
24: $result = Apache::lonxml::xmlparse($target, &getfile($file),
25: &getfile('/home/httpd/html/res/103/albertel/default_homework').&setup_vars($target),%mystyle);
26: #$request->print("Result follows:");
27: $request->print($result);
28: #$request->print(":Result ends");
29: &Apache::lonhomework::send_footer($request);
30: }
31:
32: sub get_target {
33: return "web";
34: }
35:
36: sub setup_vars {
37: my ($target) = @_;
38: return ';$external::target='.$target.';';
39: }
40:
41: sub send_header {
42: my ($request)= @_;
43: $request->print('<html>');
44: $request->print('<form method="POST" action="'.$request->uri.'">');
45: }
46:
47: sub send_footer {
48: my ($request)= @_;
49: $request->print('</form>');
50: $request->print('</html>');
51: }
52:
53: sub getfile {
54: my ($filename) = @_;
55: my $a="";
56: if (! -e $filename ) {
57: &Apache::lonnet::subscribe($filename);
58: &Apache::lonnet::repcopy($filename);
59: }
60: {
61: my $fh=Apache::File->new($filename);
62:
63: while (<$fh>) {
64: $a .=$_;
65: }
66: }
67: return $a
68: }
69:
70: 1;
71: __END__
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>