--- loncom/interface/lonmeta.pm 2005/12/19 21:33:54 1.145 +++ loncom/interface/lonmeta.pm 2005/12/19 21:49:12 1.146 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Metadata display handler # -# $Id: lonmeta.pm,v 1.145 2005/12/19 21:33:54 albertel Exp $ +# $Id: lonmeta.pm,v 1.146 2005/12/19 21:49:12 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -290,8 +290,21 @@ sub fieldnames { return &Apache::lonlocal::texthash(%fields); } +sub portfolio_linked_path { + my ($path) = @_; + my $result = &Apache::portfolio::make_anchor('portfolio','/'); + my $fullpath = '/'; + my (undef,@tree) = split('/',$path); + foreach my $dir (@tree) { + $fullpath .= $dir.'/'; + $result .= '/'; + $result .= &Apache::portfolio::make_anchor($dir,$fullpath); + } + return $result; +} + sub portfolio_display_uri { - my ($uri)=@_; + my ($uri,$as_links)=@_; $uri =~ s|.*/(portfolio/.*)$|$1|; my ($res_uri,$meta_uri) = ($uri,$uri); @@ -300,9 +313,13 @@ sub portfolio_display_uri { } else { $meta_uri .= '.meta'; } - + my ($path) = ($res_uri =~ m|(.*)/[^/]*$|); - + + if ($as_links) { + $res_uri = &portfolio_linked_path($res_uri); + $meta_uri = &portfolio_linked_path($meta_uri); + } return ($res_uri,$meta_uri,$path); } @@ -337,7 +354,7 @@ sub select_course { my %courses; my $output; my $selected; - foreach my $key (keys (%env)) { + foreach my $key (keys(%env)) { if ($key =~ m/\.metadata\./) { $key =~ m/^course\.(.+)(\.metadata.+$)/; my $course = $1; @@ -346,7 +363,6 @@ sub select_course { $courses{$coursekey} = $value; } } - &Apache::lonnet::logthis('the restricted is'.$Apache::lonpublisher::metadatafields{'courserestricted'}); my $meta_not_found = 1; if ($Apache::lonpublisher::metadatafields{'courserestricted'} eq 'none') { $selected = ' SELECTED '; @@ -1054,7 +1070,7 @@ sub present_editable_metadata { $disuri=~s/\.meta$//; my $meta_uri = $disuri; if ($disuri =~ m|/portfolio/|) { - ($disuri, $meta_uri) = &portfolio_display_uri($disuri); + ($disuri, $meta_uri) = &portfolio_display_uri($disuri,1); } my $target=$uri; $target=~s/^\/\~/\/res\/$env{'request.role.domain'}\//; @@ -1208,7 +1224,6 @@ ENDEDIT '<>&"'). ''; } - &Apache::lonnet::logthis(" file ".$file_content); if ($fn =~ m|/portfolio/|) { my ($path, $new_fn) = ($fn =~ m|/(portfolio.*)/([^/]*)$|); $env{'form.'.$formname}=$file_content."\n";