]> wagnertech.de Git - mfinanz.git/blobdiff - SL/MenuItem.pm
javascripte gefixt, und die korrekten klassen ausgeblendet
[mfinanz.git] / SL / MenuItem.pm
index 7accaf975dbf3dc42c19b622c3a2a0dcb031f213..dbdaf800b4f0ed814fe33db95833faf0c9df190d 100644 (file)
@@ -1,18 +1,19 @@
 package SL::MenuItem;
 
+use strict;
+
 sub new {
-  my ($class, %values) = @_;
+  my ($class, %params) = @_;
 
   my $obj = bless {}, $class;
-  $obj->{ACCESS} = delete $values{ACCESS};
-  $obj->{module} = delete $values{module} || die 'menuitem - need module';
-  $obj->{action} = delete $values{action} || die 'menuitem - need action';
-
-  $obj->{params} = \%values;
-}
+  $obj->{fullname} = $params{name};
+  my $values       = $params{item};
 
-sub access {
+  $obj->{ACCESS} = delete $values->{ACCESS};
+  $obj->{module} = delete $values->{module} || die 'menuitem - need module';
+  $obj->{action} = delete $values->{action} || die 'menuitem - need action';
 
+  $obj->{params} = $values;
 }
 
 sub ACCESS { $_[0]{ACCESS} }
@@ -20,7 +21,18 @@ sub action { $_[0]{action} }
 sub module { $_[0]{module} }
 sub params { $_[0]{params} }
 
-sub
+sub name { $_[0]{name} ||= $_[0]->_init_name }
+sub _init_name { my $name = $_[0]{fullname}; $name =~ s/.*--//; $name }
+sub path { @{ $_[0]{path} ||= [ $_[0]->_init_path ] } }
+sub _init_path { my $name = $_[0]{fullname}; split /--/, $name }
+
+sub children { }
+sub siblings {}
+sub parent {}
+
+
+###### internal stuff #######
+
 
 
 1;