Diff for /loncom/interface/lonmeta.pm between versions 1.2 and 1.3

version 1.2, 2000/10/23 13:21:12 version 1.3, 2000/11/27 20:44:53
Line 6 Line 6
 #  #
 # 05/29/00,05/30,10/11 Gerd Kortemeyer)  # 05/29/00,05/30,10/11 Gerd Kortemeyer)
 #  #
 # 10/19,10/21,10/23 Gerd Kortemeyer  # 10/19,10/21,10/23,11/27 Gerd Kortemeyer
   
 package Apache::lonmeta;  package Apache::lonmeta;
   
 use strict;  use strict;
 use Apache::File;  
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use HTML::TokeParser;  use Apache::lonnet();
   
   
 # ================================================= Unpack metadata into a hash  
   
 sub unpackagemeta {  
     my ($datastring,$fordisplay)=@_;  
     my %content=();  
     my $parser=HTML::TokeParser->new(\$datastring);  
     my $token;  
     while ($token=$parser->get_token) {  
        if ($token->[0] eq 'S') {  
    my $entry=$token->[1];  
            my $value=$parser->get_text('/'.$entry);  
            if (($token->[2]->{'display'}) && ($fordisplay)) {  
        $value.='__dis__'.$token->[2]->{'display'};  
            }  
            $content{$entry}=$value;  
        }  
     }  
     return %content;  
 }  
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
   
 sub handler {  sub handler {
   my $r=shift;    my $r=shift;
   my @metacontents;    my %content=();
   my %content;  
   
 # ----------------------------------------------------------- Set document type  # ----------------------------------------------------------- Set document type
   
Line 52  sub handler { Line 30  sub handler {
   
 # ------------------------------------------------------------------- Read file  # ------------------------------------------------------------------- Read file
   
   {    my $uri=$r->uri;
     my $fh=Apache::File->new($r->filename);    map {
     @metacontents=<$fh>;        $content{$_}=&Apache::lonnet::metadata($uri,$_);
   }    } split(/\,/,&Apache::lonnet::metadata($uri,'keys'));
   
   %content=&unpackagemeta(join("\n",@metacontents),1);  
   
 # --------------------------------------------------------------- Render Output  # --------------------------------------------------------------- Render Output
   
Line 97  ENDHEAD Line 73  ENDHEAD
   delete($content{'owner'});    delete($content{'owner'});
   delete($content{'copyright'});    delete($content{'copyright'});
   map {    map {
       my ($value,$name)=split(/\_\_dis\_\_/,$content{$_});        my $name=$_;
       unless ($name) { $name=$_; }        my $display=&Apache::lonnet::metadata($uri,$name.'.display');
       $r->print('<b>'.$name.':</b> '.$value.'<br>');        if ($display) { $name=$display; }; 
         $r->print('<b>'.$name.':</b> '.$content{$name}.'<br>');
   } sort keys %content;    } sort keys %content;
   $r->print('</body></html>');    $r->print('</body></html>');
   return OK;    return OK;

Removed from v.1.2  
changed lines
  Added in v.1.3


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