--- loncom/interface/loncommon.pm 2004/10/12 23:26:48 1.219 +++ loncom/interface/loncommon.pm 2004/10/21 11:17:00 1.222 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.219 2004/10/12 23:26:48 albertel Exp $ +# $Id: loncommon.pm,v 1.222 2004/10/21 11:17:00 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -3293,7 +3293,11 @@ sub DrawBarGraph { } # my ($height,$width,$xskip,$bar_width) = (200,120,1,15); - if ($NumBars < 10) { + if ($NumBars < 5) { + $width = 120+$NumBars*25; + $xskip = 1; + $bar_width = 25; + } elsif ($NumBars < 10) { $width = 120+$NumBars*15; $xskip = 1; $bar_width = 15; @@ -3728,6 +3732,71 @@ sub connection_aborted { return $c->aborted(); } +# +# Escapes strings that may have embedded 's that will be put into +# strings as 'strings'. +# The assumptions are: +# There has been no effort to escape ' with \' +# Any \'s in the string are intended to be there as part of the URL +# and must also be escaped. +# Parameters: +# input - The string to escape. +# Returns: +# The escaped string (' replaced by \' and \ replaced by \\). +# +sub escape_single { + my ($input) = @_; + + # I imagine a regexp wizard could combine the two expressions below. + # If you do you might want to comment the result. + + $input =~ s/\\/\\\\/g; # Escape the /'s..(must be first)> + $input =~ s/\'/\\\'/g; # Esacpe the 's.... + + return $input; +} +# Same as escape_single, but escape's "'s This +# can be used for "strings" +# +# Parameters: +# input - The string to escape. +# Returns: +# The escaped string (" replaced by \" and \ replaced by \\). +# +sub escape_double { + my ($input) = @_; + + # I imagine a regexp wizard could combine the two expressions below. + # If you do you might want to comment the result. + + $input =~ s/\\/\\\\/g; # Escape the /'s..(must be first)> + $input =~ s/\"/\\\"/g; # Esacpe the "s.... + + return $input; +} +# +# Escapes the last element of a full URL. +# +# Parameters: +# url - The url to escape. +# Returns: +# The url with the last element escaped via lonnet::escape. +# +sub escape_url { + my ($url) = @_; + my @urlslices = split(/\//, $url); + + my $lastitem = $urlslices[scalar(@urlslices) -1]; + $lastitem = &Apache::lonnet::escape($lastitem); + + my $escaped_url; + for (my $i = 0; $i < scalar(@urlslices) -1; $i++) { + $escaped_url .= $urlslices[$i] .'/'; + } + $escaped_url .= $lastitem ; + + return $escaped_url; +} =pod =back