]> git.ipfire.org Git - ipfire.org.git/blob - www/webapp/menu.py
Change layout of menu.json to create seperate menus per vhost.
[ipfire.org.git] / www / webapp / menu.py
1 #!/usr/bin/python
2
3 import simplejson
4
5 from helpers import Item, _stringify
6
7 class Menu(object):
8 def __init__(self, filename=None):
9 self.items = {}
10
11 if filename:
12 self.load(filename)
13
14 def load(self, filename):
15 f = open(filename)
16 data = f.read()
17 f.close()
18
19 for url, items in simplejson.loads(data).items():
20 self.items[url] = []
21 for item in items:
22 self.items[url].append(MenuItem(**_stringify(item)))
23
24 def get(self, url):
25 return self.items.get(url, [])
26
27
28 class MenuItem(Item):
29 def __init__(self, **args):
30 Item.__init__(self, **args)
31 self.active = False
32
33 # Parse submenu
34 if self.args.has_key("subs"):
35 self.args["items"] = []
36 for sub in self.args["subs"]:
37 self.args["items"].append(MenuItem(**_stringify(sub)))
38 del self.args["subs"]
39