WebScreens.py extrasPlugins = [] class ExtrasPluginsWebScreen(WebScreen): def __init__(self, session, request): from WebComponents.Sources.PluginList import PluginList self["PluginList"] = PluginList(extrasPlugins) Source / PluginList.py class ServiceList(Source): def __init__(self, pluginlist): Source.__init__(self) self.pluginlist = pluginlist def getPluginsAsList(self): list = [] for name, url in self.pluginlist: list.append( (name, url) ) return list list = property(getPluginsAsList) web / getplugins.xml <?xml version="1.0" encoding="UTF-8"?> <e2plugin> <e2pluginname></e2pluginname> <e2pluginurl></e2pluginurl> </e2plugin> core.js ... case "extras": url = '/web/getpervices'; doRequest(url, incomingExtrasPlugins, false); break; function incomingExtrasPlugins(request) { if (request.readyState == 4) { var pluginlist = new PluginList(getXML(request)).getArray(); this.reloadNavData('tplNavExtras', 'Extras', pluginlist); } } function PluginList(xml){ this.xmlitems = getNamedChildren(xml, "e2pluginlist", "e2plugin"); this.pluginlist = []; this.getArray = function(){ if(this.pluginlist.length === 0){ for (var i=0;i ${plugin.name} {/for} ## # To register a Plugin: from from Plugins.Extensions.WebInterface.WebScreens import extrasPlugins extrasPlugins.append( ( "Name", "URL" ) ) # Unregister with extrasPlugins.remove( ( "Name", "URL" ) )