--- loncom/interface/lonmeta.pm 2006/03/02 20:57:15 1.152 +++ loncom/interface/lonmeta.pm 2006/05/30 12:46:09 1.157 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Metadata display handler # -# $Id: lonmeta.pm,v 1.152 2006/03/02 20:57:15 www Exp $ +# $Id: lonmeta.pm,v 1.157 2006/05/30 12:46:09 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -39,6 +39,8 @@ use Apache::lonpublisher; use Apache::lonlocal; use Apache::lonmysql; use Apache::lonmsg; +use lib '/home/httpd/lib/perl/'; +use LONCAPA; ############################################################ @@ -108,7 +110,7 @@ sub get_dynamic_metadata_from_sql { next if (! $result); my @Data = map { - &Apache::lonnet::unescape($_); + &unescape($_); } split(',',$result); my $url = $Data[0]; for (my $i=0;$i<=$#Fields;$i++) { @@ -296,25 +298,51 @@ sub fieldnames { } sub portfolio_linked_path { - my ($path) = @_; - my $result = &Apache::portfolio::make_anchor('portfolio','/'); + my ($path,$group,$port_path) = @_; + + my $start = 'portfolio'; + if ($group) { + $start = "groups/$group/".$start; + } + my $result = &Apache::portfolio::make_anchor($port_path,$start,'/', + undef,undef,undef,$group); + my $fullpath = '/'; my (undef,@tree) = split('/',$path); my $filename = pop(@tree); foreach my $dir (@tree) { $fullpath .= $dir.'/'; $result .= '/'; - $result .= &Apache::portfolio::make_anchor($dir,$fullpath); + $result .= &Apache::portfolio::make_anchor($port_path,$dir,$fullpath, + undef,undef,undef,$group); } $result .= "/$filename"; return $result; } +sub get_port_path_and_group { + my ($uri)=@_; + + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + + my ($port_path,$group); + if ($uri =~ m{^/editupload/\Q$cdom\E/\Q$cnum\E/groups/}) { + $group = (split('/',$uri))[5]; + $port_path = '/adm/coursegrp_portfolio'; + } else { + $port_path = '/adm/portfolio'; + } + return ($port_path,$group); +} + sub portfolio_display_uri { my ($uri,$as_links)=@_; + + my ($port_path,$group) = &get_port_path_and_group($uri); + $uri =~ s|.*/(portfolio/.*)$|$1|; my ($res_uri,$meta_uri) = ($uri,$uri); - if ($uri =~ /\.meta$/) { $res_uri =~ s/\.meta//; } else { @@ -322,10 +350,9 @@ sub portfolio_display_uri { } my ($path) = ($res_uri =~ m|^portfolio(.*/)[^/]*$|); - if ($as_links) { - $res_uri = &portfolio_linked_path($res_uri); - $meta_uri = &portfolio_linked_path($meta_uri); + $res_uri = &portfolio_linked_path($res_uri,$group,$port_path); + $meta_uri = &portfolio_linked_path($meta_uri,$group,$port_path); } return ($res_uri,$meta_uri,$path); } @@ -350,8 +377,10 @@ sub pre_select_course { &mt('Associate Resource With Selected Course').'">'); $r->print(''); - $r->print('

'. + my ($port_path,$group) = &get_port_path_and_group($uri); + $r->print('

'. ''. + ''. ''. '
'); @@ -486,7 +515,9 @@ sub prettyprint { my @Courses = split(/\s*\,\s*/,$value); my $Str='