2012-08-27 51 views
7

我正在研究Plone插件,该插件需要敏捷内容的重新换肤编辑表单。我需要能够在AJAX覆盖中仅显示部分编辑表单(使用JQuery UI而不是JQuery工具,因此在服务器端执行此操作似乎比在JavaScript中进行过滤更合理)**。Plone中定制的敏捷编辑表单模板?

来自Dexterity Developer's Guide的文档似乎表明我可以使用宏定制模板。虽然这一部分缺少一些东西 - 也许一些关键人物不会使用Grok来绑定视图,但也许是别的。创建一个仅用于模板的视图失败(显然,无法从视图类中查找名称),并尝试将ZCML中的自定义模板绑定到股票视图类或其子类都失败(该模板将被忽略股票模板)。

我的目标:

  1. 拥有该编辑被包裹在一个光秃秃的模板,基本上只是包含#内容的div里面的内容。
  2. 我不想只是一个unwrapped z3c.form渲染,我需要一个最小的模板来包装它 - 只是不是股票Plone Viewlet管理器和furntiture。

什么不起作用:

from plone.dexterity.browser.edit import DefaultEditForm 
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile 

class MyEditForm(DefaultEditForm): 
    index = ViewPageTemplateFile('my_edit_template.pt') 

的ZCML当量(定义与运行魔法指数)也不会在这里工作。

如何将自定义模板注入编辑表单?

**我正在研究Solgema.fullcalendar与plone.app.event基于灵活类型的兼容性。 Solgema.fullcalendar使用jQuery UI弹出窗口,而不是plone.app.jquerytools覆盖帮助程序;为了保持一致性,使用这个最小视图是合理的,并且不要试图模仿正常Plone覆盖的JavaScript过滤机制。

+0

回想起来,如果您提供了一个您认为应该工作但没有尝试的代码示例,这将是一个更容易回答的问题。 –

+1

同意,向OP添加代码示例并回答(待审核)。 – sdupton

回答

9

z3c.form寻找模板为template属性,因此您需要将您的自定义模板分配给您的编辑表格的子类的template属性,而不是index(这是模板ZCML属性所说的那样)。

from plone.dexterity.browser.edit import DefaultEditForm 
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile 

class MyEditForm(DefaultEditForm): 
    template = ViewPageTemplateFile('my_edit_template.pt')