7

私は、Dexterityコンテンツのスキンを変更した代替編集フォームを必要とするPloneアドオンに取り組んでいます。編集フォームの一部のみをAJAXオーバーレイで表示できるようにする必要があります(JQueryツールではなくJQuery UIを使用するため、JavaScriptでフィルタリングするよりもサーバー側で行う方が合理的と思われます)**。

Dexterity Developer's Guideのドキュメントには、マクロを使用してカスタムテンプレートを作成できることが示されているようです。ただし、このセクションには何かが欠けています。おそらく、ビューをバインドするためにgrokを使用していない人々にとって重要なコンテキストですが、おそらく他の何かです。テンプレートのみのビューの作成は失敗し(明らかにビュークラスから名前を見つけることができません)、ZCMLのカスタムテンプレートをストックビュークラスまたはそのサブクラスのいずれかにバインドしようとすると失敗します(テンプレートは無視され、ストックテンプレート)。

私の目標:

  1. 基本的に#contentdiv内のコンテンツのみを含むベアテンプレートにラップされた編集を行います。
  2. ラップされていないz3c.formレンダリングだけではなく、ラップするための最小限のテンプレートも必要です。ストックのPloneビューレットマネージャーと家具だけではありません。

動作しないもの:

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は、plone.app.jquerytoolsオーバーレイヘルパーではなく、ポップアップにjQueryUIを使用します。一貫性を保つために、この最小限のビューを使用し、通常のPloneオーバーレイのJavaScriptのフィルターメカニズムを模倣しようとしないことは理にかなっています。

4

1 に答える 1

9

z3c.form はテンプレートを属性として検索するため、 (テンプレート ZCML 属性が配置する場所)ではなく、編集フォーム サブクラスtemplateの属性にカスタム テンプレートを割り当てる必要があります。templateindex

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

class MyEditForm(DefaultEditForm):
    template = ViewPageTemplateFile('my_edit_template.pt')
于 2012-08-27T16:28:09.047 に答える