Plone中的IPloneSiteRoot和ISiteRoot有什么区别?

Noe*_*eto 4 plone zope3

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

Han*_*ing 7

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

INAVigationRoot由Plone站点对象提供,但它也将由任何子站点的导航根或多语言站点中的顶级文件夹提供.特别是在多语言网站中,用户永远不会导航或查看实际的网站根目录,因此他们无法使用附加到其上的任何功能.

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

  • 在默认的Plone中,用户将在站点根目录上看到大量的视图,例如联系表单,站点地图,所有控制面板 - 但所有这些也都是为导航根注册的,因此它们仍可在子站点/多语言案例中工作. (2认同)

Dav*_*ick 6

IPloneSiteRoot是一种特定类型的ISiteRoot.IPloneSiteRoot由Plone站点的根提供,而ISiteRoot由任何CMF门户提供.如果您的产品仅用于Plone,那么您使用哪个界面并不重要.如果您希望它可以与其他基于CMF的应用程序一起使用,那么请使用ISiteRoot.

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