version 1.22, 2002/10/18 13:49:49
|
version 1.27, 2003/03/14 02:26:12
|
Line 37 use strict;
|
Line 37 use strict;
|
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
use Apache::lonnet(); |
use Apache::lonnet(); |
use Apache::loncommon(); |
use Apache::loncommon(); |
|
use Apache::lonmsg; |
|
use Apache::lonpublisher; |
|
|
# ----------------------------------------- Fetch and evaluate dynamic metadata |
# ----------------------------------------- Fetch and evaluate dynamic metadata |
|
|
Line 96 sub dynamicmeta {
|
Line 98 sub dynamicmeta {
|
return %returnhash; |
return %returnhash; |
} |
} |
|
|
|
# ------------------------------------- Try to make an alt tag if there is none |
|
|
|
sub alttag { |
|
my ($base,$src)=@_; |
|
my $fullpath=&Apache::lonnet::hreflocation($base,$src); |
|
my $alttag=&Apache::lonnet::metadata($fullpath,'title').' '. |
|
&Apache::lonnet::metadata($fullpath,'subject').' '. |
|
&Apache::lonnet::metadata($fullpath,'abstract'); |
|
$alttag=~s/\s+/ /gs; |
|
$alttag=~s/\"//gs; |
|
$alttag=~s/\'//gs; |
|
$alttag=~s/\s+$//gs; |
|
$alttag=~s/^\s+//gs; |
|
if ($alttag) { return $alttag; } else |
|
{ return 'No information available'; } |
|
} |
|
|
# -------------------------------------------------------------- Pretty display |
# -------------------------------------------------------------- Pretty display |
|
|
sub evalgraph { |
sub evalgraph { |
Line 149 sub handler {
|
Line 168 sub handler {
|
|
|
my $uri=$r->uri; |
my $uri=$r->uri; |
|
|
|
unless ($uri=~/^\/\~/) { |
|
# =========================================== This is not in construction space |
my ($resdomain,$resuser)= |
my ($resdomain,$resuser)= |
(&Apache::lonnet::declutter($uri)=~/^(\w+)\/(\w+)\//); |
(&Apache::lonnet::declutter($uri)=~/^(\w+)\/(\w+)\//); |
|
|
Line 179 sub handler {
|
Line 200 sub handler {
|
} |
} |
|
|
# --------------------------------------------------------------- Render Output |
# --------------------------------------------------------------- Render Output |
my ($thisversion)=($uri=~/\.(\d+)\.(\w+)\.meta/); |
my ($thisversion)=($uri=~/\.(\d+)\.(\w+)\.meta$/); |
my $creationdate=localtime( |
my $creationdate=localtime( |
&Apache::loncommon::unsqltime($content{'creationdate'})); |
&Apache::loncommon::unsqltime($content{'creationdate'})); |
my $lastrevisiondate=localtime( |
my $lastrevisiondate=localtime( |
Line 294 $dynmeta{$_}." </td></tr>\n");
|
Line 315 $dynmeta{$_}." </td></tr>\n");
|
|| ($ENV{'user.role.ca./'.$1.'/'.$2})) { |
|| ($ENV{'user.role.ca./'.$1.'/'.$2})) { |
$r->print( |
$r->print( |
'<h4>Evaluation Comments (visible to author and co-authors only)</h4>'. |
'<h4>Evaluation Comments (visible to author and co-authors only)</h4>'. |
'<blockquote>'.$dynmeta{'comments'}.'</blockquote>'); |
'<blockquote>'.$dynmeta{'comments'}.'</blockquote>'); |
|
$r->print( |
|
'<h4>Error Messages (visible to author and co-authors only)</h4>'); |
|
my %errormsgs=&Apache::lonnet::dump('nohist_res_msgs',$1,$2); |
|
foreach (keys %errormsgs) { |
|
if ($_=~/^$disuri\_\d+$/) { |
|
my %content=&Apache::lonmsg::unpackagemsg($errormsgs{$_}); |
|
$r->print('<b>'.$content{'time'}.'</b>: '.$content{'message'}. |
|
'<br />'); |
|
} |
|
} |
} |
} |
# ------------------------------------------------------------- All other stuff |
# ------------------------------------------------------------- All other stuff |
$r->print( |
$r->print( |
Line 317 $dynmeta{$_}." </td></tr>\n");
|
Line 348 $dynmeta{$_}." </td></tr>\n");
|
$r->print("<br>\n"); |
$r->print("<br>\n"); |
} |
} |
} |
} |
$r->print('</body></html>'); |
# ===================================================== End Resource Space Call |
return OK; |
} else { |
|
# ===================================================== Construction Space Call |
|
|
|
# ----------------------------------------------------------- Set document type |
|
|
|
$r->content_type('text/html'); |
|
$r->send_http_header; |
|
|
|
return OK if $r->header_only; |
|
# ---------------------------------------------------------------------- Header |
|
my $bodytag=&Apache::loncommon::bodytag('Edit Catalog Information'); |
|
my $disuri=$uri; |
|
my $fn=&Apache::lonnet::filelocation('',$uri); |
|
$disuri=~s/^\/\~\w+//; |
|
$disuri=~s/\.meta$//; |
|
my $displayfile='Catalog Information for '.$disuri; |
|
if ($disuri=~/\/default$/) { |
|
my $dir=$disuri; |
|
$dir=~s/default$//; |
|
$displayfile='Default Cataloging Information for Directory '.$dir; |
|
} |
|
%Apache::lonpublisher::metadatafields=(); |
|
%Apache::lonpublisher::metadatakeys=(); |
|
&Apache::lonpublisher::metaeval(&Apache::lonnet::getfile($fn)); |
|
$r->print(<<ENDEDIT); |
|
<html><head><title>Edit Catalog Information</title></head> |
|
$bodytag |
|
<h1>$displayfile</h1> |
|
<form method="post"> |
|
ENDEDIT |
|
foreach ('author','title','subject','keywords','abstract','notes', |
|
'copyright','customdistributionfile','language') { |
|
if ($ENV{'form.new_'.$_}) { |
|
$Apache::lonpublisher::metadatafields{$_}=$ENV{'form.new_'.$_}; |
|
} |
|
$r->print( |
|
&Apache::lonpublisher::textfield($_,'new_'.$_, |
|
$Apache::lonpublisher::metadatafields{$_})); |
|
} |
|
if ($ENV{'form.store'}) { |
|
my $mfh; |
|
unless ($mfh=Apache::File->new('>'.$fn)) { |
|
$r->print( |
|
'<p><font color=red>Could not write metadata, FAIL</font>'); |
|
} else { |
|
foreach (sort keys %Apache::lonpublisher::metadatafields) { |
|
unless ($_=~/\./) { |
|
my $unikey=$_; |
|
$unikey=~/^([A-Za-z]+)/; |
|
my $tag=$1; |
|
$tag=~tr/A-Z/a-z/; |
|
print $mfh "\n\<$tag"; |
|
foreach |
|
(split(/\,/,$Apache::lonpublisher::metadatakeys{$unikey})) { |
|
my $value= |
|
$Apache::lonpublisher::metadatafields{$unikey.'.'.$_}; |
|
$value=~s/\"/\'\'/g; |
|
print $mfh ' '.$_.'="'.$value.'"'; |
|
} |
|
print $mfh '>'. |
|
&HTML::Entities::encode($Apache::lonpublisher::metadatafields{$unikey}) |
|
.'</'.$tag.'>'; |
|
} |
|
} |
|
$r->print('<p>Wrote Metadata'); |
|
} |
|
} |
|
$r->print( |
|
'<br /><input type="submit" name="store" value="Store Catalog Information"></form></body></html>'); |
|
return OK; |
|
} |
} |
} |
|
|
1; |
1; |