diff options
author | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2007-08-30 19:25:09 +0000 |
---|---|---|
committer | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2007-08-30 19:25:09 +0000 |
commit | 182af25edbe0f0d3f2fab4ea61465e552004c242 (patch) | |
tree | 83a7e1b9866e5c601e7fccbd08a877fdbdd1e892 /LedgerSMB/DBObject | |
parent | c5e589777b882e0559090703535df92c24409c68 (diff) |
Moving Menu.pm.
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1476 4979c152-3d1c-0410-bac9-87ea11338e46
Diffstat (limited to 'LedgerSMB/DBObject')
-rw-r--r-- | LedgerSMB/DBObject/Menu.pm | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/LedgerSMB/DBObject/Menu.pm b/LedgerSMB/DBObject/Menu.pm new file mode 100644 index 00000000..733d8f91 --- /dev/null +++ b/LedgerSMB/DBObject/Menu.pm @@ -0,0 +1,66 @@ +=head1 NAME + +LedgerSMB::Menu: Menu Handling Back-end Routines for LedgerSMB + +=head1 SYNOPSIS + +Provides the functions for generating the data structures for the LedgerSMB +menu. + +=head1 COPYRIGHT + +Copyright (c) 2007 The LedgerSMB Core Team. Licensed under the GNU General +Public License version 2 or at your option any later version. Please see the +included COPYRIGHT and LICENSE files for more information. + +=cut + +package LedgerSMB::DBObject::Menu; + +use Config::Std; +use base(qw(LedgerSMB::DBObject)); +1; + +=head1 METHODS + +=over + +=item LedgerSMB::Menu->new() + +Inherited from LedgerSMB::DBObject. Please see that documnetation for details. + +=item $menu->generate() + +This function returns a list of menu items. Each list item is a hashref: +keys %menu_item would return the equivalent of qw(position id level label path +args). Returns the complete list and sets $menu->{menu_items} to a referene to +th result set, This function does not return an entry for the top-level menu. + +=cut + +sub generate { + my ($self) = shift @_; + my @args; + + @{$self->{menu_items}} = $self->exec_method(funcname => 'menu_generate'); + + $self->debug({file => '/tmp/menu'}); + + shift @{$self->{menu_items}}; + + for my $attribute (@{$self->{menu_items}}){ + + @args = $self->_parse_array($attribute->{args}); + delete $attribute->{args}; + @{$attribute->{args}} = @args; + for (@{$attribute->{args}}){ + if ($_ =~ /(module|menu|action)=/){ + @elems = split(/=/, $_); + print STDERR join(','. @elems) . "\n"; + $attribute->{$elems[0]} = $elems[1]; + } + } + } + return @{$self->{menu_items}}; +} + |