version 1.141, 2003/11/01 17:09:52
|
version 1.146, 2003/12/08 18:26:01
|
Line 143 use Apache::lonnet();
|
Line 143 use Apache::lonnet();
|
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonmysql; |
use Apache::lonmysql; |
use Apache::lonlocal; |
use Apache::lonlocal; |
|
use Apache::loncfile; |
use vars qw(%metadatafields %metadatakeys); |
use vars qw(%metadatafields %metadatakeys); |
|
|
my %addid; |
my %addid; |
Line 180 nothing
|
Line 181 nothing
|
|
|
######################################### |
######################################### |
######################################### |
######################################### |
|
# |
|
# Modifies global %metadatafields %metadatakeys |
|
# |
|
|
sub metaeval { |
sub metaeval { |
my ($metastring,$prefix)=@_; |
my ($metastring,$prefix)=@_; |
|
|
Line 214 sub metaeval {
|
Line 219 sub metaeval {
|
$newentry=~s/^\s*//; |
$newentry=~s/^\s*//; |
if ($newentry !~m|^/res|) { $newentry=$prefix.$newentry; } |
if ($newentry !~m|^/res|) { $newentry=$prefix.$newentry; } |
} |
} |
if ($metadatafields{$unikey}) { |
unless ($metadatafields{$unikey}=~/\w/) { |
unless (($metadatafields{$unikey}=~/\Q$newentry\E/) || |
|
($newentry eq '')) { |
|
$metadatafields{$unikey}.=', '.$newentry; |
|
} |
|
} else { |
|
$metadatafields{$unikey}=$newentry; |
$metadatafields{$unikey}=$newentry; |
} |
} |
} |
} |
Line 267 sub metaread {
|
Line 267 sub metaread {
|
my ($logfile,$fn,$prefix)=@_; |
my ($logfile,$fn,$prefix)=@_; |
unless (-e $fn) { |
unless (-e $fn) { |
print($logfile 'No file '.$fn."\n"); |
print($logfile 'No file '.$fn."\n"); |
return '<br /><b>No file:</b> <tt>'.$fn.'</tt>'; |
return '<br /><b>'.&mt('No file').':</b> <tt>'. |
|
&Apache::loncfile::display($fn).'</tt>'; |
} |
} |
print($logfile 'Processing '.$fn."\n"); |
print($logfile 'Processing '.$fn."\n"); |
my $metastring; |
my $metastring; |
Line 276 sub metaread {
|
Line 277 sub metaread {
|
$metastring=join('',<$metafh>); |
$metastring=join('',<$metafh>); |
} |
} |
&metaeval($metastring,$prefix); |
&metaeval($metastring,$prefix); |
return '<br /><b>Processed file:</b> <tt>'.$fn.'</tt>'; |
return '<br /><b>Processed file:</b> <tt>'. |
|
&Apache::loncfile::display($fn).'</tt>'; |
} |
} |
|
|
######################################### |
######################################### |
Line 815 sub store_metadata {
|
Line 817 sub store_metadata {
|
return (undef,$status); |
return (undef,$status); |
} |
} |
|
|
|
|
|
# ============================================== Parse file itself for metadata |
|
# |
|
# parses a file with target meta, sets global %metadatafields %metadatakeys |
|
|
|
sub parseformeta { |
|
my ($source,$style)=@_; |
|
my $allmeta=''; |
|
if (($style eq 'ssi') || ($style eq 'prv')) { |
|
my $dir=$source; |
|
$dir=~s-/[^/]*$--; |
|
my $file=$source; |
|
$file=(split('/',$file))[-1]; |
|
$source=&Apache::lonnet::hreflocation($dir,$file); |
|
$allmeta=&Apache::lonnet::ssi_body($source,('grade_target' => 'meta')); |
|
&metaeval($allmeta); |
|
} |
|
return $allmeta; |
|
} |
|
|
######################################### |
######################################### |
######################################### |
######################################### |
|
|
Line 870 sub publish {
|
Line 892 sub publish {
|
if ($error) { return ($outstring,$error); } |
if ($error) { return ($outstring,$error); } |
# ------------------------------------------------------------ Construct Allows |
# ------------------------------------------------------------ Construct Allows |
|
|
$scrout.='<h3>Dependencies</h3>'; |
$scrout.='<h3>'.&mt('Dependencies').'</h3>'; |
my $allowstr=''; |
my $allowstr=''; |
foreach (sort(keys(%allow))) { |
foreach (sort(keys(%allow))) { |
my $thisdep=$_; |
my $thisdep=$_; |
Line 927 sub publish {
|
Line 949 sub publish {
|
# -------------------------------------------- Initial step done, now metadata. |
# -------------------------------------------- Initial step done, now metadata. |
|
|
# --------------------------------------- Storage for metadata keys and fields. |
# --------------------------------------- Storage for metadata keys and fields. |
|
# these are globals |
|
# |
%metadatafields=(); |
%metadatafields=(); |
%metadatakeys=(); |
%metadatakeys=(); |
|
|
Line 952 sub publish {
|
Line 975 sub publish {
|
$ENV{'user.domain'}; |
$ENV{'user.domain'}; |
$metadatafields{'authorspace'}=$cuname.'@'.$cudom; |
$metadatafields{'authorspace'}=$cuname.'@'.$cudom; |
|
|
|
# ----------------------------------------------------------- Parse file itself |
|
# read %metadatafields from file itself |
|
|
|
$allmeta=&parseformeta($source,$style); |
# ------------------------------------------------ Check out directory hierachy |
# ------------------------------------------------ Check out directory hierachy |
|
|
my $thisdisfn=$source; |
my $thisdisfn=$source; |
Line 988 sub publish {
|
Line 1015 sub publish {
|
delete $metadatafields{$_}; |
delete $metadatafields{$_}; |
} |
} |
} |
} |
|
# ------------------------------------------ See if anything new in file itself |
} |
|
|
$allmeta=&parseformeta($source,$style); |
|
} |
|
|
# -------------------------------------------------- Parse content for metadata |
|
if (($style eq 'ssi') || ($style eq 'prv')) { |
|
my $dir=$source; |
|
$dir=~s-/[^/]*$--; |
|
my $file=$source; |
|
$file=(split('/',$file))[-1]; |
|
$source=&Apache::lonnet::hreflocation($dir,$file); |
|
$allmeta=&Apache::lonnet::ssi_body($source,('grade_target' => 'meta')); |
|
|
|
&metaeval($allmeta); |
|
} |
|
# ---------------- Find and document discrepancies in the parameters and stores |
# ---------------- Find and document discrepancies in the parameters and stores |
|
|
my $chparms=''; |
my $chparms=''; |
Line 1032 sub publish {
|
Line 1051 sub publish {
|
} |
} |
if ($chparms) { |
if ($chparms) { |
$scrout.='<p><b>'.&mt('Obsolete parameters or stored values').':</b> '. |
$scrout.='<p><b>'.&mt('Obsolete parameters or stored values').':</b> '. |
$chparms.'</p>'; |
$chparms.'</p><h1><font color="red">'.&mt('Warning!'). |
|
'</font></h1><p><font color="red" size="+1">'. |
|
&mt('If this resource is in active use, student performance data from the previous version may become inaccessible.').'</font></p><hr />'; |
} |
} |
|
|
# ------------------------------------------------------- Now have all metadata |
# ------------------------------------------------------- Now have all metadata |
Line 1066 sub publish {
|
Line 1087 sub publish {
|
unless ($batch) { |
unless ($batch) { |
$scrout.= |
$scrout.= |
'<form name="pubform" action="/adm/publish" method="post">'. |
'<form name="pubform" action="/adm/publish" method="post">'. |
'<p><input type="submit" value="Finalize Publication" /></p>'. |
'<p><input type="submit" value="'.&mt('Finalize Publication').'" /></p>'. |
&hiddenfield('phase','two'). |
&hiddenfield('phase','two'). |
&hiddenfield('filename',$ENV{'form.filename'}). |
&hiddenfield('filename',$ENV{'form.filename'}). |
&hiddenfield('allmeta',&Apache::lonnet::escape($allmeta)). |
&hiddenfield('allmeta',&Apache::lonnet::escape($allmeta)). |
Line 1078 sub publish {
|
Line 1099 sub publish {
|
# --------------------------------------------------- Scan content for keywords |
# --------------------------------------------------- Scan content for keywords |
|
|
my $keywords_help = Apache::loncommon::help_open_topic("Publishing_Keywords"); |
my $keywords_help = Apache::loncommon::help_open_topic("Publishing_Keywords"); |
|
my $KEYWORDS=&mt('KEYWORDS'); |
|
my $CheckAll=&mt('check all'); |
|
my $UncheckAll=&mt('uncheck all'); |
my $keywordout=<<"END"; |
my $keywordout=<<"END"; |
<script> |
<script> |
function checkAll(field) { |
function checkAll(field) { |
Line 1090 function uncheckAll(field) {
|
Line 1114 function uncheckAll(field) {
|
field[i].checked = false ; |
field[i].checked = false ; |
} |
} |
</script> |
</script> |
<p><font color="#800000" face="helvetica"><b>KEYWORDS:</b></font> |
<p><font color="#800000" face="helvetica"><b>$KEYWORDS:</b></font> |
$keywords_help</b> |
$keywords_help</b> |
<input type="button" value="check all" onclick="javascript:checkAll(document.pubform.keywords)" /> |
<input type="button" value="$CheckAll" onclick="javascript:checkAll(document.pubform.keywords)" /> |
<input type="button" value="uncheck all" onclick="javascript:uncheckAll(document.pubform.keywords)" /> |
<input type="button" value="$UncheckAll" onclick="javascript:uncheckAll(document.pubform.keywords)" /> |
</p> |
</p> |
<br /> |
<br /> |
END |
END |
Line 1126 END
|
Line 1150 END
|
$scrout.=&textfield('Notes','notes',$metadatafields{'notes'}); |
$scrout.=&textfield('Notes','notes',$metadatafields{'notes'}); |
|
|
$scrout.= |
$scrout.= |
"\n<p><font color=\"#800000\" face=\"helvetica\"><b>ABSTRACT:". |
"\n<p><font color=\"#800000\" face=\"helvetica\"><b>".&mt('ABSTRACT').":". |
"</b></font></p><br />". |
"</b></font></p><br />". |
'<textarea cols="80" rows="5" name="abstract">'. |
'<textarea cols="80" rows="5" name="abstract">'. |
$metadatafields{'abstract'}.'</textarea></p>'; |
$metadatafields{'abstract'}.'</textarea></p>'; |