Diff for /loncom/publisher/lonpublisher.pm between versions 1.20 and 1.23

version 1.20, 2001/03/24 21:51:58 version 1.23, 2001/04/03 11:26:02
Line 7 Line 7
 #  #
 # 11/28,11/29,11/30,12/01,12/02,12/04,12/23 Gerd Kortemeyer  # 11/28,11/29,11/30,12/01,12/02,12/04,12/23 Gerd Kortemeyer
 # 03/23 Guy Albertelli  # 03/23 Guy Albertelli
 # 03/24 Gerd Kortemeyer  # 03/24,03/29,04/03 Gerd Kortemeyer
   
 package Apache::lonpublisher;  package Apache::lonpublisher;
   
Line 115  sub publish { Line 115  sub publish {
     my ($source,$target,$style)=@_;      my ($source,$target,$style)=@_;
     my $logfile;      my $logfile;
     my $scrout='';      my $scrout='';
       my $allmeta='';
       my $content='';
   
     unless ($logfile=Apache::File->new('>>'.$source.'.log')) {      unless ($logfile=Apache::File->new('>>'.$source.'.log')) {
  return    return 
Line 138  sub publish { Line 140  sub publish {
   
         my $maxindex=10;          my $maxindex=10;
         my $maxid=10;          my $maxid=10;
         my $content='';  
         my $needsfixup=0;          my $needsfixup=0;
   
         {          {
Line 290  sub publish { Line 292  sub publish {
   
 # -------------------------------------------------- Parse content for metadata  # -------------------------------------------------- Parse content for metadata
   
         my $allmeta=Apache::lonxml::xmlparse('meta',$content);          $allmeta=Apache::lonxml::xmlparse('meta',$content);
         &metaeval($allmeta);          &metaeval($allmeta);
   
 # ---------------- Find and document discrepancies in the parameters and stores  # ---------------- Find and document discrepancies in the parameters and stores
Line 324  sub publish { Line 326  sub publish {
     $scrout.='<p><b>Obsolete parameters or stored values:</b> '.      $scrout.='<p><b>Obsolete parameters or stored values:</b> '.
                      $chparms;                       $chparms;
         }          }
       }
 # ------------------------------------------------------- Now have all metadata  # ------------------------------------------------------- Now have all metadata
   
         $scrout.=          $scrout.=
Line 408  sub publish { Line 410  sub publish {
         $scrout.=&selectbox('Copyright/Distribution','copyright',          $scrout.=&selectbox('Copyright/Distribution','copyright',
                             $metadatafields{'copyright'},%cprtag);                              $metadatafields{'copyright'},%cprtag);
   
     }  
     return $scrout.      return $scrout.
       '<p><input type="submit" value="Finalize Publication"></form>';        '<p><input type="submit" value="Finalize Publication"></form>';
 }  }
Line 631  if (-e $target) { Line 632  if (-e $target) {
     my $thisdistarget=$target;      my $thisdistarget=$target;
     $thisdistarget=~s/^$docroot//;      $thisdistarget=~s/^$docroot//;
   
       my $thissrc=$source;
       $thissrc=~s/^\/home\/(\w+)\/public_html/\/priv\/$1/;
   
       my $thissrcdir=$thissrc;
       $thissrcdir=~s/\/[^\/]+$/\//;
   
   
     return $scrout.      return $scrout.
  '<p><a href="'.$thisdistarget.'"><font size=+2>View Target</font></a>';        '<hr><a href="'.$thisdistarget.'"><font size=+2>View Target</font></a>'.
         '<p><a href="'.$thissrc.'"><font size=+2>Back to Source</font></a>'.
         '<p><a href="'.$thissrcdir.
         '"><font size=+2>Back to Source Directory</font></a>';
   
 }  }
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
Line 646  sub handler { Line 658  sub handler {
      return OK;       return OK;
   }    }
   
 unless ($ENV{'form.pubdir'}) {  
 # -------------------------------------------------------------- Check filename  # -------------------------------------------------------------- Check filename
   
   my $fn=$ENV{'form.filename'};    my $fn=$ENV{'form.filename'};
Line 775  unless ($ENV{'form.phase'} eq 'two') { Line 786  unless ($ENV{'form.phase'} eq 'two') {
   
   }    }
   $r->print('</body></html>');    $r->print('</body></html>');
 } else {  
   
   my $fn=$ENV{'form.filename'};  
   
   $fn=~s/\/[^\/]+$//;  
   my $thisprefix=$fn;  
   $thisprefix=~s/\/\~/\/priv\//;  
   
   $fn=~s/^http\:\/\/[^\/]+\/\~(\w+)/\/home\/$1\/public_html/;  
   
   unless ($fn) {   
      $r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}.  
          ' trying to publish empty directory', $r->filename);   
      return HTTP_NOT_FOUND;  
   }   
   
 # ----------------------------------------------------------- Start page output  
   
   $r->content_type('text/html');  
   $r->send_http_header;  
   
   $r->print('<html><head><title>LON-CAPA Publishing Directory</title></head>');  
   $r->print(  
    '<body bgcolor="#FFFFFF"><img align=right src=/adm/lonIcons/lonlogos.gif>');  
   
   my $thisdisfn=$fn;  
   $thisdisfn=~s/^\/home\/$ENV{'user.name'}\/public_html\///;  
     
   $r->print('<h1>Publishing directory <tt>'.$thisdisfn.'</tt></h1>');  
   my $i=0;  
   $r->print('<script>');  
     my $filename;  
     opendir(DIR,$fn);  
        while ($filename=readdir(DIR)) {  
            $filename=~/\.(\w+)$/;  
            if ((&Apache::lonnet::fileembstyle($1)) && ($1 ne 'meta')) {  
       $r->print(<<ENDOPEN);  
       pub$i=window.open("$thisprefix/$filename","LONCAPApub$i",  
                                 "menubar=no,height=450,width=650");  
 ENDOPEN  
               $i++;       
    }  
        }  
     closedir(DIR);  
   $r->print('</script>');  
   
   $r->print('</body></html>');  
     
 }  
   return OK;    return OK;
 }  }
   

Removed from v.1.20  
changed lines
  Added in v.1.23


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>