--- loncom/publisher/lonpublisher.pm 2000/12/02 12:40:27 1.10 +++ loncom/publisher/lonpublisher.pm 2000/12/02 20:55:16 1.11 @@ -79,7 +79,12 @@ sub metaread { sub textfield { my ($title,$name,$value)=@_; return "\n

$title:
". - ''; + ''; +} + +sub hiddenfield { + my ($name,$value)=@_; + return "\n".''; } sub selectbox { @@ -104,7 +109,7 @@ sub publish { 'No write permission to user directory, FAIL'; } print $logfile -"\n\n================== Publish ".localtime()." =================\n"; +"\n\n================= Publish ".localtime()." Phase One ================\n"; if (($style eq 'ssi') || ($style eq 'rat')) { # ------------------------------------------------------- This needs processing @@ -317,8 +322,9 @@ sub publish { $scrout.= '

'. - ''. - ''. + &hiddenfield('phase','two'). + &hiddenfield('filename',$ENV{'form.filename'}). + &hiddenfield('allmeta',&Apache::lonnet::escape($allmeta)). &textfield('Title','title',$metadatafields{'title'}). &textfield('Author(s)','author',$metadatafields{'author'}). &textfield('Subject','subject',$metadatafields{'subject'}); @@ -369,8 +375,20 @@ sub publish { '

Abstract:
'; + $source=~/\.(\w+)$/; + + $scrout.=&hiddenfield('mime',$1); + $scrout.=&selectbox('Language','language', $metadatafields{'language'},%language); + + unless ($metadatafields{'creationdate'}) { + $metadatafields{'creationdate'}=time; + } + $scrout.=&hiddenfield('creationdate',$metadatafields{'creationdate'}); + + $scrout.=&hiddenfield('lastrevisiondate',time); + $scrout.=&textfield('Publisher/Owner','owner', $metadatafields{'owner'}); @@ -383,6 +401,45 @@ sub publish { '

'; } +sub phasetwo { + + my ($source,$target,$style)=@_; + my $logfile; + my $scrout=''; + + unless ($logfile=Apache::File->new('>>'.$source.'.log')) { + return + 'No write permission to user directory, FAIL'; + } + print $logfile +"\n================= Publish ".localtime()." Phase Two ================\n"; + + %metadatafields=(); + %metadatakeys=(); + + &metaeval(&Apache::lonnet::unescape($ENV{'form.allmeta'})); + + $metadatafields{'title'}=$ENV{'form.title'}; + $metadatafields{'author'}=$ENV{'form.author'}; + $metadatafields{'subject'}=$ENV{'form.subject'}; + $metadatafields{'keywords'}=$ENV{'form.keywords'}; + $metadatafields{'notes'}=$ENV{'form.notes'}; + $metadatafields{'abstract'}=$ENV{'form.abstract'}; + $metadatafields{'mime'}=$ENV{'form.mime'}; + $metadatafields{'language'}=$ENV{'form.language'}; + $metadatafields{'creationdate'}=$ENV{'form.creationdate'}; + $metadatafields{'lastrevisiondate'}=$ENV{'form.lastrevisiondate'}; + $metadatafields{'owner'}=$ENV{'form.owner'}; + $metadatafields{'copyright'}=$ENV{'form.copyright'}; + + map { + print $logfile "\n".$_.': '.$metadatafields{$_}. + "\n".$_.'.keys: '.$metadatakeys{$_}; + } sort keys %metadatafields; + + +} + # ================================================================ Main Handler sub handler { @@ -435,6 +492,8 @@ sub handler { return HTTP_NOT_FOUND; } +unless ($ENV{'form.phase'} eq 'two') { + # --------------------------------- File is there and owned, init lookup tables %addid=(); @@ -476,6 +535,9 @@ sub handler { $cprtag{$1}=$2; } <$fh>; } + +} + # ----------------------------------------------------------- Start page output $r->content_type('text/html'); @@ -505,13 +567,16 @@ sub handler { $r->print('

Publishing '. &Apache::lonnet::filedescription($thistype).' '. $thisdisfn.'

Target: '.$thisdistarget.'

'); - + # ------------ We are publishing from $thisfn to $thistarget with $thisembstyle - $r->print('


'.&publish($thisfn,$thistarget,$thisembstyle)); - - } + unless ($ENV{'form.phase'} eq 'two') { + $r->print('
'.&publish($thisfn,$thistarget,$thisembstyle)); + } else { + $r->print('
'.&phasetwo($thisfn,$thistarget,$thisembstyle)); + } + } $r->print(''); return OK;