2012-08-29 29 views
0

我創建了一個可通過@@ myview使用所有IDexterityContent類型的視圖。 但我也想將它添加到IDexterityContent類型的顯示菜單。如何爲allI敏捷內容類型添加額外視圖到顯示菜單

更新: 更準確地說,我希望TTW創建敏捷類型以在顯示菜單中顯示此視圖。

+0

你確定這是個好主意嗎?您可能會爲您不想要的其他附加組件和內容類型創建一些副作用。爲什麼一個目標如同所有IDexterityContent類型實例一樣廣泛? – sdupton

+0

我們在談論什麼樣的副作用?唯一讓我想到的是命名衝突,如果加載項使用相同的視圖名稱。 – domruf

+0

強制所有可能的基於敏捷的類型獲取可能適合或不適合其特定情況的操作,這不太可能是一個好主意。使用標記界面(通過行爲)會更好,並且使這種用戶界面粘合成爲可選功能。 – sdupton

回答

2

用於支持動態視圖選項都存儲在網站數據庫中的內容可用的意見,portal_factory

https://docs.plone.org/develop/plone/content/dynamic_views.html

如果你想添加多個視圖的支持,我建議你創建一個安裝Python的片斷,其將迭代portal_factory獲取可用類型並修改其view_methods屬性。

https://docs.plone.org/develop/plone/content/types.html#type-information-registry

https://docs.plone.org/develop/addons/components/genericsetup.html#custom-installer-code-setuphandlers-py

+0

不幸的是,迭代現有的類型並不能(完全)解決我的問題。我希望菜單條目可用於創建TTW的將來(標記爲)靈巧類型。 – domruf

+0

您需要添加每次添加TTW類型時執行的掛鉤。我建議你聯繫敏捷作者,看看有什麼樣的鉤子可用,以及需要添加什麼樣的鉤子來解決你的需求。 –

+0

@MikkoOhtamaa:模式編輯器通知IObjectModifiedEvent,IIRC等一些事件。這可能是一個鉤子可以用來修改FTI的地方(我相信從事件獲得的上下文可能是來自plone.app.dexterity的TypeSchemaContext對象 - 它的'title'屬性可能包含FTI名稱)。 – sdupton

相關問題