X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/eb3549d7f634c404b635ef67b32696b355f66efb..e214accccd89a9c8:/SL/Menu.pm?ds=sidebyside diff --git a/SL/Menu.pm b/SL/Menu.pm index 57d8b4e8a..06ea6ee43 100644 --- a/SL/Menu.pm +++ b/SL/Menu.pm @@ -42,14 +42,19 @@ use strict; sub new { $main::lxdebug->enter_sub(); - my ($type, $menufile) = @_; + my ($type, @menufiles) = @_; + my $self = bless {}, $type; - my $self = {}; - my $inifile = Inifile->new($menufile); + my @order; - map { $self->{$_} = $inifile->{$_} } keys %{ $inifile }; + foreach my $menufile (grep { -f } @menufiles) { + my $inifile = Inifile->new($menufile); - bless $self, $type; + push @order, @{ delete($inifile->{ORDER}) || [] }; + $self->{$_} = $inifile->{$_} for keys %{ $inifile }; + } + + $self->{ORDER} = \@order; $self->set_access(); @@ -94,7 +99,7 @@ sub access_control { my @menu = (); - if ($menulevel eq "") { + if (!$menulevel) { @menu = grep { !/--/ } @{ $self->{ORDER} }; } else { @menu = grep { /^${menulevel}--/ } @{ $self->{ORDER} };