--- loncom/publisher/lonretrieve.pm 2006/09/19 21:47:29 1.32
+++ loncom/publisher/lonretrieve.pm 2011/11/14 00:20:31 1.47
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to retrieve an old version of a file
#
-# $Id: lonretrieve.pm,v 1.32 2006/09/19 21:47:29 albertel Exp $
+# $Id: lonretrieve.pm,v 1.47 2011/11/14 00:20:31 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -28,6 +28,71 @@
#
###
+=head1 NAME
+
+Apache::lonretrieve - retrieves an old version of a file
+
+=head1 SYNOPSIS
+
+Invoked by /etc/httpd/conf/srm.conf:
+
+
+ PerlAccessHandler Apache::lonacc
+ SetHandler perl-script
+ PerlHandler Apache::lonretrieve
+ ErrorDocument 403 /adm/login
+ ErrorDocument 404 /adm/notfound.html
+ ErrorDocument 406 /adm/unauthorized.html
+ ErrorDocument 500 /adm/errorhandler
+
+
+=head1 INTRODUCTION
+
+This module retrieves an old published version of a file.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 HANDLER SUBROUTINE
+
+This routine is called by Apache and mod_perl.
+
+=over 4
+
+=item *
+
+Get query string for limited number of parameters
+
+=item *
+
+Start page output
+
+=item *
+
+print phase relevant output
+
+=item *
+
+(phase one is to select version; phase two retrieves version)
+
+=back
+
+=head1 OTHER SUBROUTINES
+
+=over 4
+
+=item *
+
+phaseone() : Interface for selecting previous version.
+
+=item *
+
+phasetwo() : Interface for presenting specified version.
+
+=back
+
+=cut
+
package Apache::lonretrieve;
use strict;
@@ -38,24 +103,23 @@ use Apache::loncacc;
use Apache::loncommon();
use Apache::lonlocal;
use Apache::lonnet;
+use LONCAPA();
# ------------------------------------ Interface for selecting previous version
sub phaseone {
my ($r,$fn,$uname,$udom)=@_;
- my $docroot=$r->dir_config('lonDocRoot');
- my $urldir='/res/'.$udom.'/'.$uname.$fn;
- $urldir=~s/\/[^\/]+$/\//;
+ my $urldir = "/res/$udom/$uname".$fn;
+ my $resfn = $r->dir_config('lonDocRoot').$urldir;
- my $resfn=$docroot.'/res/'.$udom.'/'.$uname.$fn;
- my $resdir=$resfn;
- $resdir=~s/\/[^\/]+$/\//;
+ $urldir =~ s{[^/]+$}{};
+ my $resdir = $r->dir_config('lonDocRoot').$urldir;
my ($main,$suffix,$is_meta) = &get_file_info($fn);
if (-e $resfn) {
- $r->print('
');
+ '
'.''.
+ &mt('Retrieval of an old version will overwrite the file currently in construction space.').'
');
+ if (!$is_meta) {
+ $r->print('
'.''.
+ &mt('This will only retrieve the resource. If you want to retrieve the metadata, you will need to do that separately.').
+ '