我已经安装了collective.portlet.tal。 我的目标是通过此portlet为每个用户显示他在自己的文件夹中的信息。 Fox现在我想展示:用户名和电子邮件。
默认情况下,我有一个不显示特殊内容的portlet:
<dl class="portlet portlet${portlet_type_name}"
tal:define="portal_state context/@@plone_portal_state;
context_state context/@@plone_context_state;">
<dt class="portletHeader">
<span class="portletTopLeft"></span>
<span>
Header
</span>
<span class="portletTopRight"></span>
</dt>
<dd class="portletItem odd">
Body text
</dd>
<dd class="portletFooter">
<span class="portletBotomLeft"></span>
<span>
Footer
</span>
<span class="portletBottomRight"></span>
</dd>
我在Body这一行中插入了获取文件夹的用户名,但它返回了访问者的名字。如果我是管理员,它将显示“admin”,或者如果我是会员,它将显示会员的姓名......等等。
<p tal:content="user/getUserName"></p>
如何显示该文件夹的创建者? 如何才能获得该用户对该文件夹的电子邮件?
答案 0 :(得分:2)
您正在寻找文件夹的Creator
:
<p tal:define="creator context/Creator;
mtool context/@@plone_tools/membership;
author python:mtool.getMemberInfo(creator)"
tal:content="python:author and author['fullname'] or creator">Author name</p>
以上代码段查找创建者userid(默认为内容对象的所有者),并使用成员资格工具查找该用户的成员信息对象。然后我们显示用户的全名,或者如果创建者不是Plone用户,则只显示用户ID。