version 1.242, 2008/08/01 17:29:57
|
version 1.245, 2008/08/14 13:39:02
|
Line 118 use Apache::File;
|
Line 118 use Apache::File;
|
use File::Copy; |
use File::Copy; |
use Apache::Constants qw(:common :http :methods); |
use Apache::Constants qw(:common :http :methods); |
use HTML::LCParser; |
use HTML::LCParser; |
|
use HTML::Entities; |
|
use Encode::Encoder; |
use Apache::lonxml; |
use Apache::lonxml; |
use Apache::loncacc; |
use Apache::loncacc; |
use DBI; |
use DBI; |
Line 1172 sub publish {
|
Line 1174 sub publish {
|
$textonly=~s/\<script[^\<]+\<\/script\>//g; |
$textonly=~s/\<script[^\<]+\<\/script\>//g; |
$textonly=~s/\<m\>[^\<]+\<\/m\>//g; |
$textonly=~s/\<m\>[^\<]+\<\/m\>//g; |
$textonly=~s/\<[^\>]*\>//g; |
$textonly=~s/\<[^\>]*\>//g; |
$textonly=~tr/A-Z/a-z/; |
|
$textonly=~s/[\$\&][a-z]\w*//g; |
|
$textonly=~s/[^a-z\s]//g; |
|
|
|
foreach ($textonly=~m/(\w+)/g) { |
|
unless ($nokey{$_}) { |
|
$keywords{$_}=1; |
|
} |
|
} |
|
} |
|
|
|
|
#this is a work simplification for german authors for present |
|
$textonly=HTML::Entities::decode($textonly); #decode HTML-character |
|
$textonly=Encode::Encoder::encode('utf8', $textonly); #encode to perl internal unicode |
|
$textonly=~tr/A-ZÜÄÖ/a-züäö/; #add lowercase rule for german "Umlaute" |
|
$textonly=~s/[\$\&][a-z]\w*//g; |
|
$textonly=~s/[^a-z^ü^ä^ö^ß\s]//g; #dont delete german "Umlaute" |
|
|
|
foreach ($textonly=~m/[^\s]+/g) { #match all but whitespaces |
|
unless ($nokey{$_}) { |
|
$keywords{$_}=1; |
|
} |
|
} |
|
|
|
|
|
} |
|
|
foreach my $addkey (split(/[\"\'\,\;]/,$metadatafields{'keywords'})) { |
foreach my $addkey (split(/[\"\'\,\;]/,$metadatafields{'keywords'})) { |
$addkey=~s/\s+/ /g; |
$addkey=~s/\s+/ /g; |
Line 1248 END
|
Line 1255 END
|
my $colcount=0; |
my $colcount=0; |
|
|
foreach (sort keys %keywords) { |
foreach (sort keys %keywords) { |
|
$colcount++; |
$keywordout.='<td><label><input type="checkbox" name="keywords" value="'.$_.'"'; |
$keywordout.='<td><label><input type="checkbox" name="keywords" value="'.$_.'"'; |
if ($metadatafields{'keywords'}) { |
if ($metadatafields{'keywords'}) { |
if ($metadatafields{'keywords'}=~/\Q$_\E/) { |
if ($metadatafields{'keywords'}=~/\Q$_\E/) { |
Line 1259 END
|
Line 1267 END
|
$env{'form.keywords'}.=$_.','; |
$env{'form.keywords'}.=$_.','; |
} |
} |
$keywordout.=' />'.$_.'</label></td>'; |
$keywordout.=' />'.$_.'</label></td>'; |
if ($colcount>10) { |
if ($colcount>=10) { |
$keywordout.="</tr><tr>\n"; |
$keywordout.=&Apache::loncommon::end_data_table_row() |
|
.&Apache::loncommon::start_data_table_row(); |
$colcount=0; |
$colcount=0; |
} |
} |
$colcount++; |
|
} |
} |
|
# Proper end of started table row: |
|
if ($colcount != 0) { # has still to be improved: if amount of keywords mod 10 == 0, then do not start another table row |
|
while ($colcount<10) { |
|
$keywordout.='<td> </td>'; |
|
$colcount++; |
|
} |
|
} |
|
|
$env{'form.keywords'}=~s/\,$//; |
$env{'form.keywords'}=~s/\,$//; |
|
|
$keywordout.=&Apache::loncommon::end_data_table_row() |
$keywordout.=&Apache::loncommon::end_data_table_row() |