--- 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);
+ }
+ }
+ }
}
}
}