tag
+sub start_style {
+ my ($target, $token, $tagstack, $parstack, $parser, $safeeval, $style) = @_;
+ my $currentstring = '';
+
+ if ($target eq 'tex') {
+ Apache::lonxml::startredirection();
+ } else {
+ $currentstring = $token->[4];
+ }
+
+ return $currentstring;
+}
+
+sub end_style {
+ my ($target, $token, $tagstack, $parstack, $parser, $safeeval) = @_;
+ my $currentstring = '';
+
+ if ($target eq 'tex') {
+ Apache::lonxml::endredirection();
+ } else {
+ $currentstring = $token->[2];
+ }
+ return $currentstring;
+}
+
# accessrule
sub start_accessrule {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_;
@@ -574,7 +599,7 @@ sub start_body {
$header=&Apache::lonmenu::constspaceform();
}
if ($env{'request.state'} ne 'published') {
- $header.=&Apache::londefdef::edit_controls();
+ $header.=&edit_controls();
}
if ($env{'request.state'} eq 'construct') {
$currentstring.=&Apache::loncommon::head_subbox(
@@ -606,12 +631,29 @@ sub edit_controls {
$result .= '
';
if (($env{'request.course.id'}) && ($env{'form.forceedit'})) {
- my $viewtext = &mt('Course View');
- if (&Apache::loncommon::course_type() eq 'Community') {
- $viewtext = &mt('Community View');
+ my $url=&Apache::lonnet::hreflocation('',$env{'request.filename'});
+ if ($url =~ /\.html?$/i) {
+ if ($env{'request.course.id'}) {
+ if ($env{'request.filename'} =~ m{/userfiles/supplemental/default|\d+/}) {
+ if (&Apache::lonnet::is_course_upload($env{'request.filename'},
+ $env{'course.'.$env{'request.course.id'}.'.num'},
+ $env{'course.'.$env{'request.course.id'}.'.domain'})) {
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+ ['folderpath','title']);
+ }
+ }
+ }
+ my ($symb,$itemtitle,$displayfile) =
+ &Apache::lonxml::get_courseupload_hierarchy($url,
+ $env{'form.folderpath'},
+ $env{'form.title'});
+ if (($symb ne '') || ($env{'httpref.'.$url} ne '')) {
+ $result .= (' ' x 3).
+ &Apache::lonhtmlcommon::dependencies_button()."\n".
+ &Apache::lonhtmlcommon::dependencycheck_js($symb,
+ $itemtitle,$url,$env{'form.folderpath'},$url)."\n";
+ }
}
- $result .= (' ' x 3).'';
}
$result .= '
@@ -2972,22 +3014,47 @@ sub end_embed {
#-- tag (end tag forbidden)
sub start_param {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
- if (&Apache::lonxml::get_param('name',$parstack,
- $safeeval,undef,1)=~/^cabbase$/i) {
+ my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval,
+ undef,1);
+ if ($name =~/^cabbase$/i) {
my $value=&Apache::lonxml::get_param('value',$parstack,
$safeeval,undef,1);
&Apache::lonxml::extlink($value);
- }
-
+ } elsif ($name eq 'flashvars') {
+ if (lc(&Apache::lonxml::get_param('type',$parstack,$safeeval,-2,1))
+ eq 'application/x-shockwave-flash') {
+ my $launcher =
+ &Apache::lonxml::get_param('data',$parstack,$safeeval,-2,1);
+ if ($launcher) {
+ &Apache::lonxml::extlink($launcher);
+ }
+ my $flashvars=&Apache::lonxml::get_param('value',$parstack,
+ $safeeval,undef,1);
+ if ($flashvars ne '') {
+ foreach my $item (split(/\&/,$flashvars)) {
+ my ($key,$value)=split(/=/,$item,2);
+ if ($key eq 'content') {
+ if ($value ne '') {
+ my ($dir) = ($launcher =~ m{(.+/)[^/]+$});
+ &Apache::lonxml::extlink($dir.$value);
+ }
+ } elsif ($key eq 'thumb') {
+ if ($value ne '') {
+ &Apache::lonxml::extlink($value);
+ }
+ }
+ }
+ }
+ }
+ }
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
- &Apache::lonxml::extlink($src);
+ if ($src ne '') {
+ &Apache::lonxml::extlink($src);
+ }
my $currentstring = '';
if ($target eq 'web' || $target eq 'webgrade') {
my %toconvert;
- my $src=&Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
if ($src) { $toconvert{'src'}= $src; }
- my $name=&Apache::lonxml::get_param('name',$parstack,$safeeval,
- undef,1);
if ($name=~/^cabbase$/i) {
$toconvert{'value'}=&Apache::lonxml::get_param('value',$parstack,
$safeeval,undef,1);