version 1.7, 2000/11/30 23:01:41
|
version 1.9, 2000/12/01 16:17:46
|
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 Gerd Kortemeyer |
# 11/28,11/29,11/30,12/01 Gerd Kortemeyer |
|
|
package Apache::lonpublisher; |
package Apache::lonpublisher; |
|
|
Line 18 use Apache::lonhomework;
|
Line 18 use Apache::lonhomework;
|
|
|
my %addid; |
my %addid; |
my %nokey; |
my %nokey; |
|
my %language; |
my %metadatafields; |
my %metadatafields; |
my %metadatakeys; |
my %metadatakeys; |
|
|
Line 46 sub metaeval {
|
Line 46 sub metaeval {
|
} |
} |
} @{$token->[3]}; |
} @{$token->[3]}; |
if ($metadatafields{$unikey}) { |
if ($metadatafields{$unikey}) { |
$metadatafields{$unikey}.=','.$parser->get_text('/'.$entry); |
my $newentry=$parser->get_text('/'.$entry); |
|
unless ($metadatafields{$unikey}=~/$newentry/) { |
|
$metadatafields{$unikey}.=', '.$newentry; |
|
} |
} else { |
} else { |
$metadatafields{$unikey}=$parser->get_text('/'.$entry); |
$metadatafields{$unikey}=$parser->get_text('/'.$entry); |
} |
} |
Line 70 sub metaread {
|
Line 73 sub metaread {
|
return '<br><b>Processed file:</b> <tt>'.$fn.'</tt>'; |
return '<br><b>Processed file:</b> <tt>'.$fn.'</tt>'; |
} |
} |
|
|
|
sub textfield { |
|
my ($title,$value)=@_; |
|
return "\n<p><b>$title:</b><br>". |
|
'<input type=text size=80 value="'.$value.'">'; |
|
} |
|
|
|
sub selectbox { |
|
my ($title,$value,%options)=@_; |
|
} |
|
|
sub publish { |
sub publish { |
|
|
my ($source,$target,$style)=@_; |
my ($source,$target,$style)=@_; |
Line 201 sub publish {
|
Line 214 sub publish {
|
|
|
# ---------------------------------------- Storage for metadata keys and fields |
# ---------------------------------------- Storage for metadata keys and fields |
|
|
%metadatafields=(); |
%metadatafields=(); |
%metadatakeys=(); |
%metadatakeys=(); |
|
|
|
my %oldparmstores=(); |
|
|
# ------------------------------------------------ First, check out environment |
# ------------------------------------------------ First, check out environment |
|
unless (-e $source.'.meta') { |
$metadatafields{'author'}=$ENV{'environment.firstname'}.' '. |
$metadatafields{'author'}=$ENV{'environment.firstname'}.' '. |
$ENV{'environment.middlename'}.' '. |
$ENV{'environment.middlename'}.' '. |
$ENV{'environment.lastname'}.' '. |
$ENV{'environment.lastname'}.' '. |
$ENV{'environment.generation'}; |
$ENV{'environment.generation'}; |
|
$metadatafields{'author'}=~s/\s+/ /g; |
|
$metadatafields{'author'}=~s/\s+$//; |
|
|
# ------------------------------------------------ Check out directory hierachy |
# ------------------------------------------------ Check out directory hierachy |
|
|
Line 234 sub publish {
|
Line 251 sub publish {
|
} |
} |
} keys %metadatafields; |
} keys %metadatafields; |
|
|
|
} else { |
# ---------------------- Read previous metafile, remember parameters and stores |
# ---------------------- Read previous metafile, remember parameters and stores |
|
|
$scrout.=&metaread($logfile,$source.'.meta'); |
$scrout.=&metaread($logfile,$source.'.meta'); |
my %oldparmstores=(); |
|
|
|
map { |
map { |
if (($_=~/^parameter/) || ($_=~/^stores/)) { |
if (($_=~/^parameter/) || ($_=~/^stores/)) { |
Line 246 sub publish {
|
Line 263 sub publish {
|
} |
} |
} keys %metadatafields; |
} keys %metadatafields; |
|
|
|
} |
|
|
# -------------------------------------------------- Parse content for metadata |
# -------------------------------------------------- Parse content for metadata |
|
|
Line 290 sub publish {
|
Line 307 sub publish {
|
$chparms; |
$chparms; |
} |
} |
|
|
# DEBUG: |
# ------------------------------------------------------- Now have all metadata |
|
|
$scrout.=$allmeta; |
$scrout.= |
|
'<form action="/adm/publish" method="post">'. |
|
'<input type="hidden" name="phase" value="two">'. |
|
'<input type="hidden" name="filename" value="'.$ENV{'form.filename'}.'">'. |
|
&textfield('Title',$metadatafields{'title'}). |
|
&textfield('Author(s)',$metadatafields{'author'}). |
|
&textfield('Subject',$metadatafields{'subject'}); |
|
|
# --------------------------------------------------- Scan content for keywords |
# --------------------------------------------------- Scan content for keywords |
|
|
my $keywordout='<table border=2><tr>'; |
my $keywordout='<p><b>Keywords:</b><br><table border=2><tr>'; |
my $colcount=0; |
my $colcount=0; |
|
|
{ |
{ |
Line 317 sub publish {
|
Line 340 sub publish {
|
|
|
|
|
map { |
map { |
$keywordout.='<td><input type=checkbox name="'.$_.'">'.$_. |
$keywordout.='<td><input type=checkbox name="'.$_.'"'; |
'</td>'; |
if ($metadatafields{'keywords'}=~/$_/) { |
|
$keywordout.=' checked'; |
|
} |
|
$keywordout.='>'.$_.'</td>'; |
if ($colcount>10) { |
if ($colcount>10) { |
$keywordout.="</tr><tr>\n"; |
$keywordout.="</tr><tr>\n"; |
$colcount=0; |
$colcount=0; |
Line 329 sub publish {
|
Line 355 sub publish {
|
|
|
} |
} |
|
|
# DEGUG |
|
|
|
$scrout.=$keywordout; |
$scrout.=$keywordout; |
|
|
|
$scrout.=&textfield('Notes',$metadatafields{'notes'}); |
|
|
|
$scrout.= |
|
'<p><b>Abstract:</b><br><textarea cols=80 rows=5 name=abstract>'. |
|
$metadatafields{'abstract'}.'</textarea>'; |
|
|
|
$scrout.=&selectbox('Language',$metadatafields{'language'},%language); |
|
|
|
$scrout.=&textfield('Publisher/Owner',$metadatafields{'owner'}); |
|
|
} |
} |
return $scrout; |
return $scrout. |
|
'<p><input type="submit" value="Finalize Publication"></form>'; |
} |
} |
|
|
# ================================================================ Main Handler |
# ================================================================ Main Handler |
Line 409 sub handler {
|
Line 445 sub handler {
|
$nokey{$word}=1; |
$nokey{$word}=1; |
} <$fh>; |
} <$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 |
# ----------------------------------------------------------- Start page output |
|
|
$r->content_type('text/html'); |
$r->content_type('text/html'); |