[LON-CAPA-cvs] cvs: loncom /xml londefdef.pm
www
lon-capa-cvs@mail.lon-capa.org
Thu, 20 Feb 2003 17:07:15 -0000
www Thu Feb 20 12:07:15 2003 EDT
Modified files:
/loncom/xml londefdef.pm
Log:
Attempts to address the following earlier changes:
* switching the parser from HTML to XML mode. Parameters can now be lower-
and uppercase. Switching over to calling lonxml-routine rather than
$token->[2]->{'something'}
* switching of file references from always forcing absolute references
('/res/...') to allow relative URLs ('../stuff.gif')
Probably still a long ways to go to adapt all of this.
Index: loncom/xml/londefdef.pm
diff -u loncom/xml/londefdef.pm:1.118 loncom/xml/londefdef.pm:1.119
--- loncom/xml/londefdef.pm:1.118 Wed Feb 19 09:30:10 2003
+++ loncom/xml/londefdef.pm Thu Feb 20 12:07:14 2003
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Tags Default Definition Module
#
-# $Id: londefdef.pm,v 1.118 2003/02/19 14:30:10 www Exp $
+# $Id: londefdef.pm,v 1.119 2003/02/20 17:07:14 www Exp $
#
#
# Copyright Michigan State University Board of Trustees
@@ -324,7 +324,7 @@
}
#-- <meta> tag
sub start_meta {
- my ($target,$token,$tagstack,$parstack,$parser) = @_;
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
my $currentstring = '';
if ($target eq 'web') {
my $args='';
@@ -336,13 +336,16 @@
}
}
if ($target eq 'meta') {
- unless ($token->[2]->{'http-equiv'}) {
+ unless (&Apache::lonxml::get_param
+ ('http-equiv',$parstack,$safeeval,undef,1)) {
my $name=$token->[2]->{'name'};
$name=~tr/A-Z/a-z/;
- $name=~s/\s/\_/g;
+ $name=~s/\s/\_/gs;
+ $name=~s/\W//gs;
if ($name) {
$currentstring='<'.$name.'>'.
- $token->[2]->{'content'}.
+ &Apache::lonxml::get_param
+ ('content',$parstack,$safeeval,undef,1).
'</'.$name.'>';
}
}
@@ -1673,7 +1676,13 @@
}
} else {
#original image file doesn't exist so check the alt attribute
- my $alt = &Apache::lonxml::get_param('alt',$parstack,$safeeval,undef,1);
+ my $alt =
+ &Apache::lonxml::get_param('alt',$parstack,$safeeval,undef,1);
+ unless ($alt) {
+ $alt=&Apache::lonmeta::alttag
+ ($Apache::lonxml::pwd[-1],$src);
+ }
+
if ($alt) {
$currentstring .= ' '.$alt.' ';
} else {
@@ -1683,6 +1692,7 @@
}
return $currentstring;
}
+
sub end_img {
my ($target,$token) = @_;
my $currentstring = '';
@@ -1696,20 +1706,26 @@
#-- <applet> tag
sub start_applet {
- my ($target,$token) = @_;
- $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
- $token->[2]->{'code'};
- $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
- $token->[2]->{'archive'};
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
+
+ my $code=&Apache::lonxml::get_param
+ ('code',$parstack,$safeeval,undef,1);
+ $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$code;
+
+ my $archive=&Apache::lonxml::get_param
+ ('archive',$parstack,$safeeval,undef,1);
+ $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$archive;
+
my $currentstring = '';
if ($target eq 'web') {
if ($ENV{'browser.appletsuppress'} ne 'on') {
$currentstring = $token->[4];
} else {
- my $alttag=$token->[2]->{'alt'};
+ my $alttag= &Apache::lonxml::get_param
+ ('alt',$parstack,$safeeval,undef,1);
unless ($alttag) {
- $alttag=&Apache::lonmeta::alttag($ENV{'REQUEST_URI'},
- $token->[2]->{'code'});
+ $alttag=&Apache::lonmeta::alttag($Apache::lonxml::pwd[-1],
+ $code);
}
$currentstring='[APPLET: '.$alttag.']';
}
@@ -1718,6 +1734,7 @@
}
return $currentstring;
}
+
sub end_applet {
my ($target,$token) = @_;
my $currentstring = '';
@@ -1732,18 +1749,18 @@
#-- <embed> tag
sub start_embed {
- my ($target,$token) = @_;
- $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
- $token->[2]->{'src'};
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
+ my $src=&Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
+ $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src;
my $currentstring = '';
if ($target eq 'web') {
if ($ENV{'browser.embedsuppress'} ne 'on') {
$currentstring = $token->[4];
} else {
- my $alttag=$token->[2]->{'alt'};
+ my $alttag=&Apache::lonxml::get_param
+ ('alt',$parstack,$safeeval,undef,1);
unless ($alttag) {
- $alttag=&Apache::lonmeta::alttag($ENV{'REQUEST_URI'},
- $token->[2]->{'src'});
+ $alttag=&Apache::lonmeta::alttag($Apache::lonxml::pwd[-1],$src);
}
$currentstring='[EMBED: '.$alttag.']';
}
@@ -1752,6 +1769,7 @@
}
return $currentstring;
}
+
sub end_embed {
my ($target,$token) = @_;
my $currentstring = '';
@@ -1766,13 +1784,16 @@
#-- <param> tag
sub start_param {
- my ($target,$token) = @_;
- if ($token->[2]->{'name'} eq 'cabbase') {
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
+ if (&Apache::lonxml::get_param
+ ('name',$parstack,$safeeval,undef,1)=~/^cabbase$/i) {
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
- $token->[2]->{'value'};
+ &Apache::lonxml::get_param
+ ('value',$parstack,$safeeval,undef,1);
}
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
- $token->[2]->{'src'};
+ &Apache::lonxml::get_param
+ ('src',$parstack,$safeeval,undef,1);
my $currentstring = '';
if ($target eq 'web') {
$currentstring = $token->[4];
@@ -1794,10 +1815,9 @@
#-- <allow> tag
sub start_allow {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
- $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
- $token->[2]->{'src'};
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
+ $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src;
&image_replication($src);
my $result;
if ($target eq 'edit') {