--- loncom/interface/loncommon.pm 2004/10/21 11:17:00 1.222 +++ loncom/interface/loncommon.pm 2004/11/02 20:48:02 1.226 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.222 2004/10/21 11:17:00 foxr Exp $ +# $Id: loncommon.pm,v 1.226 2004/11/02 20:48:02 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -59,7 +59,6 @@ use Apache::lonnet(); use GDBM_File; use POSIX qw(strftime mktime); use Apache::Constants qw(:common :http :methods); -use Apache::lonmsg(); use Apache::lonmenu(); use Apache::lonlocal; use HTML::Entities; @@ -1741,21 +1740,26 @@ sub get_related_words { =over 4 -=item * plainname($uname,$udom) +=item * plainname($uname,$udom,$first) Takes a users logon name and returns it as a string in -"first middle last generation" form +"first middle last generation" form +if $first is set to 'lastname' then it returns it as +'lastname generation, firstname middlename' if their is a lastname =cut ############################################################### sub plainname { - my ($uname,$udom)=@_; + my ($uname,$udom,$first)=@_; my %names=&Apache::lonnet::get('environment', ['firstname','middlename','lastname','generation'], $udom,$uname); - my $name=$names{'firstname'}.' '.$names{'middlename'}.' '. - $names{'lastname'}.' '.$names{'generation'}; + my $name=&Apache::lonnet::format_name($names{'firstname'}, + $names{'middlename'}, + $names{'lastname'}, + $names{'generation'},$first); + $name=~s/^\s+//; $name=~s/\s+$//; $name=~s/\s+/ /g; if ($name !~ /\S/) { $name=$uname.'@'.$udom; } @@ -2518,7 +2522,7 @@ other decorations will be returned. =cut sub bodytag { - my ($title,$function,$addentries,$bodyonly,$domain,$forcereg)=@_; + my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle)=@_; $title=&mt($title); $function = &get_users_function() if (!$function); my $img=&designparm($function.'.img',$domain); @@ -2564,6 +2568,7 @@ END return $bodytag; } elsif ($ENV{'browser.interface'} eq 'textual') { # Accessibility + return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web', $forcereg). '

LON-CAPA: '.$title.'

'; @@ -2585,15 +2590,23 @@ END

ENDROLE + my $titleinfo = ''.$title.''; + if ($customtitle) { + $titleinfo = $customtitle; + } return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web', $forcereg). - ''.$roleinfo.'
'.$title. -'
'; + ''.$roleinfo.'
'.$titleinfo.'
'; } # # Top frame rendering, Remote is up # + my $titleinfo = ' '.$title.''; + if ($customtitle) { + $titleinfo = $customtitle; + } return(< @@ -2603,7 +2616,7 @@ $upperleft - $title +$titleinfo $ENV{'environment.firstname'} @@ -3283,7 +3296,18 @@ sub DrawBarGraph { if (! @Values || ref($Values[0]) ne 'ARRAY') { return ''; } + # + my @Labels; + if (defined($labels)) { + @Labels = @$labels; + } else { + for (my $i=0;$i<@{$Values[0]};$i++) { + push (@Labels,$i+1); + } + } + # my $NumBars = scalar(@{$Values[0]}); + if ($NumBars < scalar(@Labels)) { $NumBars = scalar(@Labels); } my %ValuesHash; my $NumSets=1; foreach my $array (@Values) { @@ -3293,10 +3317,14 @@ sub DrawBarGraph { } # my ($height,$width,$xskip,$bar_width) = (200,120,1,15); - if ($NumBars < 5) { - $width = 120+$NumBars*25; + if ($NumBars < 3) { + $width = 120+$NumBars*32; + $xskip = 1; + $bar_width = 30; + } elsif ($NumBars < 5) { + $width = 120+$NumBars*20; $xskip = 1; - $bar_width = 25; + $bar_width = 20; } elsif ($NumBars < 10) { $width = 120+$NumBars*15; $xskip = 1; @@ -3315,15 +3343,6 @@ sub DrawBarGraph { $bar_width = 4; } # - my @Labels; - if (defined($labels)) { - @Labels = @$labels; - } else { - for (my $i=0;$i<@{$Values[0]};$i++) { - push (@Labels,$i+1); - } - } - # $Max = 1 if ($Max < 1); if ( int($Max) < $Max ) { $Max++; @@ -3732,70 +3751,30 @@ 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; # 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; + my $lastitem = &Apache::lonnet::escape(pop(@urlslices)); + return join('/',@urlslices).'/'.$lastitem; } =pod