aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AdminPanel/ConfigReader.pm
blob: 718a381d2cc53dc1782424e7ec581d67c292eeeb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS3
1 files changed, 3 insertions, 0 deletions
# vim: set et ts=4 sw=4:# Copyright 2012 Steven Tucker## This file is part of AdminPanel## AdminPanel is free software: you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation, either version 2 of the License, or# (at your option) any later version.## AdminPanel is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with AdminPanel. If not, see <http://www.gnu.org/licenses/>.#Class ConfigReaderpackage AdminPanel::ConfigReader;use strict;use warnings;use diagnostics;use XML::Simple;use Data::Dumper;sub new {my($class, $fileName) =@_;my$self= {my$data=0,my$catLen=0,my$currCat=0,my$modLen=0,my$currMod=0,my$placeHolder=0};bless$self,'AdminPanel::ConfigReader';my$xml= new XML::Simple (KeyAttr=>[]);$self->{data} =$xml->XMLin($fileName);if(ref($self->{data}->{category})eq"HASH") {# one element alonemy@categories;push@categories, $self->{data}->{category};$self->{data}->{category} =undef;push@{$self->{data}->{category}},@categories;}$self->{catLen} =scalar(@{$self->{data}->{category}});$self->{currCat} = -1;if(ref(@{$self->{data}->{category}}[0]->{module})eq"ARRAY") {$self->{modLen} =scalar(@{@{$self->{data}->{category}}[0]->{module}});}else{$self->{modLen} =1;}$self->{currMod} = -1;return$self;}sub hasNextCat {my($self) =@_;if($self->{currCat} +1>=$self->{catLen}) {return0;}return1;}sub getNextCat {my($self) =@_;$self->{currCat}++;if($self->{currCat} >=$self->{catLen}) {return0;}# Reset the Module Count and Mod length for new Category$self->{currMod} = -1;if(ref(@{$self->{data}->{category}}[$self->{currCat}]->{module})eq"ARRAY") {$self->{modLen} =scalar(@{@{$self->{data}->{category}}[$self->{currCat}]->{module}});}else{$self->{modLen} =1;}my$tmp= @{$self->{data}->{category}}[$self->{currCat}];return$tmp;}sub hasNextMod {my($self) =@_;if($self->{currMod} +1>=$self->{modLen}) {return0;}return1;}sub getNextMod {my($self) =@_;my$ret=0;$self->{currMod}++;if($self->{modLen} ==1) {$ret= @{$self->{data}->{category}}[$self->{currCat}]->{module};}else{$ret= @{@{$self->{data}->{category} }[$self->{currCat}]->{module}}[$self->{currMod}];}return$ret;}1;