X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FMenu.pm;h=b91611242ff4c889791dcacaa72a8ab8bed47c67;hb=7ccc2fd5f71317fec080989578672a6fba2d7521;hp=08727ce3664c58941bc58fddef04e53860bf2817;hpb=6f4fcf7bf0276763d3bdc3ac38459a962ff4635a;p=kivitendo-erp.git diff --git a/SL/Menu.pm b/SL/Menu.pm index 08727ce36..b91611242 100644 --- a/SL/Menu.pm +++ b/SL/Menu.pm @@ -212,14 +212,16 @@ sub href_for_node { return undef if !$node->{href} && !$node->{module} && !$node->{params}; - my $href = $node->{href} || $node->{module} || 'controller.pl'; - my @tokens; + return $node->{href_for_node} ||= do { + my $href = $node->{href} || $node->{module} || 'controller.pl'; + my @tokens; - while (my ($key, $value) = each %{ $node->{params} }) { - push @tokens, uri_encode($key, 1) . "=" . uri_encode($value, 1); - } + while (my ($key, $value) = each %{ $node->{params} }) { + push @tokens, uri_encode($key, 1) . "=" . uri_encode($value, 1); + } - return join '?', $href, grep $_, join '&', @tokens; + join '?', $href, grep $_, join '&', @tokens; + } } sub name_for_node {