Diff for /loncom/publisher/lonpublisher.pm between versions 1.9 and 1.10

version 1.9, 2000/12/01 16:17:46 version 1.10, 2000/12/02 12:40:27
Line 5 Line 5
 #  #
 # 05/29/00,05/30,10/11 Gerd Kortemeyer)  # 05/29/00,05/30,10/11 Gerd Kortemeyer)
 #  #
 # 11/28,11/29,11/30,12/01 Gerd Kortemeyer  # 11/28,11/29,11/30,12/01,12/02 Gerd Kortemeyer
   
 package Apache::lonpublisher;  package Apache::lonpublisher;
   
Line 14  use Apache::File; Line 14  use Apache::File;
 use Apache::Constants qw(:common :http :methods);  use Apache::Constants qw(:common :http :methods);
 use HTML::TokeParser;  use HTML::TokeParser;
 use Apache::lonxml;  use Apache::lonxml;
 use Apache::lonhomework;  use Apache::structuretags;
   use Apache::response;
   
 my %addid;  my %addid;
 my %nokey;  my %nokey;
 my %language;  my %language;
   my %cprtag;
   
 my %metadatafields;  my %metadatafields;
 my %metadatakeys;  my %metadatakeys;
   
Line 74  sub metaread { Line 77  sub metaread {
 }  }
   
 sub textfield {  sub textfield {
     my ($title,$value)=@_;      my ($title,$name,$value)=@_;
     return "\n<p><b>$title:</b><br>".      return "\n<p><b>$title:</b><br>".
            '<input type=text size=80 value="'.$value.'">';             '<input type=text size=80 value="'.$value.'">';
 }  }
   
 sub selectbox {  sub selectbox {
     my ($title,$value,%options)=@_;      my ($title,$name,$value,%options)=@_;
       my $selout="\n<p><b>$title:</b><br>".'<select name="'.$name.'">';
       map {
           $selout.='<option value="'.$_.'"';
           if ($_ eq $value) { $selout.=' selected'; }
           $selout.='>'.$options{$_}.'</option>';
       } sort keys %options;
       return $selout.'</select>';
 }  }
   
 sub publish {  sub publish {
Line 227  sub publish { Line 237  sub publish {
                   $ENV{'environment.generation'};                    $ENV{'environment.generation'};
         $metadatafields{'author'}=~s/\s+/ /g;          $metadatafields{'author'}=~s/\s+/ /g;
         $metadatafields{'author'}=~s/\s+$//;          $metadatafields{'author'}=~s/\s+$//;
           $metadatafields{'owner'}=$ENV{'user.name'}.'@'.$ENV{'user.domain'};
   
 # ------------------------------------------------ Check out directory hierachy  # ------------------------------------------------ Check out directory hierachy
   
Line 267  sub publish { Line 278  sub publish {
   
 # -------------------------------------------------- Parse content for metadata  # -------------------------------------------------- Parse content for metadata
   
  my $allmeta='';          my $allmeta=Apache::lonxml::xmlparse('meta',$content);
         if ($source=~/\.problem$/) {  
     $allmeta=Apache::lonhomework::subhandler('meta',$content);  
         } else {  
             $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 313  sub publish { Line 319  sub publish {
      '<form action="/adm/publish" method="post">'.       '<form action="/adm/publish" method="post">'.
      '<input type="hidden" name="phase" value="two">'.       '<input type="hidden" name="phase" value="two">'.
      '<input type="hidden" name="filename" value="'.$ENV{'form.filename'}.'">'.       '<input type="hidden" name="filename" value="'.$ENV{'form.filename'}.'">'.
           &textfield('Title',$metadatafields{'title'}).            &textfield('Title','title',$metadatafields{'title'}).
           &textfield('Author(s)',$metadatafields{'author'}).            &textfield('Author(s)','author',$metadatafields{'author'}).
   &textfield('Subject',$metadatafields{'subject'});    &textfield('Subject','subject',$metadatafields{'subject'});
   
 # --------------------------------------------------- Scan content for keywords  # --------------------------------------------------- Scan content for keywords
   
Line 357  sub publish { Line 363  sub publish {
                   
  $scrout.=$keywordout;   $scrout.=$keywordout;
   
         $scrout.=&textfield('Notes',$metadatafields{'notes'});          $scrout.=&textfield('Notes','notes',$metadatafields{'notes'});
   
         $scrout.=          $scrout.=
              '<p><b>Abstract:</b><br><textarea cols=80 rows=5 name=abstract>'.               '<p><b>Abstract:</b><br><textarea cols=80 rows=5 name=abstract>'.
               $metadatafields{'abstract'}.'</textarea>';                $metadatafields{'abstract'}.'</textarea>';
   
         $scrout.=&selectbox('Language',$metadatafields{'language'},%language);          $scrout.=&selectbox('Language','language',
                               $metadatafields{'language'},%language);
         
  $scrout.=&textfield('Publisher/Owner',$metadatafields{'owner'});   $scrout.=&textfield('Publisher/Owner','owner',
                               $metadatafields{'owner'});
   
           $scrout.=&selectbox('Copyright/Distribution','copyright',
                               $metadatafields{'copyright'},%cprtag);
   
     }      }
     return $scrout.      return $scrout.
Line 451  sub handler { Line 462  sub handler {
   {    {
      my $fh=Apache::File->new($r->dir_config('lonTabDir').'/language.tab');       my $fh=Apache::File->new($r->dir_config('lonTabDir').'/language.tab');
       map {        map {
           $_=~/(\w+)\s+([\w\s]+)/;            $_=~/(\w+)\s+([\w\s\-]+)/;
           $language{$1}=$2;            $language{$1}=$2;
       } <$fh>;        } <$fh>;
   }    }
   
     %cprtag=();
   
     {
        my $fh=Apache::File->new($r->dir_config('lonIncludes').'/copyright.tab');
         map {
             $_=~/(\w+)\s+([\w\s\-]+)/;
             $cprtag{$1}=$2;
         } <$fh>;
     }
 # ----------------------------------------------------------- Start page output  # ----------------------------------------------------------- Start page output
   
   $r->content_type('text/html');    $r->content_type('text/html');

Removed from v.1.9  
changed lines
  Added in v.1.10


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