CRM-Menü automatisch einlesen, falls es existiert
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 16 Jul 2013 11:31:51 +0000 (13:31 +0200)
committerJan Büren <jan@kivitendo-premium.de>
Thu, 18 Jul 2013 07:09:00 +0000 (09:09 +0200)
Siehe #2328.

SL/Layout/Base.pm
SL/Menu.pm

index 2212f71..467f56e 100644 (file)
@@ -29,7 +29,7 @@ sub new {
 }
 
 sub init_menu {
-  Menu->new('menu.ini');
+  Menu->new('crm/update/menu.ini', 'menu.ini');
 }
 
 sub init_auto_reload_resources_param {
index 0fb1b1a..06ea6ee 100644 (file)
@@ -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();