2012-08-27 53 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')