X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FMenu.pm;h=ab35fed1a48bfc108ece19b371c6be7ba34186c2;hb=89c9ff022d3f13e27ba6bda085df15707fcfb0eb;hp=adac1b00689eca9d18fc18e534dcbe7fa7853e67;hpb=c621a9187eb258019fa540490de21b248c709516;p=kivitendo-erp.git diff --git a/SL/Menu.pm b/SL/Menu.pm index adac1b006..ab35fed1a 100644 --- a/SL/Menu.pm +++ b/SL/Menu.pm @@ -63,46 +63,35 @@ sub menuitem { my ($self, $myconfig, $form, $item) = @_; - my $module = $form->{script}; - my $action = "section_menu"; - my $target = ""; + my $module = $self->{$item}{module} || $form->{script}; + my $action = $self->{$item}{action} || "section_menu"; + my $target = $self->{$item}{target} || ""; - if ($self->{$item}{module}) { - $module = $self->{$item}{module}; - } - if ($self->{$item}{action}) { - $action = $self->{$item}{action}; - } - if ($self->{$item}{target}) { - $target = $self->{$item}{target}; - } + my $level = $form->escape($item); - my $level = $form->escape($item); + my $style = 'style="vertical-align:top"'; + my $target_token = ($target) + ? "target='$target'" : ''; - my $str = qq|{$item}{href}) + ? $form->escape($self->{$item}{href}) + : "$module?action=$action&level=$level"; - my @vars = qw(module action target href); + my @vars = ($self->{$item}{href}) + ? qw(module target href) + : qw(module action target href); - if ($self->{$item}{href}) { - $str = qq|{$item}{href}|; - @vars = qw(module target href); - } - - map { delete $self->{$item}{$_} } @vars; +# map { delete $self->{$item}{$_} } @vars; # add other params foreach my $key (keys %{ $self->{$item} }) { - $str .= "&" . $form->escape($key, 1) . "="; + $href .= "&" . $form->escape($key, 1) . "="; my ($value, $conf) = split(/=/, $self->{$item}{$key}, 2); $value = $myconfig->{$value} . "/$conf" if ($conf); - $str .= $form->escape($value, 1); - } - - if ($target) { - $str .= qq| target=$target|; + $href .= $form->escape($value, 1); } - $str .= ">"; + my $str = ""; $main::lxdebug->leave_sub(); @@ -400,7 +389,10 @@ sub set_access { $self->{ORDER} = [ grep { $self->{$_}->{VISIBLE} } @{ $self->{ORDER} } ]; + { no strict 'refs'; + # ToDO: fix this. nuke and pave algorithm without type checking screams for problems. map { delete @{$self->{$_}}{qw(GRANTED IS_MENU NUM_VISIBLE_CHILDREN VISIBLE ACCESS)} if ($_ ne 'ORDER') } keys %{ $self }; + } } sub dump_visible {