From 8463fe5af60ecc06b073ebeaeb79a302cbbfae1d Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 4 May 2010 23:32:11 +0200 Subject: [PATCH] Change layout of menu.json to create seperate menus per vhost. --- www/menu.json | 43 +++++++++++++++++++++++++------------------ www/webapp/menu.py | 17 +++++++++-------- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/www/menu.json b/www/menu.json index 7ef23c79..20574adc 100644 --- a/www/menu.json +++ b/www/menu.json @@ -1,18 +1,25 @@ -[ - { "uri" : "/index", - "name" : "Home" }, - { "uri" : "/features", - "name" : { "de" : "Funktionen", "en" : "Features" }}, - { "uri" : "/screenshots", - "name" : "Screenshots" }, - { "uri" : "/download", - "name" : "Downloads" }, - { "uri" : "http://wiki.ipfire.org/", - "name" : { "de" : "Wiki", "en" : "Wiki" }}, - { "uri" : "http://forum.ipfire.org/", - "name" : "Forum" }, - { "uri" : "/development", - "name" : { "de" : "Entwicklung", "en" : "Development" }}, - { "uri" : "/cebit", - "name" : "CeBIT 2010" } -] +{ + "www.ipfire.org" : [ + { "uri" : "/index", + "name" : "Home" }, + { "uri" : "/features", + "name" : { "de" : "Funktionen", "en" : "Features" }}, + { "uri" : "/screenshots", + "name" : "Screenshots" }, + { "uri" : "/download", + "name" : "Downloads" }, + { "uri" : "http://wiki.ipfire.org/", + "name" : { "de" : "Wiki", "en" : "Wiki" }}, + { "uri" : "http://forum.ipfire.org/", + "name" : "Forum" }, + { "uri" : "/development", + "name" : { "de" : "Entwicklung", "en" : "Development" }}, + { "uri" : "/cebit", + "name" : "CeBIT 2010" } + ], + + "planet.ipfire.org" : [ + { "uri" : "/index", + "name" : "Home" } + ] +} diff --git a/www/webapp/menu.py b/www/webapp/menu.py index d998fd37..bce95a1a 100644 --- a/www/webapp/menu.py +++ b/www/webapp/menu.py @@ -6,7 +6,7 @@ from helpers import Item, _stringify class Menu(object): def __init__(self, filename=None): - self.items = [] + self.items = {} if filename: self.load(filename) @@ -15,9 +15,14 @@ class Menu(object): f = open(filename) data = f.read() f.close() - - for item in simplejson.loads(data): - self.items.append(MenuItem(**_stringify(item))) + + for url, items in simplejson.loads(data).items(): + self.items[url] = [] + for item in items: + self.items[url].append(MenuItem(**_stringify(item))) + + def get(self, url): + return self.items.get(url, []) class MenuItem(Item): @@ -32,7 +37,3 @@ class MenuItem(Item): self.args["items"].append(MenuItem(**_stringify(sub))) del self.args["subs"] - -if __name__ == "__main__": - m = Menu("menu.json") - print [i.args for i in m.items] -- 2.47.3