4

我在 Plone 4.1 中工作,我只是想知道 Products.CMFPlone.interfaces.IPloneSiteRoot 和 Products.CMFCore.interfaces.ISiteRoot 之间的区别。如果我想注册一个 zope-3 风格的视图,我应该注册到哪一个?

4

2 回答 2

8

每当我想使用站点根目录时,我通常最终都会使用 plone.app.layout.navigation.interfaces.INavigationRoot 中的 INavigationRoot。

INavigationRoot 由 Plone 站点对象提供,但它也将由任何子站点的导航根或多语言站点中的顶级文件夹提供。特别是在多语言站点中,用户永远不会浏览或查看实际的站点根目录本身,因此附加到它的任何功能都将不可用。

ISiteRoot 仅适用于导出导入处理程序或其他内部逻辑,但不适用于任何最终用户可见的功能。

于 2011-06-01T07:57:00.170 回答
6

IPloneSiteRoot 是一种特定的 ISiteRoot。IPloneSiteRoot 由 Plone 站点的根提供,而 ISiteRoot 由任何 CMF 门户提供。如果您的产品只打算在 Plone 中工作,那么您使用哪个界面并不重要。如果您希望它可用于其他基于 CMF 的应用程序,请使用 ISiteRoot。

坦率地说,我通常选择 ISiteRoot 只是因为它的输入时间更短。:)

于 2011-06-01T05:20:48.233 回答