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