--- loncom/interface/lonhtmlcommon.pm 2009/11/06 10:14:12 1.239 +++ loncom/interface/lonhtmlcommon.pm 2009/11/21 22:36:23 1.247 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common html routines # -# $Id: lonhtmlcommon.pm,v 1.239 2009/11/06 10:14:12 amueller Exp $ +# $Id: lonhtmlcommon.pm,v 1.247 2009/11/21 22:36:23 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -62,6 +62,16 @@ use Apache::lonlocal; use Apache::lonnet; use LONCAPA; + +sub coursepreflink { + my ($text,$category)=@_; + if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) { + return ''.$text.''; + } else { + return ''; + } +} + ############################################## ############################################## @@ -111,7 +121,7 @@ sub dragmath_button { } my $buttontext=&mt('Edit Math'); return <$help_text + $help_text ENDDRAGMATH } @@ -1128,7 +1138,7 @@ sub crumbs { my $output=''; unless ($noformat) { $output.='
'; } $output.=''.$prefix.'/'; - if ($env{'user.adv'}) { + if (($env{'user.adv'}) | ($env{'user.author'})) { my $path=$prefix.'/'; foreach my $dir (split('/',$uri)) { if (! $dir) { next; } @@ -1342,6 +1352,7 @@ returns: nothing ############################################################ { my @Crumbs; + my %tools = (); sub breadcrumbs { my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt, $CourseBreadcrumbs) = @_; @@ -1438,8 +1449,12 @@ returns: nothing .$links; } + #SD START (work in progress!) + add_tools(\$links); + #SD END $links = htmltag('div', $links, { id => "LC_breadcrumbs" }) unless ($CourseBreadcrumbs) ; + add_advtools(\$links); # Return the @Crumbs stack to what we started with push(@Crumbs,$last); @@ -1450,11 +1465,62 @@ returns: nothing sub clear_breadcrumbs { undef(@Crumbs); + undef(%tools); } sub add_breadcrumb { push(@Crumbs,@_); } + + + #SD START (work in progress!) + sub add_breadcrumb_tool { + my ($category, $html) = @_; + return unless $html; + if (!defined(%tools)) { + my %tools = ( A => [], B => [], C => []); + } + push @{$tools{$category}}, $html; + } + + sub clear_breadcrumb_tools { + undef(%tools); + } + + sub add_tools { + my ($links) = @_; + return unless defined %tools; + my $html = '
    '; + for my $category ('A','B') { + $html .= '
  • ' + . '
      "; + for my $item (@{$tools{$category}}){ + #SD ugly! I'll fix that later on + $item =~ s/align="(right|left)"//; + $item =~ s///; + $html .= "
    • $item
    • "; + } + $html .= '
    '; + if ($category eq 'A') { $html .= "
  • $$links
  • "; } + } + $$links = $html.'
'; + } + + sub add_advtools { + my ($links) = @_; + return unless (defined $tools{'C'}) and (scalar (@{$tools{'C'}}) > 0); + my $html = start_funclist(); + for my $item (@{$tools{'C'}}){ + next unless $item; + $item =~ s/align="(right|left)"//; + $html .= add_item_funclist($item); + } + $html .= end_funclist(); + $html = Apache::loncommon::head_subbox($html); + $$links .= $html; + } + #SD END } # End of scope for @Crumbs @@ -1547,7 +1613,7 @@ END } sub row_title { - my ($title,$css_title_class,$css_value_class) = @_; + my ($title,$css_title_class,$css_value_class, $css_value_furtherAttributes) = @_; $row_count[0]++; my $css_class = ($row_count[0] % 2)?'LC_odd_row':'LC_even_row'; $css_title_class ||= 'LC_pick_box_title'; @@ -1559,7 +1625,7 @@ sub row_title { $title .= ':'; } my $output = <<"ENDONE"; - + $title @@ -1815,25 +1881,22 @@ sub course_custom_roles { # topic_bar # -# Generates a div containing a numbered (static image) followed by a title -# with a background color defined in the corresponding CSS: LC_topic_bar -# +# Generates a div containing an (optional) numbered (static) image followed by a +# title with a background color defined in the corresponding CSS: LC_topic_bar +# Inputs: +# 1. number to display (corresponding static image should exist). +# img tag will be included if arg is an integer in the range 1 to 9. +# 2. title text to display. +# Outputs - a scalar containing html mark-up for the div. + sub topic_bar { - my ($imgnum,$title, $show_number) = @_; - my $output = undef; - if (!$show_number) { - $output = '
' - .''.&mt('Step [_1]',$imgnum).'' - .' '.$title - .'
'; - } else { - $output = '
' - .$title - .'
'; + my ($imgnum,$title) = @_; + my $imgtag; + if ($imgnum =~ /^[1-9]$/) { + $imgtag = ''.&mt('Step [_1]',$imgnum).' '; } - - return $output; + return '
'.$imgtag.$title.'
'; } ############################################## @@ -2294,8 +2357,7 @@ Returns: HTML code with function list st sub start_funclist { my($legendtext)=@_; $legendtext=&mt('Functions') if !$legendtext; - return "
\n$legendtext\n" - .'
    '."\n"; + return '
    • '.$legendtext.'
    • '."\n"; } @@ -2353,8 +2415,7 @@ Returns: HTML code with function list en ############################################## sub end_funclist { - my($r)=@_; - return "
    \n
\n"; + return "\n"; } 1;