
on 2014/06/10 22:19, Zhou Zheng Sheng wrote:
on 2014/06/10 21:24, Aline Manera wrote:
On 06/09/2014 11:20 PM, Zhou Zheng Sheng wrote:
on 2014/06/10 03:21, Aline Manera wrote:
On 06/09/2014 07:08 AM, shaohef@linux.vnet.ibm.com wrote:
diff --git a/plugins/sample/ui/config/tab-ext.xml b/plugins/sample/ui/config/tab-ext.xml index 948fa07..8e0b3d3 100644 --- a/plugins/sample/ui/config/tab-ext.xml +++ b/plugins/sample/ui/config/tab-ext.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> -<!--<tabs-ext> +<tabs-ext> <tab> - <title>Test</title> - <filePath>plugins/sample/ui/tab.html</filePath> + <title>SampleTab</title> + <path>plugins/sample/tab.html</path> The UI files should be in a dedicated dir, as we have for kimchi And we could remove tab.html (which does not have any meaning) to sampleplugin.html or something like that
Hi, this file is not handle by back-end. It's just served by back-end, and the front-end parses this file to get the clue on where the html file of the plugin is.
So "plugins/sample/ui/tab.html" here is a virtual URI, which is mapped to pages/tab.html under the specific ui dir of this plugin.
1. This patch set uses plugins/sample/tab/html instead of plugins/sample/ui/tab.html
Sorry! I wanted to say "plugins/sample/tab.html is virtual URI", and "plugins/sample/ui/tab.htmls" is the real file. Sorry for the misleading.
2. Where is the map to pages/tab.html?
It works like this:
1. plugins.sample.Drawings inherits Root, and it is mounted on URI "/plugins/sample". It also sets "self.paths = PluginPaths('sample')"
2. GET plugins/sample/tab.html -> Drawings(Root).default("tab.html") -> template.render("tab.html").
3. When the template needs to get the actual template file name, it calls paths = cherrypy.request.app.root.paths filename = paths.get_template_path(resource)
So here paths is actually "PluginPaths('sample')", and calling paths.get_template_path() returns the result of os.path.join(self.ui_dir, 'pages/%s.tmpl' % resource)
So actually the filename is self.ui_dir + 'pages/tab.html'
should be self.ui_dir + 'pages/tab.html.tmpl'
and PluginPaths.__init__ sets self.ui_dir = self.add_prefix(os.path.join(self.plugin_dir, 'ui'))
so at last the filename is 'plugins/sample/ui' + 'pages/tab.html'
should be 'plugins/sample/ui' + 'pages/tab.html.tmpl'
Let me add Mark Wu to the cc list. He is the designer of the plugin framework.