--- loncom/xml/londefdef.pm 2007/04/06 10:41:45 1.364
+++ loncom/xml/londefdef.pm 2007/06/22 00:11:32 1.369
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Tags Default Definition Module
#
-# $Id: londefdef.pm,v 1.364 2007/04/06 10:41:45 foxr Exp $
+# $Id: londefdef.pm,v 1.369 2007/06/22 00:11:32 albertel Exp $
#
#
# Copyright Michigan State University Board of Trustees
@@ -481,13 +481,21 @@ sub start_accessrule {
('realm',$parstack,$safeeval,undef,1);
my $role=&Apache::lonxml::get_param
('role',$parstack,$safeeval,undef,1);
- $realm=~s/\s+//g;
- $realm=~s/\//\_/g;
- $realm=~s/^\_//;
- $realm=~s/\W/\;/g;
- $role=~s/\s+//g;
- $role=~s/\//\_/g;
- $role=~s/\W/\;/g;
+ my ($dom,$crs,$sec)=split(/\_/,$realm);
+ $dom = &LONCAPA::clean_domain($dom);
+ my $type=&Apache::lonxml::get_param
+ ('type',$parstack,$safeeval,undef,1);
+ if ($type eq 'user') {
+ $crs = &LONCAPA::clean_username($crs);
+ } else {
+ $crs = &LONCAPA::clean_courseid($crs);
+ }
+ $sec =~s/\W//;
+ $realm = $dom;
+ if ($crs =~ /\S/) { $realm .= '_'.$crs; }
+ if ($sec =~ /\S/) { $realm .= '_'.$sec; }
+ $role=~s/\W//g;
+
if ($target eq 'web') {
my $args='';
if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; }
@@ -498,7 +506,7 @@ sub start_accessrule {
}
}
if ($target eq 'meta') {
- $currentstring=''.$eff.':'.$realm.':'.$role.'';
+ $currentstring=''.$eff.':'.$realm.':'.$role.':'.$type.'';
}
return $currentstring;
}
@@ -516,6 +524,17 @@ sub end_accessrule {
return $currentstring;
}
+sub generate_css_links {
+ my $links;
+ my $css_href = &Apache::lonnet::EXT('resource.0.cssfile');
+ if ($css_href =~ /\S/) {
+ &Apache::lonxml::extlink($css_href);
+ $links .=
+ '';
+ }
+ return $links;
+}
+
#--
tag (end tag required)
sub start_body {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
@@ -530,9 +549,13 @@ sub start_body {
if (&is_inside_of($tagstack, "head")) {
&end_head(@_);
}
+
+ my $extra_head = &generate_css_links();
+
$currentstring =
&Apache::loncommon::start_page($Apache::londefdef::title,
- $Apache::londefdef::head,
+ $Apache::londefdef::head
+ .$extra_head,
{'add_entries' => $token->[2],
'no_title' => 1,
'force_register' => 1});
@@ -1609,7 +1632,11 @@ sub end_a {
&Apache::lonxml::get_param('name',$parstack,$safeeval,undef,1);
if ($href =~ /\S/) {
$href =~ s/([^\\])%/$1\\\%/g;
- $currentstring .= ' ({\tt URI:'.&Apache::lonxml::latex_special_symbols($href).'})';
+ # Substitute special symbols... and allow line breaks at each /
+ #
+ $href = &Apache::lonxml::latex_special_symbols($href);
+ $href =~ s/\//\/\\-/g; # Map / to /\- to allow hyphenation.
+ $currentstring .= ' ({\tt URI:'.$href.'})';
} elsif ($name =~ /\S/) {
$currentstring .= ' ({\tt Anchor:'.&Apache::lonxml::latex_special_symbols($name).'})';
} else {
@@ -2982,9 +3009,10 @@ sub start_img {
# And here's where the semi-quote breaks down: allow the user
# to edit the beast as well by rendering the problem for edit:
} elsif ($target eq 'edit') {
+ my $only = join(',',&Apache::loncommon::filecategorytypes('Pictures'));
$currentstring .=&Apache::edit::tag_start($target,$token);
$currentstring .=&Apache::edit::text_arg('Image Url:','src',$token,70).
- &Apache::edit::browse('src',undef,'alt').' '.
+ &Apache::edit::browse('src',undef,'alt',$only).' '.
&Apache::edit::search('src',undef,'alt').'
';
$currentstring .=&Apache::edit::text_arg('Description:','alt',$token,70).'
';
$currentstring .=&Apache::edit::text_arg('width (pixel):','width',$token,5);