version 1.366, 2007/06/05 22:37:58
|
version 1.372, 2007/07/04 14:02:14
|
Line 481 sub start_accessrule {
|
Line 481 sub start_accessrule {
|
('realm',$parstack,$safeeval,undef,1); |
('realm',$parstack,$safeeval,undef,1); |
my $role=&Apache::lonxml::get_param |
my $role=&Apache::lonxml::get_param |
('role',$parstack,$safeeval,undef,1); |
('role',$parstack,$safeeval,undef,1); |
$realm=~s/\s+//g; |
my ($dom,$crs,$sec)=split(/\_/,$realm); |
$realm=~s/\//\_/g; |
$dom = &LONCAPA::clean_domain($dom); |
$realm=~s/^\_//; |
my $type=&Apache::lonxml::get_param |
$realm=~s/\W/\;/g; |
('type',$parstack,$safeeval,undef,1); |
$role=~s/\s+//g; |
if ($type eq 'user') { |
$role=~s/\//\_/g; |
$crs = &LONCAPA::clean_username($crs); |
$role=~s/\W/\;/g; |
} 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') { |
if ($target eq 'web') { |
my $args=''; |
my $args=''; |
if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } |
if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } |
Line 498 sub start_accessrule {
|
Line 506 sub start_accessrule {
|
} |
} |
} |
} |
if ($target eq 'meta') { |
if ($target eq 'meta') { |
$currentstring='<rule>'.$eff.':'.$realm.':'.$role.'</rule>'; |
$currentstring='<rule>'.$eff.':'.$realm.':'.$role.':'.$type.'</rule>'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 2058 sub end_table {
|
Line 2066 sub end_table {
|
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
|
my $border = &Apache::lonxml::get_param('border',$parstack,$safeeval); |
my $inmemory = ''; |
my $inmemory = ''; |
my $output = ''; |
my $output = ''; |
my $WARNING=''; |
my $WARNING=''; |
Line 2154 sub end_table {
|
Line 2163 sub end_table {
|
my @fwidth=@{$Apache::londefdef::table[-1]{'TeXlen'}[0]};#final width array |
my @fwidth=@{$Apache::londefdef::table[-1]{'TeXlen'}[0]};#final width array |
my @adjust=(); |
my @adjust=(); |
#step 1. adjustment by maximum value |
#step 1. adjustment by maximum value |
my $space_neeeded=0; |
my $space_needed=0; |
for (my $jn=0;$jn<=$#max_len;$jn++) { |
for (my $jn=0;$jn<=$#max_len;$jn++) { |
$space_neeeded=$space_neeeded+$max_len[$jn]; |
$space_needed=$space_needed+$max_len[$jn]; |
} |
} |
if ($space_neeeded<=$available_space) { |
if ($space_needed<=$available_space) { |
|
|
for (my $jn=0;$jn<=$#max_len;$jn++) { |
for (my $jn=0;$jn<=$#max_len;$jn++) { |
if ($fwidth[$jn]==0) { |
if ($fwidth[$jn]==0) { |
Line 2167 sub end_table {
|
Line 2176 sub end_table {
|
} |
} |
} else { |
} else { |
#step 2. adjustment by minimum value (estimation) |
#step 2. adjustment by minimum value (estimation) |
$space_neeeded=0; |
$space_needed=0; |
for (my $jn=0;$jn<=$#min_len;$jn++) { |
for (my $jn=0;$jn<=$#min_len;$jn++) { |
$space_neeeded+=$min_len[$jn]; |
$space_needed+=$min_len[$jn]; |
} |
} |
if ($space_neeeded>$available_space) { |
if ($space_needed>$available_space) { |
$WARNING=' \textbf{NOT ENOUGH SPACE FOR TABLE} '; |
$WARNING=' \textbf{NOT ENOUGH SPACE FOR TABLE} '; |
for (my $jn=0;$jn<=$#max_len;$jn++) { |
for (my $jn=0;$jn<=$#max_len;$jn++) { |
if ($fwidth[$jn]==0) { |
if ($fwidth[$jn]==0) { |
Line 2188 sub end_table {
|
Line 2197 sub end_table {
|
} |
} |
} |
} |
if ($how_many_to_scale>0) { |
if ($how_many_to_scale>0) { |
my $space_to_adjust=($space_neeeded-$available_space)/$how_many_to_scale; |
my $space_to_adjust=($space_needed-$available_space)/$how_many_to_scale; |
foreach my $jn (@to_scale) { |
foreach my $jn (@to_scale) { |
for (my $in=0;$in<=$Apache::londefdef::table[-1]{'row_number'};$in++) { |
for (my $in=0;$in<=$Apache::londefdef::table[-1]{'row_number'};$in++) { |
$Apache::londefdef::table[-1]{'content'}[$in][$jn]=~m/width\s*=\s*(\d+\.?\d*\s*(mm|cm|in|pc|pt)*)/; |
$Apache::londefdef::table[-1]{'content'}[$in][$jn]=~m/width\s*=\s*(\d+\.?\d*\s*(mm|cm|in|pc|pt)*)/; |
Line 2210 sub end_table {
|
Line 2219 sub end_table {
|
} |
} |
} else { |
} else { |
#step 3. adjustment over minimal + corrections |
#step 3. adjustment over minimal + corrections |
my $enlarge_coef=$available_space/$space_neeeded; |
my $enlarge_coef=$available_space/$space_needed; |
my $acsessive=0; |
my $acsessive=0; |
for (my $jn=0;$jn<=$#min_len;$jn++) { |
for (my $jn=0;$jn<=$#min_len;$jn++) { |
$adjust[$jn]=$min_len[$jn]*$enlarge_coef; |
$adjust[$jn]=$min_len[$jn]*$enlarge_coef; |
Line 2250 sub end_table {
|
Line 2259 sub end_table {
|
for (my $i=0;$i<=$#fwidth;$i++) { |
for (my $i=0;$i<=$#fwidth;$i++) { |
$current+=$fwidth[$i]; |
$current+=$fwidth[$i]; |
} |
} |
|
if ($current == 0) { |
|
$current = $Apache::londefdef::table[-1]{'width'}; |
|
} |
my $coef=$Apache::londefdef::table[-1]{'width'}/$current; |
my $coef=$Apache::londefdef::table[-1]{'width'}/$current; |
for (my $i=0;$i<=$#fwidth;$i++) { |
for (my $i=0;$i<=$#fwidth;$i++) { |
$fwidth[$i]*=$coef; |
$fwidth[$i]*=$coef; |
Line 2302 sub end_table {
|
Line 2314 sub end_table {
|
# Do the appropriate magic if this has a colspan |
# Do the appropriate magic if this has a colspan |
# |
# |
|
|
|
my $border_char = ""; |
|
if ($border) { |
|
$border_char = "|"; |
|
} |
my $spanwidth = 0; |
my $spanwidth = 0; |
if ($colspan > 1) { |
if ($colspan > 1) { |
for (my $spancol = $jn; $spancol < $jn + $colspan; $spancol++) { |
for (my $spancol = $jn; $spancol < $jn + $colspan; $spancol++) { |
Line 2311 sub end_table {
|
Line 2327 sub end_table {
|
$colspan |
$colspan |
."}"; |
."}"; |
if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') { |
if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') { |
$output .= '{|c|}{'; |
$output .= '{'.$border_char.'c'.$border_char.'}{'; |
} elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') { |
} elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') { |
$output .= '{|r|}{'; |
$output .= '{'.$border_char.'r'.$border_char.'}{'; |
} |
} |
else { |
else { |
$output .= "{|p{$spanwidth mm}|}{"; |
$output .= '{'.$border_char."p{$spanwidth mm}".$border_char.'}{'; |
} |
} |
|
|
} else { |
} else { |
Line 2332 sub end_table {
|
Line 2348 sub end_table {
|
if ($rowspan > 1) { |
if ($rowspan > 1) { |
if ($colspan == 1) { |
if ($colspan == 1) { |
if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') { |
if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') { |
$output .= '\multicolumn{1}{|c|}{'; |
$output .= '\multicolumn{1}{'.$border_char.'c'.$border_char.'}{'; |
$multirow_aligned = 1; |
$multirow_aligned = 1; |
} elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') { |
} elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') { |
$output .= '\multicolumn{1}{|r|}{'; |
$output .= '\multicolumn{1}{'.$border_char.'r'.$border_char.'}{'; |
$multirow_aligned = 1; |
$multirow_aligned = 1; |
} |
} |
} |
} |
Line 2372 sub end_table {
|
Line 2388 sub end_table {
|
# |
# |
if ($colspan == 1 && $rowspan == 1) { |
if ($colspan == 1 && $rowspan == 1) { |
if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') { |
if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') { |
$output .= '\multicolumn{1}{|c|}{'; |
$output .= '\multicolumn{1}{'.$border_char.'c'.$border_char.'}{'; |
} elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') { |
} elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') { |
$output .= '\multicolumn{1}{|r|}{'; |
$output .= '\multicolumn{1}{'.$border_char.'r'.$border_char.'}{'; |
} |
} |
} |
} |
|
|
Line 3001 sub start_img {
|
Line 3017 sub start_img {
|
# And here's where the semi-quote breaks down: allow the user |
# And here's where the semi-quote breaks down: allow the user |
# to edit the beast as well by rendering the problem for edit: |
# to edit the beast as well by rendering the problem for edit: |
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
|
my $only = join(',',&Apache::loncommon::filecategorytypes('Pictures')); |
$currentstring .=&Apache::edit::tag_start($target,$token); |
$currentstring .=&Apache::edit::tag_start($target,$token); |
$currentstring .=&Apache::edit::text_arg('Image Url:','src',$token,70). |
$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').'<br />'; |
&Apache::edit::search('src',undef,'alt').'<br />'; |
$currentstring .=&Apache::edit::text_arg('Description:','alt',$token,70).'<br />'; |
$currentstring .=&Apache::edit::text_arg('Description:','alt',$token,70).'<br />'; |
$currentstring .=&Apache::edit::text_arg('width (pixel):','width',$token,5); |
$currentstring .=&Apache::edit::text_arg('width (pixel):','width',$token,5); |