@@personal-information
フォームのフィールドを非表示にして、@@register
フォームに表示するだけですぐに使用できます。逆も同様です。
これを達成するには、どちらか一方のフォームをカスタマイズする必要があります。 plone.app.users.browser.personalpreferences.UserDataPanelをカスタマイズしてフィールドを削除するか、plone.app.users.browser.register.RegistrationFormの新しいバージョンを用意してフィールドを追加してください。ここで
は、私はそれを行うだろう方法は次のとおりです。.omit('acceptTerms')
plone.app.users.browser.personalpreferences import UserDataPanel
class CustomizedUserDataPanel(UserDataPanel):
def __init__(self, context, request):
super(CustomizedUserDataPanel, self).__init__(context, request)
self.form_fields = self.form_fields.omit('acceptTerms')
注意が、私はあなたの余分なフィールドの名前を推測しなければなりませんでした。このカスタムパネルをZCMLでテーマブラウザレイヤーに登録するか、Ploneサイトまたはカスタムインターフェイスに直接登録することができます。ここで私は簡単な方法を取ると、Ploneサイトのオブジェクトのためにそれを登録します。
<browser:page
for="Products.CMFPlone.Portal.PloneSite"
name="personal-information"
class=".mymodule.CustomizedUserDataPanel"
permission="cmf.SetOwnProperties"
/>
、この特定のクラスが変更されていないので、これは、Ploneの4.0と4.1の両方のために働く必要があります。
ありがとう、それは完全に働いた!おそらく、collective.examples.userdataを更新して、同じことをするのは理にかなっているでしょう。 – gforcada