version 1.196, 2008/12/17 12:59:49
|
version 1.202, 2009/02/19 18:01:37
|
Line 1278 Inputs: $component (the large text on th
|
Line 1278 Inputs: $component (the large text on th
|
$menulink (boolean, controls whether to include a link to /adm/menu) |
$menulink (boolean, controls whether to include a link to /adm/menu) |
$helplink (if 'nohelp' don't include the orange help link) |
$helplink (if 'nohelp' don't include the orange help link) |
$css_class (optional name for the class to apply to the table for CSS) |
$css_class (optional name for the class to apply to the table for CSS) |
|
$no_mt (optional flag, 1 if &mt() is _not_ to be applied to $component |
|
when including the text on the right. |
Returns a string containing breadcrumbs for the current page. |
Returns a string containing breadcrumbs for the current page. |
|
|
=item clear_breadcrumbs |
=item clear_breadcrumbs |
Line 1303 returns: nothing
|
Line 1305 returns: nothing
|
my @Crumbs; |
my @Crumbs; |
|
|
sub breadcrumbs { |
sub breadcrumbs { |
my ($component,$component_help,$menulink,$helplink,$css_class) = @_; |
my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt) = @_; |
# |
# |
$css_class ||= 'LC_breadcrumbs'; |
$css_class ||= 'LC_breadcrumbs'; |
my $Str = "\n".'<table class="'.$css_class.'"><tr><td><ol id="LC_MenuBreadcrumbs">'; |
my $Str1 = '<ol id="LC_MenuBreadcrumbs">'; |
|
my $Str = ''; |
# |
# |
# Make the faq and bug data cascade |
# Make the faq and bug data cascade |
my $faq = ''; |
my $faq = ''; |
my $bug = ''; |
my $bug = ''; |
my $help=''; |
my $help=''; |
# Crumb Symbol |
# Crumb Symbol |
my $crumbsymbol = ' ▶ '; |
my $crumbsymbol = '▶ '; |
# The last breadcrumb does not have a link, so handle it separately. |
# The last breadcrumb does not have a link, so handle it separately. |
my $last = pop(@Crumbs); |
my $last = pop(@Crumbs); |
# |
# |
Line 1336 returns: nothing
|
Line 1339 returns: nothing
|
no_mt =>$no_mt_descr, |
no_mt =>$no_mt_descr, |
}); |
}); |
} |
} |
my $links .= |
my $links .= '<li>'. |
join($crumbsymbol, |
join('</li><li>'.$crumbsymbol, |
map { |
map { |
$faq = $_->{'faq'} if (exists($_->{'faq'})); |
$faq = $_->{'faq'} if (exists($_->{'faq'})); |
$bug = $_->{'bug'} if (exists($_->{'bug'})); |
$bug = $_->{'bug'} if (exists($_->{'bug'})); |
$help = $_->{'help'} if (exists($_->{'help'})); |
$help = $_->{'help'} if (exists($_->{'help'})); |
my $result = '<li><a href="'.$_->{'href'}.'" '; |
my $result = '<a href="'.$_->{'href'}.'" '; |
if (defined($_->{'target'}) && $_->{'target'} ne '') { |
if (defined($_->{'target'}) && $_->{'target'} ne '') { |
$result .= 'target="'.$_->{'target'}.'" '; |
$result .= 'target="'.$_->{'target'}.'" '; |
} |
} |
if ($_->{'no_mt'}) { |
if ($_->{'no_mt'}) { |
$result .='title="'.$_->{'title'}.'">'. |
$result .='title="'.$_->{'title'}.'">'. |
$_->{'text'}.'</a></li>'; |
$_->{'text'}.'</a>'; |
} else { |
} else { |
$result .='title="'.&mt($_->{'title'}).'">'. |
$result .='title="'.&mt($_->{'title'}).'">'. |
&mt($_->{'text'}).'</a></li>'; |
&mt($_->{'text'}).'</a>'; |
} |
} |
$result; |
$result; |
} @Crumbs |
} @Crumbs |
); |
).'</li>'; |
$links .= $crumbsymbol if ($links ne ''); |
$links .= '<li>'.$crumbsymbol if ($links ne ''); |
if ($last->{'no_mt'}) { |
if ($last->{'no_mt'}) { |
$links .= '<li><b>'.$last->{'text'}.'</b></li>'; |
$links .= '<b>'.$last->{'text'}.'</b></li>'; |
} else { |
} else { |
$links .= '<li><b>'.&mt($last->{'text'}).'</b></li>'; |
$links .= '<b>'.&mt($last->{'text'}).'</b></li>'; |
} |
} |
# |
# |
my $icons = ''; |
my $icons = ''; |
Line 1380 returns: nothing
|
Line 1383 returns: nothing
|
$faq,$bug); |
$faq,$bug); |
} |
} |
# |
# |
$Str .= $links.'</ol></td>'; |
$Str1 .= $links.'</ol>'; |
# |
# |
if (defined($component)) { |
if (defined($component)) { |
$Str .= '<td class="'.$css_class.'_component">'. |
$Str .= "\n".'<table class="'.$css_class.'">' |
&mt($component); |
.'<tr><td class="'.$css_class.'_component">'; |
|
if ($no_mt) { |
|
$Str .= $component; |
|
} else { |
|
$Str .= &mt($component); |
|
} |
if ($icons ne '') { |
if ($icons ne '') { |
$Str .= ' '.$icons; |
$Str .= ' '.$icons; |
} |
} |
$Str .= '</td>'; |
$Str .= '</td></tr></table>'."\n"; |
} |
} |
$Str .= '</tr></table>'."\n"; |
|
# |
# |
# Return the @Crumbs stack to what we started with |
# Return the @Crumbs stack to what we started with |
push(@Crumbs,$last); |
push(@Crumbs,$last); |
shift(@Crumbs); |
shift(@Crumbs); |
# |
# |
return $Str; |
return "$Str\n$Str1"; |
} |
} |
|
|
sub clear_breadcrumbs { |
sub clear_breadcrumbs { |
Line 1546 sub role_select_row {
|
Line 1553 sub role_select_row {
|
$output = &row_title($title,$css_class); |
$output = &row_title($title,$css_class); |
} |
} |
$output .= qq| |
$output .= qq| |
<select name="roles" multiple >\n|; |
<select name="roles" multiple="multiple">\n|; |
foreach my $role (@$roles) { |
foreach my $role (@$roles) { |
my $plrole; |
my $plrole; |
if ($role eq 'ow') { |
if ($role eq 'ow') { |
Line 1673 sub status_select_row {
|
Line 1680 sub status_select_row {
|
$output = &row_title($title,$css_class,'LC_pick_box_select'); |
$output = &row_title($title,$css_class,'LC_pick_box_select'); |
} |
} |
$output .= qq| |
$output .= qq| |
<select name="types" multiple>\n|; |
<select name="types" multiple="multiple">\n|; |
foreach my $status_type (sort(keys(%{$types}))) { |
foreach my $status_type (sort(keys(%{$types}))) { |
$output .= ' <option value="'.$status_type.'">'.$$types{$status_type}.'</option>'; |
$output .= ' <option value="'.$status_type.'">'.$$types{$status_type}.'</option>'; |
} |
} |
Line 2025 END
|
Line 2032 END
|
# An array of following structure: |
# An array of following structure: |
# ({ categorytitle => 'Categorytitle', |
# ({ categorytitle => 'Categorytitle', |
# items => [ |
# items => [ |
# { linktext => 'Text to be displayed', |
# { |
# url => 'URL the link is pointing to, i.e. /adm/site?action=dosomething', |
# linktext => 'Text to be displayed', |
|
# url => 'URL the link is pointing to, i.e. /adm/site?action=dosomething', |
# permission => 'Contains permissions as returned from lonnet::allowed(), |
# permission => 'Contains permissions as returned from lonnet::allowed(), |
# must evaluate to true in order to activate the link', |
# must evaluate to true in order to activate the link', |
# icon => 'icon filename', |
# icon => 'icon filename', |
# alttext => 'alt text for the icon', |
# alttext => 'alt text for the icon', |
# help => 'Name of the corresponding helpfile', |
# help => 'Name of the corresponding helpfile', |
Line 2047 END
|
Line 2055 END
|
# subject to change during this project. |
# subject to change during this project. |
# Don't rely on its current functionality as it might be |
# Don't rely on its current functionality as it might be |
# changed or removed. |
# changed or removed. |
# TODO: |
|
# check for empty values |
|
# -------------------------- |
# -------------------------- |
|
|
sub generate_menu { |
sub generate_menu { |
my @menu = @_; |
my @menu = @_; |
my $menu_html = qq|<div class="LC_columnSection">|; |
|
|
|
foreach my $category (@menu) { #FIXME: insert appropriate classnames for styles when they're finished. |
# usage: $wrap->(element, content, {attribute => value,...}); |
$menu_html .='<div class="LC_ContentBoxSpecial"> |
# output: content enclosed in html conform tags |
<h3 class="LC_hcell">'.mt($category->{'categorytitle'}).'</h3> |
my $wrap = sub { |
<ul class="LC_ListStyleNormal">'; |
return |
foreach my $item ( @{ $category->{items} } ) { |
qq|<$_[0]| |
next unless $item->{'permission'}; |
. join( '', map { qq| $_="${$_[2]}{$_}"| } keys %{ $_[2] } ) |
$menu_html .= qq|<li class="LC_menubuttons_inline_text"><a href="$item->{'url'}" title="|.mt($item->{'linktitle'}).'">'; |
. ($_[1] ? qq|>$_[1]</$_[0]>| : qq|/>|). "\n"; |
if($item->{'icon'}){ |
}; |
$menu_html .= qq|<img class ="LC_noBorder LC_middle" src="/res/adm/pages/$item->{'icon'}" alt="|; |
|
if($item->{'alttext'}){ |
# subs for specific html elements |
$menu_html .= $item->{'alttext'}.'"/></a>'; |
my $h3 = sub { return $wrap->( "h3", @_ ) }; |
} else { #use linktext as alt text for the icon |
my $div = sub { return $wrap->( "div", @_ ) }; |
$menu_html .= qq|$item->{'linktext'}"/></a>|; |
my $ul = sub { return $wrap->( "ul", @_ ) }; |
} |
my $li = sub { return $wrap->( "li", @_ ) }; |
} |
my $a = sub { return $wrap->( "a", @_ ) }; |
$menu_html .= qq|<a href="$item->{'url'}" title="|.mt($item->{'linktitle'}).'">'; |
my $img = sub { return $wrap->( "img", @_ ) }; |
$menu_html .= mt($item->{'linktext'}).'</a>'; |
|
if (exists($item->{'help'})) { |
my @categories; # each element represents the entire markup for a category |
$menu_html .= Apache::loncommon::help_open_topic($item->{'help'}); |
|
} |
foreach my $category (@menu) { |
$menu_html .= '</li>'; |
my @links; # contains the links for the current $category |
} |
foreach my $link (@{$$category{items}}) { |
$menu_html .= '</ul></div>'; |
next unless $$link{permission}; |
|
|
|
# create the markup for the current $link and push it into @links. |
|
# each entry consists of an image and a text optionally followed |
|
# by a help link. |
|
push @links, $li->( |
|
$a->( |
|
$img->("", { |
|
class => "LC_noBorder LC_middle", |
|
src => "/res/adm/pages/$$link{icon}", |
|
alt => mt(defined($$link{alttext}) ? |
|
$$link{alttext} : $$link{linktext}) |
|
}), { |
|
href => $$link{url}, |
|
title => mt($$link{linktitle}) |
|
}). |
|
$a->(mt($$link{linktext}), { |
|
href => $$link{url}, |
|
title => mt($$link{linktitle}), |
|
class => "LC_menubuttons_link" |
|
}). |
|
(defined($$link{help}) ? |
|
Apache::loncommon::help_open_topic($$link{help}) : ''), |
|
{class => "LC_menubuttons_inline_text"}); |
|
} |
|
|
|
# wrap categorytitle in <h3>, concatenate with |
|
# joined and in <ul> tags wrapped @links |
|
# and wrap everything in an enclosing <div> and push it into |
|
# @categories |
|
# such that each element looks like: |
|
# <div><h3>title</h3><ul><li>...</li>...</ul></div> |
|
# the category won't be added if there aren't any links |
|
push @categories, |
|
$div->($h3->(mt($$category{categorytitle}), {class=>"LC_hcell"}). |
|
$ul->(join('' ,@links), {class =>"LC_ListStyleNormal" }), |
|
{class=>"LC_ContentBoxSpecial"}) if scalar(@links); |
} |
} |
$menu_html .= qq|</div>|; |
|
return $menu_html; |
|
} |
|
|
|
|
# wrap the joined @categories in another <div> (column layout) |
|
return $div->(join('', @categories), {class => "LC_columnSection"}); |
|
} |
|
|
1; |
1; |
|
|