version 1.92, 2002/10/08 20:09:17
|
version 1.120, 2003/02/28 21:06:42
|
Line 44
|
Line 44
|
|
|
package Apache::londefdef; |
package Apache::londefdef; |
|
|
use Apache::lonnet; |
use Apache::lonnet(); |
use strict; |
use strict; |
use Apache::lonxml; |
use Apache::lonxml(); |
use Apache::File(); |
use Apache::File(); |
use Image::Magick; |
use Image::Magick; |
|
use Apache::lonmenu(); |
|
use Apache::lonmeta(); |
|
|
BEGIN { |
BEGIN { |
|
|
&Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','address','allow','applet','area','b','base','basefont','bgo','bgsound','big','blink','blockquote','blankspace','body','br','button','caption','center','cite','code','col','colgroup','dd','del','dfn','dir','div','dl','dt','em','embed','externallink','fieldset','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','i','iframe','img','input','ins','insert','isindex','kbd','keygen','label','layer','legend','li','link','m','map','marquee','menu','meta','multicol','nobr','noembed','noframes','nolayer','noscript','object','ol','optgroup','option','output','p','param','pre','q','s','samp','select','server','small','spacer','span','strike','strong','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','u','ul','var','wbr')); |
&Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','address','allow','applet','area','b','base','basefont','bgo','bgsound','big','blink','blockquote','blankspace','body','br','button','caption','center','cite','code','col','colgroup','dd','del','dfn','dir','div','dl','dt','em','embed','externallink','fieldset','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','i','iframe','img','input','ins','insert','isindex','kbd','keygen','label','layer','legend','li','link','m','map','marquee','menu','meta','multicol','nobr','noembed','noframes','nolayer','noscript','object','ol','optgroup','option','output','p','param','pre','q','s','samp','select','server','small','spacer','span','strike','strong','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','tthoption','u','ul','var','wbr')); |
|
|
} |
} |
|
|
Line 108 sub end_m {
|
Line 110 sub end_m {
|
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
|
sub start_tthoption { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
|
my $result; |
|
if ($target eq 'web') { |
|
my $inside = &Apache::lonxml::get_all_text("/tthoption",$parser); |
|
$inside=~s/^\s*//; |
|
if ($ENV{'browser.mathml'}) { |
|
&tth::ttmoptions($inside); |
|
} else { |
|
&tth::tthoptions($inside); |
|
} |
|
} |
|
return $result; |
|
} |
|
|
|
sub end_tthoption { |
|
my ($target,$token) = @_; |
|
my $result; |
|
return $result; |
|
} |
|
|
#-- <html> tag |
#-- <html> tag |
sub start_html { |
sub start_html { |
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($ENV{'browser.mathml'}) { |
if ($ENV{'browser.mathml'}) { |
&tth::ttminit(); |
&tth::ttminit(); |
} else { |
if ($ENV{'browser.unicode'}) { |
&tth::tthinit(); |
&tth::ttmoptions('-L -u1'); |
} |
} else { |
if ($target eq 'web') { |
&tth::ttmoptions('-L -u0'); |
$currentstring = &Apache::lonxml::xmlbegin(). |
|
&Apache::lonxml::fontsettings(); |
|
} elsif ($target eq 'tex') { |
|
@Apache::londefdef::table = (); |
|
$currentstring .= '\documentclass[letterpaper]{article} |
|
\newcommand{\keephidden}[1]{} |
|
\renewcommand{\deg}{$^{\circ}$} |
|
\usepackage[dvips]{graphicx} |
|
\usepackage{epsfig}\usepackage{calc} |
|
\newenvironment{choicelist}{\begin{enumerate}}{\end{enumerate}}'; |
|
} |
|
return $currentstring; |
|
} |
} |
|
} else { |
|
&tth::tthinit(); |
|
if ($ENV{'browser.unicode'}) { |
|
&tth::tthoptions('-L -u1'); |
|
} else { |
|
&tth::tthoptions('-L -u0'); |
|
} |
|
} |
|
if ($target eq 'web') { |
|
$currentstring = &Apache::lonxml::xmlbegin(). |
|
&Apache::lonxml::fontsettings(); |
|
} elsif ($target eq 'tex') { |
|
@Apache::londefdef::table = (); |
|
$currentstring .= '\documentclass[letterpaper]{article} |
|
\newcommand{\keephidden}[1]{} |
|
\renewcommand{\deg}{$^{\circ}$} |
|
\usepackage{textcomp} |
|
\usepackage[dvips]{graphicx} |
|
\usepackage{epsfig}\usepackage{calc} |
|
\newenvironment{choicelist}{\begin{list}{}{\setlength{\rightmargin}{0in}\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.05in}\setlength{\itemsep}{0.022in}\setlength{\parsep}{0in}\setlength{\belowdisplayskip}{0.04in}\setlength{\abovedisplayskip}{0.05in}\setlength{\abovedisplayshortskip}{-0.04in}\setlength{\belowdisplayshortskip}{0.04in}}}{\end{list}}'; |
|
} |
|
return $currentstring; |
|
} |
sub end_html { |
sub end_html { |
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
Line 152 sub end_m {
|
Line 187 sub end_m {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = &Apache::lonxml::registerurl(undef,$target). |
$currentstring = &Apache::lonmenu::registerurl(undef,$target). |
$token->[2]; |
$token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
Line 290 sub end_m {
|
Line 325 sub end_m {
|
} |
} |
#-- <meta> tag |
#-- <meta> tag |
sub start_meta { |
sub start_meta { |
my ($target,$token,$tagstack,$parstack,$parser) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
my $args=''; |
my $args=''; |
if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } |
if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } |
if ($args eq '') { |
if ($args eq '') { |
&Apache::lonxml::get_all_text("/meta",$$parser[$#$parser]); |
&Apache::lonxml::get_all_text("/meta",$parser); |
} else { |
} else { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
} |
} |
if ($target eq 'meta') { |
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'}; |
my $name=$token->[2]->{'name'}; |
$name=~tr/A-Z/a-z/; |
$name=~tr/A-Z/a-z/; |
$name=~s/\s/\_/g; |
$name=~s/\s/\_/gs; |
|
$name=~s/\W//gs; |
if ($name) { |
if ($name) { |
$currentstring='<'.$name.'>'. |
$currentstring='<'.$name.'>'. |
$token->[2]->{'content'}. |
&Apache::lonxml::get_param |
|
('content',$parstack,$safeeval,undef,1). |
'</'.$name.'>'; |
'</'.$name.'>'; |
} |
} |
} |
} |
Line 334 sub end_m {
|
Line 372 sub end_m {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
if (!$Apache::lonxml::registered) { |
if (!$Apache::lonxml::registered) { |
$currentstring.='<head>'. |
$currentstring.='<head>'. |
&Apache::lonxml::registerurl(undef,$target).'</head>'; |
&Apache::lonmenu::registerurl(undef,$target).'</head>'; |
} |
} |
my $onLoad=''; |
my $onLoad=''; |
foreach my $key (keys(%{$token->[2]})) { |
foreach my $key (keys(%{$token->[2]})) { |
Line 343 sub end_m {
|
Line 381 sub end_m {
|
delete($token->[2]->{$key}); |
delete($token->[2]->{$key}); |
} |
} |
} |
} |
$token->[2]->{'onLoad'}=&Apache::lonxml::loadevents(). |
$token->[2]->{'onload'}=&Apache::lonmenu::loadevents(). |
';'.$onLoad; |
';'.$onLoad; |
my $onUnload=''; |
my $onUnload=''; |
foreach my $key (keys(%{$token->[2]})) { |
foreach my $key (keys(%{$token->[2]})) { |
Line 352 sub end_m {
|
Line 390 sub end_m {
|
delete($token->[2]->{$key}); |
delete($token->[2]->{$key}); |
} |
} |
} |
} |
$token->[2]->{'onUnload'}=&Apache::lonxml::unloadevents(). |
$token->[2]->{'onunload'}=&Apache::lonmenu::unloadevents(). |
';'.$onUnload; |
';'.$onUnload; |
|
|
$currentstring .= '<'.$token->[1]; |
$currentstring .= '<'.$token->[1]; |
Line 366 sub end_m {
|
Line 404 sub end_m {
|
<input type="submit" name="editmode" value="Edit" /> |
<input type="submit" name="editmode" value="Edit" /> |
</form> |
</form> |
EDITBUTTON |
EDITBUTTON |
} |
} else { |
|
$currentstring.=&Apache::lonmenu::menubuttons(undef,$target,1); |
|
} |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring = '\begin{document}'; |
$currentstring = '\begin{document}'; |
} |
} |
Line 845 EDITBUTTON
|
Line 885 EDITBUTTON
|
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
if ($$tagstack[-2] ne 'sub' && $$tagstack[-2] ne 'sup') { |
if ($$tagstack[-2] ne 'sub' && $$tagstack[-2] ne 'sup') { |
$currentstring .= '\vskip 0 mm'; |
$currentstring .= '\vskip 0.2 mm'; |
} |
} |
} elsif ($target eq 'latexsource') { |
} elsif ($target eq 'latexsource') { |
$currentstring .= '\\'; |
$currentstring .= '\\'; |
Line 955 EDITBUTTON
|
Line 995 EDITBUTTON
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '\underline{'; |
&Apache::lonxml::startredirection(); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 965 EDITBUTTON
|
Line 1005 EDITBUTTON
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}'; |
$currentstring=&Apache::lonxml::endredirection(); |
|
$currentstring=~s/(\S)(\s+)(\S)/$1}$2\\underline{$3/g; |
|
$currentstring=~s/^\s*(\S)/\\underline{$1/; |
|
$currentstring=~s/(\S)\s*$/$1}/; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 976 EDITBUTTON
|
Line 1019 EDITBUTTON
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '\underline{'; |
&Apache::lonxml::startredirection(); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 986 EDITBUTTON
|
Line 1029 EDITBUTTON
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}'; |
$currentstring=&Apache::lonxml::endredirection(); |
|
$currentstring=~s/(\S)(\s+)(\S)/$1}$2\\underline{$3/g; |
|
$currentstring=~s/^\s*(\S)/\\underline{$1/; |
|
$currentstring=~s/(\S)\s*$/$1}/; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1132 EDITBUTTON
|
Line 1178 EDITBUTTON
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '\underline{'; |
&Apache::lonxml::startredirection(); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1142 EDITBUTTON
|
Line 1188 EDITBUTTON
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}'; |
$currentstring=&Apache::lonxml::endredirection(); |
|
$currentstring=~s/(\S)(\s+)(\S)/$1}$2\\underline{$3/g; |
|
$currentstring=~s/^\s*(\S)/\\underline{$1/; |
|
$currentstring=~s/(\S)\s*$/$1}/; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1300 sub start_table {
|
Line 1349 sub start_table {
|
push @Apache::londefdef::table, $aa; |
push @Apache::londefdef::table, $aa; |
$Apache::londefdef::table[-1]{'row_number'} = -1; |
$Apache::londefdef::table[-1]{'row_number'} = -1; |
$Apache::londefdef::table[-1]{'output'} = ' \noindent \begin{tabular} '; |
$Apache::londefdef::table[-1]{'output'} = ' \noindent \begin{tabular} '; |
my $border = &Apache::lonxml::get_param('border',$parstack,$safeeval); |
my $border = &Apache::lonxml::get_param('border',$parstack,$safeeval,undef,1); |
unless (defined $border) { $border = 0; } |
unless (defined $border) { $border = 0; } |
if ($border) { |
if ($border) { |
$Apache::londefdef::table[-1]{'hinc'} = '\hline '; |
$Apache::londefdef::table[-1]{'hinc'} = '\hline '; |
Line 1314 sub start_table {
|
Line 1363 sub start_table {
|
my $width; |
my $width; |
foreach my $key (keys(%{$token->[2]})) { |
foreach my $key (keys(%{$token->[2]})) { |
if ($key =~ /^width$/i) { |
if ($key =~ /^width$/i) { |
$width = &Apache::lonxml::get_param($key,$parstack,$safeeval); |
$width = &Apache::lonxml::get_param($key,$parstack,$safeeval,undef,1); |
} |
} |
} |
} |
if (defined($width)) { $Apache::londefdef::table[-1]{'width'}=$width; } |
if (defined($width)) { $Apache::londefdef::table[-1]{'width'}=$width; } |
Line 1412 sub start_table {
|
Line 1461 sub start_table {
|
if ($signature) { |
if ($signature) { |
my $NumberEmptyLength = $how_many_columns - $filled_columns; |
my $NumberEmptyLength = $how_many_columns - $filled_columns; |
my $SpacePerColumn = '(\textwidth '.$available_space.')/'.$NumberEmptyLength; |
my $SpacePerColumn = '(\textwidth '.$available_space.')/'.$NumberEmptyLength; |
$output =~ s/\$SpacePerColumn/$SpacePerColumn/g; |
my $shorthand = ($filled_columns+1)*4; |
|
$output =~ s/\$SpacePerColumn/$SpacePerColumn - $shorthand mm/g; |
} |
} |
|
if ($how_many_columns==1) { #start of block with width correction for one column table |
|
$output=~s/^\s*\\parbox{([^}]*)}/\\parbox{\\textwidth - 1 cm}/; |
|
} #end of block with width correction for one column table |
$Apache::londefdef::table[-1]{'output'} .= $header_of_table.$output.$Apache::londefdef::table[-1]{'hinc'}.'\end{tabular}\vskip 0 mm '; |
$Apache::londefdef::table[-1]{'output'} .= $header_of_table.$output.$Apache::londefdef::table[-1]{'hinc'}.'\end{tabular}\vskip 0 mm '; |
if ($#Apache::londefdef::table > 0) { |
if ($#Apache::londefdef::table > 0) { |
$inmemory = $Apache::londefdef::table[-1]{'output'}; |
$inmemory = $Apache::londefdef::table[-1]{'output'}; |
Line 1438 sub start_table {
|
Line 1491 sub start_table {
|
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$Apache::londefdef::table[-1]{'row_number'}++; |
$Apache::londefdef::table[-1]{'row_number'}++; |
my $alignchar = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval),0,1); |
my $alignchar = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1),0,1); |
if ($alignchar ne '') { |
if ($alignchar ne '') { |
push @ {$Apache::londefdef::table[-1]{'rows'} }, $alignchar; |
push @ {$Apache::londefdef::table[-1]{'rows'} }, $alignchar; |
} else { |
} else { |
Line 1467 sub start_table {
|
Line 1520 sub start_table {
|
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $what_to_push = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval),0,1); |
my $what_to_push = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1),0,1); |
if ($what_to_push eq '') { |
if ($what_to_push eq '') { |
$what_to_push = substr($Apache::londefdef::table[-1]{'rows'}[0],0,1);; |
$what_to_push = substr($Apache::londefdef::table[-1]{'rows'}[0],0,1);; |
} |
} |
push @{ $Apache::londefdef::table[-1]{'columns'} }, $what_to_push; |
push @{ $Apache::londefdef::table[-1]{'columns'} }, $what_to_push; |
$Apache::londefdef::table[-1]{'counter_columns'}++; |
$Apache::londefdef::table[-1]{'counter_columns'}++; |
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
; |
|
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1494 sub start_table {
|
Line 1546 sub start_table {
|
} else { |
} else { |
if (length($data)<5) { |
if (length($data)<5) { |
$Apache::londefdef::table[-1]{'length'} .= '0 mm,'; |
$Apache::londefdef::table[-1]{'length'} .= '0 mm,'; |
$tempolen = '5 mm'; |
$tempolen = '6 mm'; |
} else { |
} else { |
$Apache::londefdef::table[-1]{'length'} .= '0 mm,'; |
$Apache::londefdef::table[-1]{'length'} .= '0 mm,'; |
$tempolen = 'TOBECHANGEDONNUMBER'; |
$tempolen = 'TOBECHANGEDONNUMBER'; |
Line 1511 sub start_table {
|
Line 1563 sub start_table {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $what_to_push = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval),0,1); |
my $what_to_push = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1),0,1); |
if ($what_to_push eq '') { |
if ($what_to_push eq '') { |
$what_to_push = substr($Apache::londefdef::table[-1]{'rows'}[0],0,1);; |
$what_to_push = substr($Apache::londefdef::table[-1]{'rows'}[0],0,1);; |
} |
} |
Line 1542 sub start_table {
|
Line 1594 sub start_table {
|
#-- <img> tag |
#-- <img> tag |
sub start_img { |
sub start_img { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval, |
$token->[2]->{'src'}; |
undef,1); |
|
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src; |
my $currentstring = ''; |
my $currentstring = ''; |
my $width_param = ''; |
my $width_param = ''; |
my $height_param = ''; |
my $height_param = ''; |
my $scaling = .3; |
my $scaling = .3; |
|
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
if ($ENV{'browser.imagesuppress'} ne 'on') { |
|
$currentstring = $token->[4]; |
|
} else { |
|
my $alttag= &Apache::lonxml::get_param |
|
('alt',$parstack,$safeeval,undef,1); |
|
unless ($alttag) { |
|
$alttag=&Apache::lonmeta::alttag |
|
($Apache::lonxml::pwd[-1],$src); |
|
} |
|
$currentstring='[IMAGE: '.$alttag.']'; |
|
} |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval); |
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
&image_replication($src); |
#if original gif/jpg file exist do following: |
|
|
#if original gif/jpg/png file exist do following: |
if (-e $src) { |
if (-e $src) { |
#defines the default size of image |
#defines the default size of image |
my $image = Image::Magick->new; |
my $image = Image::Magick->new; |
Line 1563 sub start_table {
|
Line 1627 sub start_table {
|
$height_param = $image->Get('height') * $scaling;; |
$height_param = $image->Get('height') * $scaling;; |
undef $image; |
undef $image; |
#do we have any specified size of the picture? |
#do we have any specified size of the picture? |
my $TeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval); |
my $TeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval); |
my $TeXheight = &Apache::lonxml::get_param('TeXheight',$parstack,$safeeval); |
my $TeXheight = &Apache::lonxml::get_param('TeXheight',$parstack,$safeeval); |
my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval); |
my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval, |
|
undef,1); |
if ($TeXwidth ne '') { |
if ($TeXwidth ne '') { |
if ($TeXwidth=~/(\d+)\s*\%/) { |
if ($TeXwidth=~/(\d+)\s*\%/) { |
$width_param = $1*$ENV{'form.textwidth'}/100; |
$width_param = $1*$ENV{'form.textwidth'}/100; |
Line 1584 sub start_table {
|
Line 1649 sub start_table {
|
$path = $1.'/'; |
$path = $1.'/'; |
} |
} |
my $newsrc = $src; |
my $newsrc = $src; |
$newsrc =~ s/(\.gif|\.jpg)$/\.eps/i; |
$newsrc =~ s/\.(gif|jpg|png)$/.eps/i; |
$file=~s/(\.gif|\.jpg)$/\.eps/i; |
$file=~s/\.(gif|jpg|png)$/.eps/i; |
#where can we find the picture? |
#where can we find the picture? |
if (-e $newsrc) { |
if (-e $newsrc) { |
#eps counterpart for image exist |
#eps counterpart for image exist |
if ($path) { |
if ($path) { |
$currentstring .= '\noindent\graphicspath{{'.$path.'}}\fbox{\includegraphics[width='.$width_param.' mm]{'.$file.'}} '; |
$currentstring .= '\vskip 1 mm \noindent\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; |
} |
} |
} else { |
} else { |
#there is no eps counterpart for image - check for ps one |
#there is no eps counterpart for image - check for ps one |
Line 1599 sub start_table {
|
Line 1664 sub start_table {
|
#ps counterpart for image exist |
#ps counterpart for image exist |
$file =~ s/\.eps$/\.ps/; |
$file =~ s/\.eps$/\.ps/; |
if ($path) { |
if ($path) { |
$currentstring .= '\noindent\graphicspath{{'.$path.'}}\fbox{\includegraphics[width='.$width_param.' mm]{'.$file.'}} '; |
$currentstring .= '\vskip 1 mm \noindent\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; |
} |
} |
} else { |
} else { |
#there aren't eps or ps - so create eps |
#there aren't eps or ps - so create eps |
Line 1607 sub start_table {
|
Line 1672 sub start_table {
|
my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat"; |
my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat"; |
$temp_file = Apache::File->new('>>'.$filename); |
$temp_file = Apache::File->new('>>'.$filename); |
print $temp_file "$src\n"; |
print $temp_file "$src\n"; |
$currentstring .= '\graphicspath{{/home/httpd/prtspool/}}\fbox{\includegraphics[width='.$width_param.' mm]{'.$file.'}} '; |
$currentstring .= '\vskip 1 mm \graphicspath{{/home/httpd/prtspool/}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; |
} |
} |
} |
} |
} else { |
} else { |
#original image file doesn't exist so check the alt attribute |
#original image file doesn't exist so check the alt attribute |
my $alt = &Apache::lonxml::get_param('alt',$parstack,$safeeval); |
my $alt = |
|
&Apache::lonxml::get_param('alt',$parstack,$safeeval,undef,1); |
|
unless ($alt) { |
|
$alt=&Apache::lonmeta::alttag |
|
($Apache::lonxml::pwd[-1],$src); |
|
} |
|
|
if ($alt) { |
if ($alt) { |
$currentstring .= ' '.$alt.' '; |
$currentstring .= ' '.$alt.' '; |
} else { |
} else { |
Line 1622 sub start_table {
|
Line 1693 sub start_table {
|
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
sub end_img { |
sub end_img { |
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
Line 1635 sub start_table {
|
Line 1707 sub start_table {
|
#-- <applet> tag |
#-- <applet> tag |
|
|
sub start_applet { |
sub start_applet { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
|
$token->[2]->{'code'}; |
my $code=&Apache::lonxml::get_param |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
('code',$parstack,$safeeval,undef,1); |
$token->[2]->{'archive'}; |
$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 = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
if ($ENV{'browser.appletsuppress'} ne 'on') { |
|
$currentstring = $token->[4]; |
|
} else { |
|
my $alttag= &Apache::lonxml::get_param |
|
('alt',$parstack,$safeeval,undef,1); |
|
unless ($alttag) { |
|
$alttag=&Apache::lonmeta::alttag($Apache::lonxml::pwd[-1], |
|
$code); |
|
} |
|
$currentstring='[APPLET: '.$alttag.']'; |
|
} |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring = " \\begin{figure} "; |
$currentstring = " \\begin{figure} "; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
sub end_applet { |
sub end_applet { |
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
Line 1662 sub end_applet {
|
Line 1750 sub end_applet {
|
#-- <embed> tag |
#-- <embed> tag |
|
|
sub start_embed { |
sub start_embed { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
my $src=&Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1); |
$token->[2]->{'src'}; |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
if ($ENV{'browser.embedsuppress'} ne 'on') { |
|
$currentstring = $token->[4]; |
|
} else { |
|
my $alttag=&Apache::lonxml::get_param |
|
('alt',$parstack,$safeeval,undef,1); |
|
unless ($alttag) { |
|
$alttag=&Apache::lonmeta::alttag($Apache::lonxml::pwd[-1],$src); |
|
} |
|
$currentstring='[EMBED: '.$alttag.']'; |
|
} |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring = " \\begin{figure} "; |
$currentstring = " \\begin{figure} "; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
sub end_embed { |
sub end_embed { |
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
Line 1687 sub start_embed {
|
Line 1785 sub start_embed {
|
#-- <param> tag |
#-- <param> tag |
|
|
sub start_param { |
sub start_param { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
if ($token->[2]->{'name'} eq 'cabbase') { |
if (&Apache::lonxml::get_param |
|
('name',$parstack,$safeeval,undef,1)=~/^cabbase$/i) { |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
$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]= |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
$token->[2]->{'src'}; |
&Apache::lonxml::get_param |
|
('src',$parstack,$safeeval,undef,1); |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
Line 1713 sub start_embed {
|
Line 1814 sub start_embed {
|
return $currentstring; |
return $currentstring; |
} |
} |
#-- <allow> tag |
#-- <allow> tag |
sub start_allow { |
sub start_allow { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1); |
$token->[2]->{'src'}; |
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval); |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src; |
if (not -e '/home/httpd/html'.$src) { |
&image_replication($src); |
#replicates image itself |
my $result; |
&Apache::lonnet::repcopy('/home/httpd/html'.$src); |
if ($target eq 'edit') { |
#replicates eps or ps |
$result .=&Apache::edit::tag_start($target,$token); |
my $newsrc = $src; |
$result .=&Apache::edit::text_arg('File Spec:','src',$token,70); |
$newsrc =~ s/(.gif|.jpg)$/.eps/; |
$result .=&Apache::edit::end_row();#.&Apache::edit::start_spanning_row(); |
if (not-e $newsrc && &Apache::lonnet::repcopy('/home/httpd/html'.$newsrc) ne 'OK') { |
} elsif ($target eq 'modified') { |
$newsrc =~ s/\.ps$/\.eps/; |
my $constructtag=&Apache::edit::get_new_args($token,$parstack, |
&Apache::lonnet::repcopy('/home/httpd/html'.$newsrc); |
$safeeval,'src'); |
} |
if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); } |
} |
} |
return ''; |
return $result; |
} |
} |
sub end_allow { |
|
return ''; |
sub end_allow { |
} |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
|
if ( $target eq 'edit') { return (&Apache::edit::end_table()); } |
|
return ''; |
|
} |
#-- Frames |
#-- Frames |
sub start_frameset { |
sub start_frameset { |
my ($target,$token) = @_; |
my ($target,$token) = @_; |
Line 1741 sub start_embed {
|
Line 1845 sub start_embed {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
if (!$Apache::lonxml::registered) { |
if (!$Apache::lonxml::registered) { |
$currentstring.='<head>'. |
$currentstring.='<head>'. |
&Apache::lonxml::registerurl(undef,$target).'</head>'; |
&Apache::lonmenu::registerurl(undef,$target).'</head>'; |
} |
} |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} |
} |
Line 1781 sub start_embed {
|
Line 1885 sub start_embed {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
my $display = &Apache::lonxml::get_param('display',$parstack,$safeeval); |
my $display = &Apache::lonxml::get_param('display',$parstack,$safeeval,undef,1); |
$currentstring .= '<b>'.$display.'</b>';; |
$currentstring .= '<b>'.$display.'</b>';; |
} |
} |
return $currentstring; |
return $currentstring; |
Line 1799 sub start_embed {
|
Line 1903 sub start_embed {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
my $display = &Apache::lonxml::get_param('display',$parstack,$safeeval); |
my $display = &Apache::lonxml::get_param('display',$parstack,$safeeval,undef,1); |
$currentstring .= '<b>'.$display.'</b>';; |
$currentstring .= '<b>'.$display.'</b>';; |
} |
} |
return $currentstring; |
return $currentstring; |
Line 1817 sub start_embed {
|
Line 1921 sub start_embed {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
my $howmuch = &Apache::lonxml::get_param('heigth',$parstack,$safeeval); |
my $howmuch = &Apache::lonxml::get_param('heigth',$parstack,$safeeval,undef,1); |
$currentstring .= '\vskip '.$howmuch.' '; |
$currentstring .= '\vskip '.$howmuch.' '; |
} |
} |
return $currentstring; |
return $currentstring; |
Line 2527 sub start_embed {
|
Line 2631 sub start_embed {
|
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
|
sub image_replication { |
|
my $src = shift; |
|
if (not -e $src) { |
|
#replicates image itself |
|
&Apache::lonnet::repcopy($src); |
|
#replicates eps or ps |
|
my $newsrc = $src; |
|
$newsrc =~ s/\.(gif|jpg|jpeg|png)$/.eps/i; |
|
if (not -e $newsrc) { |
|
if (&Apache::lonnet::repcopy($newsrc) ne 'OK') { |
|
$newsrc =~ s/\.eps$/\.ps/; |
|
&Apache::lonnet::repcopy($newsrc); |
|
} |
|
} |
|
} |
|
return ''; |
|
} |
|
|
1; |
1; |
__END__ |
__END__ |