2

我已经安装了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>

我在正文中插入了这一行以获取文件夹的用户名,但它返回访问者的姓名。如果我是管理员,它会显示“admin”,或者如果我是会员,它会显示会员的名字......等等。

<p tal:content="user/getUserName"></p>

如何显示该文件夹的创建者?怎么可能获得该文件夹的该用户的电子邮件?

4

1 回答 1

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>

上面的代码片段查找创建者用户 ID(默认为内容对象的所有者),并使用成员资格工具查找该用户的成员信息对象。然后我们显示用户的全名,或者如果创建者不是 Plone 用户,则只显示用户 ID。

于 2012-09-20T10:17:26.897 回答