[Twisted-web] Writing Nevow Plugins ... dont have a clue! ;)
Andreas De Stefani
andreas.destefani at ucd.ie
Tue Jul 12 13:26:31 MDT 2005
Hey guys,
i was just wondering if this would be possible:
I generate a nevow application with one main template, then i simply
plugin multiple sub websites which are using template fragments ... for
example:
i got a main site which has navigation and content, simple so far ...
then i have a plugin directory where i simply put my "sub websites" ...
webkit/plugins/login
webkit/plugins/andysgreatsite
webkit/plugins/acrapsite
after i restart the webserver there should be a link for each site in
the navigation and the navigation fragment template and after a click on
a link, the content should show the sub-site ... or at least render the
sub-site
hmmm... i was trying a bit, but i think i took the wrong approach...
probably i have to go one layer lower to inevow.IRequest, but i didnt
really figure out how i could do that... or is it Realm or Portal ...
i'm a bit confused!
anyway this is what i tried: (i even got trouble with the automatic
plugin loader, the modules werent imported correctly for some strange
reason)
from nevow import loaders, rend, static, url, tags
import os
PLUGIN_PATH = './plugins'
webplugins = []
class WebKitRoot(rend.Page):
docFactory = loaders.xmlfile('webkit.html')
def __init__(self):
"""init the Root Page, load plugins"""
self.__importPlugins()
def __importPlugins(self):
"""retrieve the plugins from the plugin directory and import them"""
plugindirs = os.listdir(PLUGIN_PATH)
for p in plugindirs:
if os.path.isdir(os.path.join(PLUGIN_PATH, p)):
#constructing the plugin path --> ./plugins/login/login
webplugins.append(__import__(PLUGIN_PATH.split('/')[-1]+'.'+p+'.'+p))
def childFactory(self, ctx, name):
if name in ['login']:
#just a simple test
return webplugins[0].RootPage()
would be cool if somebody could give me some hints!
thanks a lot!
bye Andy
More information about the Twisted-web
mailing list