--- loncom/publisher/lonpublisher.pm 2001/10/08 19:00:50 1.47 +++ loncom/publisher/lonpublisher.pm 2001/12/05 20:37:06 1.58 @@ -1,5 +1,30 @@ # The LearningOnline Network with CAPA # Publication Handler +# +# $Id: lonpublisher.pm,v 1.58 2001/12/05 20:37:06 www Exp $ +# +# Copyright Michigan State University Board of Trustees +# +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). +# +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ +# # # (TeX Content Handler # @@ -11,8 +36,9 @@ # 04/16/2001 Scott Harrison # 05/03,05/05,05/07 Gerd Kortemeyer # 05/28/2001 Scott Harrison -# 06/23,08/07,08/11,8/13,8/17,8/18,8/24,9/26 Gerd Kortemeyer -# 10/3,10/8 Scott Harrison +# 06/23,08/07,08/11,8/13,8/17,8/18,8/24,9/26,10/16 Gerd Kortemeyer +# 12/04,12/05 Guy Albertelli +# 12/05 Gerd Kortemeyer package Apache::lonpublisher; @@ -155,6 +181,7 @@ sub urlfixup { } sub publish { + my ($source,$target,$style)=@_; my $logfile; my $scrout=''; @@ -225,14 +252,18 @@ sub publish { } my $outstring=''; my $parser=HTML::TokeParser->new(\$content); + $parser->xml_mode(1); my $token; while ($token=$parser->get_token) { if ($token->[0] eq 'S') { my $counter; my $tag=$token->[1]; - unless ($tag eq 'allow') { + my $lctag=lc($tag); + unless ($lctag eq 'allow') { my %parms=%{$token->[2]}; - if ($counter=$addid{$tag}) { + $counter=$addid{$tag}; + if (!$counter) { $counter=$addid{$lctag}; } + if ($counter) { if ($counter eq 'id') { unless (defined($parms{'id'})) { $maxid++; @@ -261,7 +292,7 @@ sub publish { } } ('src','href','background'); - if ($tag eq 'applet') { + if ($lctag eq 'applet') { my $codebase=''; if (defined($parms{'codebase'})) { my $oldcodebase=$parms{'codebase'}; @@ -302,15 +333,17 @@ sub publish { $newparmstring.=' '.$_.'='.$quote.$parms{$_}.$quote; } } keys %parms; - + if (!$endtag) { if ($token->[4]=~m:/>$:) { $endtag=' /'; }; } $outstring.='<'.$tag.$newparmstring.$endtag.'>'; } else { $allow{$token->[2]->{'src'}}=1; } } elsif ($token->[0] eq 'E') { + if ($token->[2]) { unless ($token->[1] eq 'allow') { $outstring.='[1].'>'; } + } } else { $outstring.=$token->[1]; } @@ -328,6 +361,12 @@ sub publish { $scrout.=''.$_.''; unless ($_=~/\*/) { $scrout.=''; + if (&Apache::lonnet::getfile( + $Apache::lonnet::perlvar{'lonDocRoot'}.'/'. + $_.'.meta') eq '-1') { + $scrout.= + ' - Currently not available'; + } } } keys %allow; $outstring=~s/(\<\/[^\>]+\>\s*)$/$allowstr$1/s; @@ -461,6 +500,7 @@ sub publish { &hiddenfield('phase','two'). &hiddenfield('filename',$ENV{'form.filename'}). &hiddenfield('allmeta',&Apache::lonnet::escape($allmeta)). + &hiddenfield('dependencies',join(',',keys %allow)). &textfield('Title','title',$metadatafields{'title'}). &textfield('Author(s)','author',$metadatafields{'author'}). &textfield('Subject','subject',$metadatafields{'subject'}); @@ -470,7 +510,7 @@ sub publish { my $keywordout='

Keywords:
'; my $colcount=0; - { + if (length($content)<500000) { my $textonly=$content; $textonly=~s/\//g; $textonly=~s/\[^\<]+\<\/m\>//g; @@ -480,29 +520,12 @@ sub publish { $textonly=~s/[^a-z\s]//g; my %keywords=(); - my $j=0; - my $word; - for (my $i=0; $i