我正在创建新闻和事件portlet的自定义版本,这些portlet将仅显示定义它们的下游内容项(而非整个站点)。
我们的想法是让我们网站中的某些群组能够创建仅显示其下游文件夹层次结构中的项目的新闻和事件portlet。
基本上,我换掉了
portal_state.navigation_root_path()
代表
path='/'.join(context.getPhysicalPath())
我遇到的问题是,context.getPhysicalPath()是根据查看portlet的位置而不是定义portlet的位置来计算的。一旦有人从顶级组文件夹下游导航,他们通常会得到一个空的或消失的portlet。
如何查找定义了portlet的文件夹,以便我可以将其作为我的上下文传递?
答案 0 :(得分:4)
我想你想要__portlet_metadata__['key']
:
(Pdb) self.context.restrictedTraverse(self.__portlet_metadata__['key'])
<ATFolder at /plone/Members/test_user_1_>