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