1.器用さのコンテナのビューも登録する
ビューは Archetypes フォルダー インターフェイスに登録されていますが ( Products.CMFCore.interfaces._content.IFolderish
)、器用さのコンテナーはこのインターフェイスを提供していません (ただしplone.dexterity.interfaces.IDexterityContainer
)。その理由は、製品および/またはビューが器用さに対応していない可能性があります。
IDexterityContainer
とにかく、パッケージに小さな ZCML を入れて、インターフェイスにもビューを登録することで、自分で試すことができます ( Dexterity Developer Manualの「パッケージの作成」セクションconfigure.zcml
も参照してください)。
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser">
<configure package="collective.documentviewer">
<browser:page
name="dvpdf-group-view"
for="plone.dexterity.interfaces.IDexterityContainer"
class=".views.GroupView"
template="templates/group-view.pt"
permission="zope2.View"
layer=".interfaces.ILayer" />
</configure>
</configure>
これ<browser:page>
はCollective.documentviewer configure.zcmlからコピーされたものですが、インターフェイスを dexterity コンテナー インターフェイスに変更しfor=
て、ビューが dexterity コンテナーでも機能するようにしました。
内部<configure package="collective.documentviewer">
は、configure.zcml が直接含まれているかのように構成を適用する必要があることを ZCML パーサーに伝えますcollective.documentviewer
。これにより、たとえば元のテンプレートを使用できます (そうしないと、テンプレートをコピーするか、厄介なことを行う必要があります)。
私はそれを自分でテストしませんでした: ビューにはアーキタイプ コンテナーが必要であり、器用さコンテナーでは機能しない可能性があります。また、器用さのコンテナ用に documentviewer からさらに多くのコンポーネントを登録する必要がある場合もあります (おそらくメニュー?元の configure.zcmlに登録されているものを見てください。
すべてがうまく機能する場合は、githubの collective.documentviewer で直接変更を行うことを検討し、作成者にプルリクエストを行う必要があります (器用さはまだ plone-core ではないことに注意してください)。しかし、最初に、それを行うべきかどうか、またどのように行うべきかを尋ねてください:-)
2. デフォルト ビューの変更
plone を使用すると、特定のタイプに対して複数のビューを定義できます。ビューは、このタイプのインスタンスごとに表示メニューで選択できます。タイプを開いてクリックすると、別の行にビュー名 ( ) を追加できるhttp://localhost:8080/Plone/portal_types/manage_main
フィールドがあります。Available view methods
dvpdf-group-view
あなたのタイプの新しいオブジェクトを作成するか、既存のオブジェクトにアクセスすると、ビューを一覧表示する「表示」メニューが表示されます。それを選択すると、このオブジェクトはデフォルトでこのビューを持ちます。
(このタイプの他のオブジェクトでビューを選択できないようにする場合は、タイプ構成からビューを削除して、選択できないようにすることができます。オブジェクトの既存の構成は残ります)。