--- loncom/xml/scripttag.pm 2013/10/01 00:52:58 1.169 +++ loncom/xml/scripttag.pm 2015/01/19 15:36:16 1.173 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # '; + } + + } elsif ($target eq 'meta') { my $bodytext=&Apache::lonxml::get_all_text_unbalanced("/script",$parser); } @@ -141,7 +175,18 @@ sub start_script { } } } elsif (($type eq 'text/javascript') && ($bodytext ne '')) { - if ($url =~ m{^\Q/uploaded/$cdom/$cnum/docs/\E}) { + if ($url =~ m{^\Q/uploaded/$cdom/$cnum/\E(docs|supplemental)/}) { + if ($bodytext =~ m{\.addMediaSrc\((["'])((?!\1).)+\1\);}) { + my $quote = $1; + if ($bodytext =~ m{\Q.addMediaSrc($quote\E([^$quote]+)\Q$quote)\E}) { + my $fname = $1; + my $cleanhref = + &Apache::londefdef::clean_docs_httpref($fname,$url,$cdom,$cnum); + if ($cleanhref) { + &Apache::lonxml::extlink($cleanhref); + } + } + } if ($bodytext =~ m{\.set\w+(Src|Swf)\(["']}i) { my @srcs = split(/\.set/,$bodytext); if (scalar(@srcs) > 1) { @@ -168,6 +213,16 @@ sub start_script { &Apache::lonxml::extlink($spritesheet); } } +# +# Camtasia 8.4: express_show/spritesheet.min.css needed, and included in zip archive. +# Not referenced directly in
.html or
_player.html files, +# so call lonxml::extlink() here to include httpref for the uploaded file. +# (where
is name user gave to file/archive). +# + my $spritesheet_css = $1.'express_show/spritesheet.min.css'; + if (&Apache::lonnet::repcopy_userfile($spritesheet_css) eq 'ok') { + &Apache::lonxml::extlink($spritesheet_css); + } } elsif ($srctype eq 'PosterImageSrc') { if ($fname =~ m{^(.+)_First_Frame\.png$}) { my $prefix = $1; @@ -189,6 +244,31 @@ sub start_script { } } } + if ($bodytext =~ /\(document,\s*(['"])script\1,\s*\[([^\]]+)\]\);/s) { + my $scriptslist = $2; + my @srcs = split(/\s*,\s*/,$scriptslist); + foreach my $src (@srcs) { + if ($src =~ /(["'])(?:(?!\1).)+\.js\1/) { + my $quote = $1; + my ($fname) = ($src =~ m/\Q$quote\E([^$quote]+)\Q$quote\E/); + my $cleanhref = + &Apache::londefdef::clean_docs_httpref($fname,$url,$cdom,$cnum); + if ($cleanhref) { + &Apache::lonxml::extlink($cleanhref); + } + } + } + } + if ($bodytext =~ m{loadScript\(\s*(['"])((?:(?!\1).)+\.js)\1,\s*function}is) { + my $fname = $2; + if ($fname) { + my $cleanhref = + &Apache::londefdef::clean_docs_httpref($fname,$url,$cdom,$cnum); + if ($cleanhref) { + &Apache::lonxml::extlink($cleanhref); + } + } + } } } }