我在Plone 4.1上工作,我只是好奇想知道Products.CMFPlone.interfaces.IPloneSiteRoot和Products.CMFCore.interfaces.ISiteRoot之间的区别。如果我想注册一个zope-3样式的视图,我应该把它注册到哪一个?
发布于 2011-06-01 13:20:48
IPloneSiteRoot是一种特定的ISiteRoot。IPloneSiteRoot是由Plone站点的根目录提供的,而ISiteRoot是由任何CMF门户提供的。如果你的产品只想在Plone中运行,那么你使用哪个接口并不重要。如果您希望它可以与其他基于CMF的应用程序一起使用,那么可以使用ISiteRoot。
坦率地说,我通常使用ISiteRoot只是因为它打字更短。:)
发布于 2011-06-01 15:57:00
每当我想要使用站点根目录时,我通常最终都会改用plone.app.layout.navigation.interfaces.INavigationRoot中的INavigationRoot。
INavigationRoot由Plone site对象提供,但它也将由任何子站点的导航根或多语言站点中的顶级文件夹提供。特别是在多语言站点中,用户永远不会导航或看到实际的站点根目录本身,因此附加到它的任何功能都不会对他们可用。
ISiteRoot只对导出导入处理程序或其他内部逻辑有意义,但对任何最终用户可见的功能没有意义。
https://stackoverflow.com/questions/6194884
复制相似问题