--- loncom/interface/lonhtmlcommon.pm 2004/02/16 23:27:03 1.51 +++ loncom/interface/lonhtmlcommon.pm 2004/02/20 16:44:43 1.54 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common html routines # -# $Id: lonhtmlcommon.pm,v 1.51 2004/02/16 23:27:03 albertel Exp $ +# $Id: lonhtmlcommon.pm,v 1.54 2004/02/20 16:44:43 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -803,6 +803,153 @@ sub crumbs { return $output.'
'; } +# ------------------------------------------------- Output headers for HTMLArea + +sub htmlareaheaders { + unless (&htmlareabrowser()) { return ''; } + my $lang='en'; + return (< + + + +ENDHEADERS +} + +# ---------------------------------------------------------- Script to activate + +sub htmlareaactive { + unless (&htmlareabrowser()) { return ''; } + return (< + HTMLArea.replaceAll(); + +ENDSCRIPT +} + +# ---------------------------------------- Browser capable of running HTMLArea? + +sub htmlareabrowser { + return 1; +} + +############################################################ +############################################################ + +=pod + +=item breadcrumbs + +Compiles the previously registered breadcrumbs into an series of links. +FAQ and BUG links will be placed on the left side of the table if they +are defined for the last registered breadcrumb. +Additionally supports a 'component', which will be displayed on the +right side of the table (without a link). +A link to help for the component will be included if one is specified. + +All inputs can be undef without problems. + +Inputs: $color (the background color of the table returned), + $component (the large text on the right side of the table), + $component_help + +Returns a string containing breadcrumbs for the current page. + +=item clear_breadcrumbs + +Clears the previously stored breadcrumbs. + +=item add_breadcrumb + +Pushes a breadcrumb on the stack of crumbs. + +input: $breadcrumb, a hash reference. The keys 'href','title', and 'text' +are required. If present the keys 'faq' and 'bug' will be used to provide +links to the FAQ and bug sites. + +returns: nothing + +=cut + +############################################################ +############################################################ +{ + my @Crumbs; + + sub breadcrumbs { + my ($color,$component,$component_help) = @_; + $color = '#CCCCFF' if (! defined($color)); + # + my $Str = "\n". + ''. + ''; + # + if (defined($component)) { + $Str .= ''; + } + $Str .= '
'. + ''; + # The last breadcrumb does not have a link, so handle it seperately. + my $last = pop(@Crumbs); + # The first one should be the course, I guess. + if (exists($ENV{'request.course.id'})) { + my $cid = $ENV{'request.course.id'}; + unshift(@Crumbs,{href=>'/adm/menu', + title=>'Go to main menu', + text=>$ENV{'course.'.$cid.'.description'}, + }); + } + my $links .= + join('->', + map { + ''. + $_->{'text'}.'' + } @Crumbs + ); + $links .= '->' if ($links ne ''); + $links .= ''.$last->{'text'}.''; + # + my $icons = ''; + if (exists($last->{'faq'})) { + $icons .= &Apache::loncommon::help_open_faq($last->{'faq'}); + } + if (exists($last->{'bug'})) { + $icons .= &Apache::loncommon::help_open_bug($last->{'bug'}); + } + if ($icons ne '') { + $Str .= $icons.' '; + } + # + $Str .= $links.''. + ''.$component.''; + if (defined($component_help)) { + $Str .= + &Apache::loncommon::help_open_topic($component_help); + } + $Str.= '
'."\n"; + # + # Return the @Crumbs stack to what we started with + push(@Crumbs,$last); + shift(@Crumbs); + # + return $Str; + } + + sub clear_breadcrumbs { + undef(@Crumbs); + } + + sub add_breadcrumb { + push (@Crumbs,@_); + } + +} + +############################################################ +############################################################ + 1;