--- loncom/publisher/lonpublisher.pm 2003/12/29 21:17:00 1.158
+++ loncom/publisher/lonpublisher.pm 2004/06/11 02:27:27 1.171
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Publication Handler
#
-# $Id: lonpublisher.pm,v 1.158 2003/12/29 21:17:00 www Exp $
+# $Id: lonpublisher.pm,v 1.171 2004/06/11 02:27:27 taceyjo1 Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -126,7 +126,8 @@ use Apache::loncommon();
use Apache::lonmysql;
use Apache::lonlocal;
use Apache::loncfile;
-use Apache::lonmeta;
+use LONCAPA::lonmetadata;
+use Apache::lonmsg;
use vars qw(%metadatafields %metadatakeys);
my %addid;
@@ -203,7 +204,11 @@ sub metaeval {
if ($newentry !~m|^/res|) { $newentry=$prefix.$newentry; }
}
# actually store
- $metadatafields{$unikey}=$newentry;
+ if ( $entry eq 'rule' && exists($metadatafields{$unikey})) {
+ $metadatafields{$unikey}.=','.$newentry;
+ } else {
+ $metadatafields{$unikey}=$newentry;
+ }
}
}
}
@@ -317,6 +322,7 @@ sub textfield {
$value=~s/\s+$//gs;
$value=~s/\s+/ /gs;
$title=&mt($title);
+ $ENV{'form.'.$name}=$value;
return "\n
$title:".
"
".
'';
@@ -324,6 +330,7 @@ sub textfield {
sub hiddenfield {
my ($name,$value)=@_;
+ $ENV{'form.'.$name}=$value;
return "\n".'';
}
@@ -331,6 +338,11 @@ sub selectbox {
my ($title,$name,$value,$functionref,@idlist)=@_;
$title=&mt($title);
$value=(split(/\s*,\s*/,$value))[-1];
+ if (defined($value)) {
+ $ENV{'form.'.$name}=$value;
+ } else {
+ $ENV{'form.'.$name}=$idlist[0];
+ }
my $selout="\n
$title:".
'
';
}
+sub select_level_form {
+ my ($value,$name)=@_;
+ $ENV{'form.'.$name}=$value;
+ if (!defined($value)) { $ENV{'form.'.$name}=0; }
+ return &Apache::loncommon::select_level_form($value,$name);
+}
#########################################
#########################################
@@ -804,7 +822,7 @@ sub store_metadata {
$metadata{'url'}."'");
if ($#oldmeta==0) {
# yes, there is one old entry, transfer to newmetadata
- %newmetadata=&Apache::lonmeta::metadata_col_to_hash(@{$oldmeta[0]});
+ %newmetadata=&LONCAPA::lonmetadata::metadata_col_to_hash(@{$oldmeta[0]});
# remove old entry
$status=&Apache::lonmysql::remove_from_table
('metadata','url',$metadata{'url'});
@@ -915,11 +933,11 @@ sub publish {
$allowstr.="\n".'';
}
$scrout.=' ';
- unless ($thisdep=~/\*/) {
+ if ($thisdep!~/\*/ && $thisdep!~m|^/adm/|) {
$scrout.='';
}
$scrout.=''.$thisdep.'';
- unless ($thisdep=~/\*/) {
+ if ($thisdep!~/\*/ && $thisdep!~m|^/adm/|) {
$scrout.='';
if (
&Apache::lonnet::getfile($Apache::lonnet::perlvar{'lonDocRoot'}.'/'.
@@ -940,11 +958,6 @@ sub publish {
}
$outstring=~s/\n*(\<\/[^\>]+\>)\s*$/$allowstr\n$1\n/s;
-### FIXME: is this really what we want?
-# I dont' think so, to will corrupt any UTF-8 resources at least,
-# and any encoding other than ISO-8859-1 will probably break
- #Encode any High ASCII characters
- #$outstring=&HTML::Entities::encode($outstring,"\200-\377");
# ------------------------------------------------------------- Write modified.
{
@@ -1029,6 +1042,7 @@ sub publish {
# ------------------------------------------ See if anything new in file itself
$allmeta=&parseformeta($source,$style);
+
}
@@ -1088,32 +1102,40 @@ sub publish {
}
- foreach (split(/\W+/,$metadatafields{'keywords'})) {
- $keywords{$_}=1;
+ foreach my $addkey (split(/[\"\'\,\;]/,$metadatafields{'keywords'})) {
+ $addkey=~s/\s+/ /g;
+ $addkey=~s/^\s//;
+ $addkey=~s/\s$//;
+ if ($addkey=~/\w/) {
+ $keywords{$addkey}=1;
+ }
}
# --------------------------------------------------- Now we also have keywords
# =============================================================================
-# INTERACTIVE MODE
-#
- unless ($batch) {
- $scrout.=
- '