--- loncom/interface/londocs.pm 2005/07/26 13:30:34 1.197 +++ loncom/interface/londocs.pm 2005/07/26 16:41:43 1.198 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.197 2005/07/26 13:30:34 raeburn Exp $ +# $Id: londocs.pm,v 1.198 2005/07/26 16:41:43 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -782,16 +782,23 @@ sub replicate_content { $$message = 'Could not determine name of file for '.$symb."
\n"; } if ($repstatus eq 'ok') { - $content_name = $count.'/'.$filename; + $content_name = 'resources/'.$count.'/'.$filename; } return $content_name; } sub extract_media { my ($url,$cdom,$cnum,$content,$count,$tempexport,$href,$message,$caller) = @_; + my ($dirpath,$container); my %allfiles = (); my %codebase = (); - $url =~ s#([^/]+)$##; + if ($url =~ m-(.*/)([^/]+)$-) { + $dirpath = $1; + $container = $2; + } else { + $dirpath = $url; + $container = ''; + } &Apache::lonnet::extract_embedded_items(undef,undef,\%allfiles,\%codebase,$content); foreach my $embed_file (keys(%allfiles)) { my $filename; @@ -809,7 +816,7 @@ sub extract_media { if ($embed_file =~ m-https?://-) { next; # points to url } else { - $embed_url = $url.$embed_file; # points to relative path + $embed_url = $dirpath.$embed_file; # points to relative path } } if ($caller eq 'resource') { @@ -832,7 +839,7 @@ sub extract_media { my $copiedfile; if ($copiedfile = Apache::File->new('>'.$destination)) { print $copiedfile $embed_content; - push @{$href}, .'resources/'.$count.'/res/'.$filename; + push @{$href}, 'resources/'.$count.'/res/'.$filename; my $attrib_regexp = ''; if (@{$allfiles{$embed_file}} > 1) { $attrib_regexp = join('|',@{$allfiles{$embed_file}}); @@ -840,7 +847,7 @@ sub extract_media { $attrib_regexp = $allfiles{$embed_file}[0]; } $$content =~ s#($attrib_regexp\s*=\s*['"]?)\Q$embed_file\E(['"]?)#$1$newname$2#gi; - if ($caller eq 'resource' && $url =~ /\.(problem|library)$/) { + if ($caller eq 'resource' && $container =~ /\.(problem|library)$/) { $$content =~ s#\Q$embed_file\E#$newname#gi; } } @@ -868,9 +875,9 @@ sub store_template { close($storetemplate); } if ($content_type eq 'external') { - return $count.'/'.$content_type.'.html'; + return 'resources/'.$count.'/'.$content_type.'.html'; } else { - return $count.'/'.$content_type.'.xml'; + return 'resources/'.$count.'/'.$content_type.'.xml'; } } }