--- loncom/publisher/lonpublisher.pm 2000/11/30 23:01:41 1.7 +++ loncom/publisher/lonpublisher.pm 2000/12/01 16:17:46 1.9 @@ -5,7 +5,7 @@ # # 05/29/00,05/30,10/11 Gerd Kortemeyer) # -# 11/28,11/29,11/30 Gerd Kortemeyer +# 11/28,11/29,11/30,12/01 Gerd Kortemeyer package Apache::lonpublisher; @@ -18,7 +18,7 @@ use Apache::lonhomework; my %addid; my %nokey; - +my %language; my %metadatafields; my %metadatakeys; @@ -46,7 +46,10 @@ sub metaeval { } } @{$token->[3]}; if ($metadatafields{$unikey}) { - $metadatafields{$unikey}.=','.$parser->get_text('/'.$entry); + my $newentry=$parser->get_text('/'.$entry); + unless ($metadatafields{$unikey}=~/$newentry/) { + $metadatafields{$unikey}.=', '.$newentry; + } } else { $metadatafields{$unikey}=$parser->get_text('/'.$entry); } @@ -70,6 +73,16 @@ sub metaread { return '
Processed file: '.$fn.''; } +sub textfield { + my ($title,$value)=@_; + return "\n

$title:
". + ''; +} + +sub selectbox { + my ($title,$value,%options)=@_; +} + sub publish { my ($source,$target,$style)=@_; @@ -201,15 +214,19 @@ sub publish { # ---------------------------------------- Storage for metadata keys and fields - %metadatafields=(); - %metadatakeys=(); + %metadatafields=(); + %metadatakeys=(); + + my %oldparmstores=(); # ------------------------------------------------ First, check out environment - + unless (-e $source.'.meta') { $metadatafields{'author'}=$ENV{'environment.firstname'}.' '. $ENV{'environment.middlename'}.' '. $ENV{'environment.lastname'}.' '. $ENV{'environment.generation'}; + $metadatafields{'author'}=~s/\s+/ /g; + $metadatafields{'author'}=~s/\s+$//; # ------------------------------------------------ Check out directory hierachy @@ -234,10 +251,10 @@ sub publish { } } keys %metadatafields; + } else { # ---------------------- Read previous metafile, remember parameters and stores $scrout.=&metaread($logfile,$source.'.meta'); - my %oldparmstores=(); map { if (($_=~/^parameter/) || ($_=~/^stores/)) { @@ -246,7 +263,7 @@ sub publish { } } keys %metadatafields; - + } # -------------------------------------------------- Parse content for metadata @@ -290,13 +307,19 @@ sub publish { $chparms; } -# DEBUG: +# ------------------------------------------------------- Now have all metadata - $scrout.=$allmeta; + $scrout.= + '

'. + ''. + ''. + &textfield('Title',$metadatafields{'title'}). + &textfield('Author(s)',$metadatafields{'author'}). + &textfield('Subject',$metadatafields{'subject'}); # --------------------------------------------------- Scan content for keywords - my $keywordout=''; + my $keywordout='

Keywords:

'; my $colcount=0; { @@ -317,8 +340,11 @@ sub publish { map { - $keywordout.=''; + $keywordout.='\n"; $colcount=0; @@ -329,11 +355,21 @@ sub publish { } -# DEGUG - $scrout.=$keywordout; + + $scrout.=&textfield('Notes',$metadatafields{'notes'}); + + $scrout.= + '

Abstract:
'; + + $scrout.=&selectbox('Language',$metadatafields{'language'},%language); + + $scrout.=&textfield('Publisher/Owner',$metadatafields{'owner'}); + } - return $scrout; + return $scrout. + '

'; } # ================================================================ Main Handler @@ -409,6 +445,16 @@ sub handler { $nokey{$word}=1; } <$fh>; } + + %language=(); + + { + my $fh=Apache::File->new($r->dir_config('lonTabDir').'/language.tab'); + map { + $_=~/(\w+)\s+([\w\s]+)/; + $language{$1}=$2; + } <$fh>; + } # ----------------------------------------------------------- Start page output $r->content_type('text/html');

'.$_. - ''; if ($colcount>10) { $keywordout.="