[LON-CAPA-cvs] cvs: loncom /publisher lonpubdir.pm

raeburn raeburn at source.lon-capa.org
Sun Oct 30 16:28:02 EDT 2011


raeburn		Sun Oct 30 20:28:02 2011 EDT

  Modified files:              
    /loncom/publisher	lonpubdir.pm 
  Log:
  - Bug 1320 clean-up - fix link to published resource in CSTR directory listing
  - Update documentation.
  - Rename sixth argument in &putdirectory() as $targetdir for consistency with
    was passed to it.
  - Coding style 
      - keys(), eliminate $_, regexp match use {} as delimiters 
                              where / in undesirable.
      - sanity checking for ref to hash.
  
  
Index: loncom/publisher/lonpubdir.pm
diff -u loncom/publisher/lonpubdir.pm:1.133 loncom/publisher/lonpubdir.pm:1.134
--- loncom/publisher/lonpubdir.pm:1.133	Wed Oct 26 17:31:40 2011
+++ loncom/publisher/lonpubdir.pm	Sun Oct 30 20:28:02 2011
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Construction Space Directory Lister
 #
-# $Id: lonpubdir.pm,v 1.133 2011/10/26 17:31:40 www Exp $
+# $Id: lonpubdir.pm,v 1.134 2011/10/30 20:28:02 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -437,15 +437,19 @@
 }
 #
 #  Put out a directory table row:
-#    putdirectory(r, base, here, dirname, modtime)
-#      r       - Apache request object.
-#      reqfile - File in request.
-#      here    - Where we are in directory tree.
-#      dirname - Name of directory special file.
-#      modtime - Encoded modification time.
-# 
+#    putdirectory(r, base, here, dirname, modtime, targetdir, bombs, numdir)
+#      r         - Apache request object.
+#      reqfile   - File in request.
+#      here      - Where we are in directory tree.
+#      dirname   - Name of directory special file.
+#      modtime   - Encoded modification time.
+#      targetdir - Publication target directory.
+#      bombs     - Reference to hash of URLs with runtime error messages.
+#      numdir    - Reference to scalar used to track number of sub-directories
+#                  in directory (used in form name for each "actions" dropdown).
+#
 sub putdirectory {
-    my ($r, $reqfile, $here, $dirname, $modtime, $resdir, $bombs, $numdir) = @_;
+    my ($r, $reqfile, $here, $dirname, $modtime, $targetdir, $bombs, $numdir) = @_;
 
 # construct the display filename: the directory name unless ..:
    
@@ -455,9 +459,11 @@
 # Don't display directory itself, and there is no way up from root directory
     unless ((($dirname eq '..') && ($reqfile=~/^\/[^\/]+\/[^\/]+$/)) || ($dirname eq '.')) {
 	my $kaputt=0;
-	foreach (keys %{$bombs}) {
-	    if ($_=~m:^\Q$resdir\E/\Q$disfilename\E/:) { $kaputt=1; last; }
-	}
+        if (ref($bombs) eq 'HASH') {
+	    foreach my $key (keys(%{$bombs})) {
+	        if ($key =~ m{^\Q$targetdir/$disfilename\E/}) { $kaputt=1; last; }
+	    }
+        }
 #
 # Get the metadata from that directory's default.meta to display titles
 #
@@ -493,7 +499,7 @@
 		  '<td>'.$actionitem.'</td>'.
 		  '<td><span class="LC_filename"><a href="'.&HTML::Entities::encode($here.'/'.$dirname,'<>&"').'/" target="_parent">'.
 		  $disfilename.'</a></span></td>'.
-		        '<td colspan="3">'.($kaputt?&Apache::lonhtmlcommon::authorbombs($resdir.'/'.$disfilename.'/'):'').$Apache::lonpublisher::metadatafields{'title'});
+		        '<td colspan="3">'.($kaputt?&Apache::lonhtmlcommon::authorbombs($targetdir.'/'.$disfilename.'/'):'').$Apache::lonpublisher::metadatafields{'title'});
 	if ($Apache::lonpublisher::metadatafields{'subject'} ne '') {
 	    $r->print(' <i>'.
 		      $Apache::lonpublisher::metadatafields{'subject'}.
@@ -557,7 +563,7 @@
         $rights_status .=
             $lt_SourceRight{&getSourceRightString($targetdir.'/'.$filename)};
 
-	$title = '<a href="/res/'.$targetdir.'/'.$filename.
+	$title = '<a href="'.$targetdir.'/'.$filename.
 	    '.meta" target="cat">'.
 	    &getTitleString($targetdir.'/'.$filename).'</a>';
 	if ($same) {
@@ -693,7 +699,7 @@
 
 Invoked (for various locations) by /etc/httpd/conf/srm.conf:
 
- <LocationMatch "^/\~.*/$">
+ <LocationMatch "^/+priv.*/$">
  PerlAccessHandler       Apache::loncacc
  SetHandler perl-script
  PerlHandler Apache::lonpubdir
@@ -766,16 +772,20 @@
     $str = getTitleString($fullname);
         $fullname - Fully qualified filename to check.
 
-=item putdirectory(r, base, here, dirname, modtime)
+=item putdirectory($r, $base, $here, $dirname, $modtime, $targetdir, $bombs,
+                   $numdir)
 
     Put out a directory table row:
     
-    putdirectory($r, $base, $here, $dirname, $modtime)
-        $r       - Apache request object.
-        $reqfile - File in request.
-        $here    - Where we are in directory tree.
-        $dirname - Name of directory special file.
-        $modtime - Encoded modification time.
+        $r        - Apache request object.
+        $reqfile  - File in request.
+        $here     - Where we are in directory tree.
+        $dirname  - Name of directory special file.
+        $modtime  - Encoded modification time.
+        targetdir - Publication target directory.
+        bombs     - Reference to hash of URLs with runtime error messages.
+        numdir    - Reference to scalar used to track number of sub-directories
+                    in directory (used in form name for each "actions" dropdown).
 
 =back
 




More information about the LON-CAPA-cvs mailing list