--- rat/lonratedt.pm 2000/07/01 17:55:31 1.1 +++ rat/lonratedt.pm 2002/05/10 15:42:16 1.7 @@ -1,29 +1,53 @@ # The LearningOnline Network with CAPA # Edit Handler for RAT Maps +# +# $Id: lonratedt.pm,v 1.7 2002/05/10 15:42:16 www Exp $ +# +# Copyright Michigan State University Board of Trustees +# +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). +# +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ +# # (TeX Content Handler # # 05/29/00,05/30 Gerd Kortemeyer) -# 7/1 Gerd Kortemeyer +# 7/1,6/30 Gerd Kortemeyer package Apache::lonratedt; use strict; use Apache::Constants qw(:common); +use Apache::lonnet; +use Apache::lonratsrv; -# ================================================================ Main Handler - -sub handler { - my $r=shift; - $r->content_type('text/html'); - $r->send_http_header; - - return OK if $r->header_only; - - my $url=$r->uri; - +# --------------------------------------------------------- Build up RAT screen +sub ratedt { + my ($r,$url)=@_; $r->print(< + + + @@ -32,6 +56,158 @@ sub handler { ENDDOCUMENT +} + +sub smpedt { + my ($r,$fn)=@_; + my $errtext=''; + my ($outtext,$errtext)=&Apache::lonratsrv::loadmap($fn,$errtext); + my @loadelements=split(/\<\&\>/,$outtext); + $r->print(< + + + + +
+
+$errtext +Group Search +Group Import + +ENDSMPHEAD + $r->print('
');
+   foreach (@loadelements) { $r->print($_."\n") }
+			     $r->print('
'); + $r->print( + '
'); +} + +sub nodir { + my ($r,$dir)=@_; + $dir=~s/^\/home\/\w+\/public\_html//; + $r->print(< + +

No such directory: $dir

+ + +ENDNODIR +} + +# ================================================================ Main Handler + +sub handler { + my $r=shift; + $r->content_type('text/html'); + $r->send_http_header; + + return OK if $r->header_only; + + my $url=$r->uri; + my $fn=&Apache::lonnet::filelocation('',$url); + + my ($dir)=($fn=~/^(.+)\/[^\/]+$/); + unless (-e $dir) { + &nodir($r,$dir); + return OK; + } + my $adv=0; + + unless ($ENV{'form.forcesmp'}) { + if ($ENV{'form.forceadv'}) { + $adv=1; + } elsif (my $fh=Apache::File->new($fn)) { + my $allmap=join('',<$fh>); + $adv=($allmap=~/\]+mode\s*\=\s*(\'|\")rat/is); + } + } + + if ($adv) { + &ratedt($r,$url); + } else { + &smpedt($r,$fn); + } return OK; }